没有公网怎么办?用natter打洞+DDNS-GO来解决
本帖最后由 hayse 于 2025-1-1 18:22 编辑近期折腾的一点心得,记录留档一下,也希望能帮助到有同样问题的朋友。
网络环境是op主路由,版本是23.05.4,下面只有交换机,整个局域网就一个网段。
虽然现在ipv6能解决很多问题,但是不可避免还是有部分情况没有v6的环境,所以用打洞的方法来解决。
使用场景,用v4访问op,局域网内的nas等
1,打洞环节
防火墙设置端口转发
在op上下载natter,运行需要安装python3,直接软件包里安装即可
https://github.com/MikeWang000000/Natter/archive/refs/tags/2.1.1.zip
解压后进入目录,为了方便使用手动建立一个脚本(脚本随意放哪里,看自己的习惯,如果不在natter文件夹里,需要修改运行natter的路径)
举个例子,假如我要给局域网192.168.2.133的电脑(端口转发已设置)打洞,运行成功结果如图
图中红圈部分就是你的远程桌面连接地址,只要你拨号不断,natter程序不中止,这个地址就一直可用。
如果你不用域名,那么上面的部分已经能满足需求。结合DDNS-GO只是简略记录IP的步骤。
2,DDNS-GO部分
从ddns-go支持的域名服务商买一个域名,我是从porkbun买的一个便宜域名,一年不到10块。假如我的域名是chiphell.lol
op上安装DDNS-GO插件,添加2个配置,使用域名服务商提供的API KEY
配置1:
4.chiphell.lol就是打洞后的公网地址,上面提到的远程桌面连接方式就可以用4.chiphell.lol:3277
chiphell.lol就是路由器的v6地址,如果没有v6环境,可以临时连op,用有v6的移动流量连进去运行打洞脚本
配置2: IPV6通过命令获取局域网内某台机器,电脑,nas都可以,通过mac地址来匹配 (配不配随你,按需即可)
ip -6 neigh | grep d8:bb:xx:xx:xx:bd | awk '$1 ~ /^240/ && $6 == "REACHABLE" {print $1; exit}'
nas.chiphell.lol
这样可以在有V6的环境直接使用域名来连接
[流汗]贴中有脚本就发不了贴,只能用图片代替,用AI写的,有需要的话用AI自己写吧。
如果你之前没用过动态公网,现在想尝试,请做好安全方面的设置,比如使用强密码,op的ssh关闭密码登陆,开启密钥登陆
打洞的问题在于端口的不确定性,再加上现在宽带对在线时长有要求,一天就要重拨一次,端口铁定天天变
natmap作者提出的ip4p,可以把v4和端口信息全塞到v6解析里面,缺点是支持的设备不多,目前来看只有他自己fork的wg官方客户端和mihomo支持这玩意 Dk2014 发表于 2025-1-1 18:44
打洞的问题在于端口的不确定性,再加上现在宽带对在线时长有要求,一天就要重拨一次,端口铁定天天变
natma ...
不需要天天重拨啊。我这边运营商pppoe10天刷新一次。打一次洞能用10天,这期间地址端口是不会变的。 DDNS GO 直接IPV6不是解决完了么··
我看很多人用OP都不是用作主路由的 ·咋解呢
包括我也是 爱快主 OP旁这样
不过我有公网 外网下载家里nas的速度V4直连可以到6-9M/S
V6没试过 主要还是懒 用阿里云的解释 ruo101 发表于 2025-1-1 18:54
DDNS GO 直接IPV6不是解决完了么··
我看很多人用OP都不是用作主路由的 ·咋解呢
包括我也是 爱快主 OP旁 ...
有时候没有ipv6呀,你有公网嘛当然用不着。
旁路由的话流程应该差不多,这个natter ddns-go又不是一定要跑在op上。
hayse 发表于 2025-1-1 18:57
有时候没有ipv6呀,你有公网嘛当然用不着。
旁路由的话流程应该差不多,这个natter ddns-go又不是一定要 ...
所以我没折腾IPV6 真到没有V4时再说 感谢分享,研究看看
页:
[1]