我的网络我做主 篇二:IPv6公网也能端口转发了(SocatG全网首发)
声明
其他作者在写文章时涉及到luci-app-socatg或者SocatG,须提前声明本篇文章。
前言
在移动大内网的各位小伙伴们,为了实现远程访问,可谓是想尽了一切办法,本人先后使用了ngrok、frp、ddnsto,都是满满的吐槽啊!!!ngrok和frp需要一个独立的ip主机作为服务端,国内还需要对域名进行备案,总结下来:流程复杂、准备时期长、不够灵活、受服务端带宽限制(“小水管“);ddnsto相对前两者来说,确实是便捷不少,但是仍然有最高5M带宽的限制。
如今IPv4地址池耗尽,IPv6开始向人们走来,目前看来运营商对IPv6几乎没有做仍何限制,包括Http 80端口和Https 443端口均可以正常使用,当然了对于大多数用户来说IPv6也并不是静态不变的,在一定时候其地址会发生变化,好在目前阿里云、dnspod、dynv6都支持解析动态IPv6。这在OpenWrt/Lede下不难实现,具体的教程也站内也都有,便不再啰嗦。
消息发送(无需动态解析)
每个IPv6地址都是独立的地址,只要支持IPv6地址的设备都可以访问到的,但是因为目前的IPv6大多数都是动态的,即在一段时间会自动更新,这样的话,可以通过脚本运行的方式,定期扫描在局域网内活跃的IPv6设备或者当IPv6地址发生更改后的,发送内容至预先设置好的邮箱或者其他消息服务器。
DDNS脚本大法
在每个设备编写相应的DDNS脚本,对其进行DDNS解析,好处是,不会AIB(All in Boom),每台设备都是独立的,不会相互影响。但是问题来了,如果需要修改脚本,你必须在局域网下修改(不难想象),而且对每台设备都进行脚本设置,工程量太大,不利于整体部署,鸡肋。
端口转发
但是对于路由器之下的其他需要被访问的设备来说,你一定会想到端口转发
那么成功了吗?并没有,注意看上图,OpenWrt端口转发的IP地址(默认)类型是IPv4,这显然是行不通的。
Frp
已知OpenWrt路由器已经做到了DDNS,那么是否可以在路由器上开启Frps服务端呢?理论可行,但是笔者经过一晚上的实践,已经对Frp失去了信心,而且还需要在对应的客户端上进行部署;不光如此,Frp的性能也非常低下,常常因为在高并或者其他占用突然增大的情况下,会将Frp进程关闭,所以,Frp只有在迫不得已的情况下作为临时使用,应用场景非常有限。
Socat
开始进入主题了,socat可以把局域网下设备(如Nas、监控摄像头、网络服务器)的IPv4地址的端口转发到路由器的IPv6地址上,以此来远程访问局域网下的设备。Socat是不需要在客户端部署环境的,全程只要在路由器上监听对应IPv4地址的指定端口即可,不会对应用层(OSI模型的第7层)上的设备进行干预,整体的网络环境也会相较Frp简洁许多,而且Frp暴露在公网下是非常不安全的。
socat命令的格式如下:
socat TCP6-LISTEN:{IPv6端口,远程访问的端口},reuseaddr,fork TCP4:{IPv4地址}:{IPv4端口} &
我用Idea搭建了spring的临时环境(当然vscode下live share插件亦是如此),测试端口转发,IP地址:192.168.1.226 端口号:8083
如果局域网内有大量设备的话,这样也太麻烦了吧 ,重头戏登场了,SocatG:
SocatG
作为不喜欢敲代码的我,看到这么长的命令,瞬间没了兴趣,于是我开发了一个OpenWrt插件SocatG,顾名思义,socat的GUI(可视化)版本,界面十分简洁明了,
安装:由于是首发,目前仍处于官方审核阶段,只能通过在ssh或者telnet上以预编译文件ipk的方式安装,当然也可以直接通过编译固件来安装,ipk文件已在文末给出,软件支持所有架构。
opkg update
opkg install socat
wget -P /tmp {插件地址,见文末}
opkg install /tmp/luci-app-socatg_1.1-1_all.ipk
注意:使用(固件编译)前需要提前安装(加入)socat
入口:网络->SocatG
简单的页面告诉你,你只要依次填入IPv6的端口(远程访问时的端口,v6port)、IPv4地址(局域网内的设备,v4host)、IPv4地址的端口(该设备对应进程的端口号),v6port和v4port的端口号不可以相同,点击“保存&应用”按钮就可,这时你就可以直接通过域名+端口号访问。至于解析效果和稳定性,那肯定是阿里云和dnspod的好,dynv6由于是免费的,可以理解 。
应用
有了公网“IP”,瞬间为你打开了新的世界,从现在开始,起飞
阿里云盘、NAS、监控摄像头,还有许多,需要你们去发掘
总结
SocatG是开源的项目,目前已有开发目标,会持续更新迭代,如果在使用的时候遇到了问题或者有更好的建议,希望可大家可以在评论区回复,各位有能力的大佬们也可以直接做改进,大家都一起维护这个实用的插件吧。
最后求点赞投币收藏转发
关于文中提到的项目源代码和预编译ipk文件的链接:Gitee/码云
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
o艾克拉o
校验提示文案
拾光里视觉
校验提示文案
telanx
校验提示文案
晚明
校验提示文案
白哥
校验提示文案
SpringHack
校验提示文案
Royalys
校验提示文案
值友7136128870
校验提示文案
值友2041587613
校验提示文案
hrbagang
你的访问受限!
服务器拒绝处理您的请求!您可能没有访问此操作的权限, 点击这里返回首页
也可能是以下原因导致您没有权限
1. 没有登录,请登录后查看
2. 资源属于企业,企业用户应安全策略被企业屏蔽,请联系企业管理员
3. 项目因违规被 Gitee 屏蔽,请联系项目拥有者查看项目是否被屏蔽
校验提示文案
hrbagang
例如,从单位的IPv4环境,访问家里的ipv6(中移动公网)
校验提示文案
温小言
校验提示文案
tang251
校验提示文案
超人我会飞
校验提示文案
后知后觉2019
校验提示文案
三类盲降
校验提示文案
nirvana848
校验提示文案
啥都没有
校验提示文案
super张
校验提示文案
老段00
校验提示文案
super张
校验提示文案
疯狂的猫出了头
然后openwrt我这边没有wan6的接口,新建后也没有获取到v6ip。
但是我上网测试test-ipv6却是有的。
请问是什么原因。
校验提示文案
值友5691671375
校验提示文案
蓮紀
校验提示文案
渺小而热爱
校验提示文案
尚夏Sunshine
校验提示文案
[已注销]
校验提示文案
值友9189489748
校验提示文案
Chaxist
校验提示文案
Walker-J
校验提示文案
chen-xiaox
校验提示文案
zoblion
校验提示文案
大法今天倒闭了嘛
校验提示文案
Dinky
校验提示文案
啥都没有
校验提示文案
大鸭梨
校验提示文案
值友7136128870
校验提示文案
张麻子没有昵称
校验提示文案
ufo1cn
校验提示文案
老段00
校验提示文案