socat真的是个好东西,外网v6访问内网v4设备,尤其对于不支持v6或者不好做v6ddns的设备好用,不需要v4公网(比如移动),有v6公网的(现在三大运营商ipv6应该都开通了,没有的八成是光猫路由器不支持,openwrt大部分集成,除非编译者刻意去掉),openwrt可以正常获取到ipv6地址即可,无论lan或者wan,一般都会有。只不过有些固件不好做lan口ipv6的动态dns,这里建议用wan口的ipv6。
1:安装socat,基于lede和官方源编译的固件在软件包里更新即可
2:系统-----启动项,最下面本地启动脚本添加这条命令“socat TCP6-LISTEN:3380,reuseaddr,fork TCP4:10.0.0.4:3389 &”,其中3380是ipv6外部访问端口,10.0.0.4是内网访问ipv4地址,我这边改过了,填自己的内网ip,3389是需要访问的内网设备ipv4端口,比如我这个3389是微软远程桌面端口。这几个参数都要根据自己实际情况来
3:要打开ipv6相应的防火墙,比如上面的3380,在防火墙----通信规则下面新建一个打开路由器端口,名称随意,端口就填上面需要打开的端口,我这里就是3380,应用保存。
4:重启路由器,就可ipv6的端口映射ipv4,从而实现外网访问。如果不想重启,那就登录ssh,输入本地脚本的那个命令即可。如果只在ssh输入命令,重启会失效,建议还是在启动脚本里添加以下命令。
通过socat,只需要路由器能获取到ipv6,然后域名解析,即可以访问下接设备,不需要每个设备单独做一个ipv6ddns,且适用于不支持ipv6的设备。哦,对了,本地启动脚本那边记得放在exit0之前,才会随着路由器启动而触发。
文章评论