ipv6公网入口转发内网ipv4设备端口

假如内网的设备不支持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服务,那做法和正常的反向代理一样了,这里不考虑

另一个方案
以下在梅林测试通过,理论上基于LINUX的路由都能行,无非是安装方式的区别。
SSH连接路由后:

opkg update
opkg install socat
socat TCP6-LISTEN:8000,reuseaddr,fork TCP4:192.168.1.2:8000

监听公网传入的IPV6的8000端口,转发到内网的192.168.1.2主机的8000端口。
如此可在公网通过IPV6地址或域名加端口号访问内网的服务。

socat的官网:http://www.dest-unreach.org/socat/
socat的下载链接:http://www.dest-unreach.org/socat/download/
至于Windows的版本,对其安全性不做任何保证,我从这里找到https://github.com/honuonhval/socat-win10
使用方法同linux

评论区 0