假如内网的设备不支持ipv6或者不想动配置,可以在公网入口设备(一般是光猫桥接路由器拨号)上转发端口
在入口设备上起一个nginx ,版本大于1.9
在配置文件里面添加
stream {
# 添加socket转发的代理
upstream socket_proxy {
hash $remote_addr consistent;
# 转发的目的地址和端口
server 127.0.0.1:80 weight=5 max_fails=3 fail_timeout=30s;
}
# 提供转发的服务,即访问localhost:9001,会跳转至代理socket_proxy指定的转发地址
server {
listen [::]:9001; #ipv6的监听配置
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass socket_proxy;
}
}
注意要加http段外,因为这里是转发tcp端口 不是http端口。
如果是需要转发http服务,那做法和正常的反向代理一样了,这里不考虑
参考https://blog.csdn.net/blscok/article/details/81941619
另一个方案
以下在梅林测试通过,理论上基于LINUX的路由都能行,无非是安装方式的区别。
SSH连接路由后:
opkg update
opkg install socat
socat TCP6-LISTEN:8000,reuseaddr,fork TCP4:192.168.2.3:8000
监听公网传入的IPV6的8000端口,转发到内网的192.168.2.3主机的8000端口。
如此可在公网通过IPV6地址或域名加端口号访问内网的服务。
CSDN转帖内容,如果爱快能开发类似功能,就能解决很多问题。
之前的请命贴有不少人言语冷嘲热讽,说我胡言乱语??我只想说虽然我发表的观点不是很专业,但是至少能得到大众的认可。站在企业的角度考虑,这是最省钱的组网方案。