|
本帖最后由 liaohcai 于 2024-4-23 13:32 编辑
一、前言
我发现有很多品牌的路由器,默认是不开启IPV6功能的。
同时,一些企业和单位基本上是没有IPV6网络。
即使开启IPV6功能后,他们会发现,网络异常的卡,对IPV6网络支持不太好,干脆就关了,又不会什么影响。
直到有一天,要传一个大文件,想通过QQ和微信传过去速度太慢了,文件有100个g,通过frp反向代理速度太慢了,企业那边也没有IPV6网络,距离又太远,不可能通邮寄一个硬盘过去。
二、过程
我找遍了整个互联网,试用过各种工具,速度都很不理想,而且很不稳定,毕竟是会用到别人服务器的带宽
我终于在恩山论坛里看到了一篇@8267 大佬的帖子
natmap作者的介绍:
NATMap实现与拥有动态公网IP同等的访问效果,它通过打通完全锥型(Full cone)类型NAT的TCP、UDP端口,实现访问侧任意主机在无需客户端的情况下进行直连访问。
类似于这样的插件还是很多 @古大羊 大佬开发的lucky
但natmap体积小,配置简单,可在弱设备运行
三、原理
作者在githut介绍:
NATMap实现与拥有动态公网IP同等的访问效果,它通过打通完全锥型(Full cone)类型NAT的TCP、UDP端口,实现访问侧任意主机在无需客户端的情况下进行直连访问。
四、步骤
1.在电脑搭建web服务,我用的是CuteHttpFileServer/chfs,带有图形界面,在windows上不用敲打命令
2.登录路由器,做端口映射了,在大内网里,做端口映射毫无用处!
用浏览器在Releases · heiher/natmap · GitHub上下载natmap-linux-mips32el
用winSCP登录padavan路由器,将其保存在可读写目录/etc/storage并命名为natmap,并赋予运行权限
3.登录SSH终端:
如果的windows 10,直接运行 cmd
再输入下面命令:
- ./natmap -s stunserver.stunprotocol.org -h example.com -b 89 -t 192.168.60.190 -p 89 >/tmp/89.txt &
复制代码
192.168.60.190 是我电脑的内网ip
89 是电脑用CuteHttpFileServer搭建web服务端口
4.用winSCP打开/tmp目录中的89.txt
得到的是125.94.157.178:43055
5.开流量用手机浏览器,访问http://125.94.157.178:43055
成功访问,接着这个网址发同事
五、效果
对端下载速度,取决于这边宽带的上行速率。
我这边的上行速率是50M,他那边达到7.5mB/s (50M)的下载速率,比QQ微信快!基本上是一直线,非常稳定。
接着来搭建iperf3服务跑下速度
这是真正点对点直接,达到了真正公网ipv4效果!
natmap是可多开的,这样padavan可以开多个端口,可以承载多个服务,web FTP 远程桌面 n2n服务 vnts服务 wrieguard ......
- /etc/storage/natmap -s stunserver.stunprotocol.org -h example.com -b 90 -t 192.168.60.1 -p 80 >/tmp/80.txt &
- #远程登录路由器web
- /etc/storage/natmap -s stunserver.stunprotocol.org -h example.com -b 222 -t 192.168.60.1 -p 22 >/tmp/22.txt &
- #远程登录路由器终端
- /etc/storage/natmap -u -s stun.qq.com -b 51821 -t 192.168.60.1 -p 51820 >/tmp/51820.txt &
- #搭建wrieguard服务
复制代码 想搭建什么都可以!
- ./natmap -u -s stun.qq.com -b 绑定端口 -t 内网ip -p 内网端口 >/tmp/内网端口.txt &
- #UDP协议用这条
复制代码- ./natmap -s stunserver.stunprotocol.org -h example.com -b 绑定端口 -t 内网ip -p 内网端口 >/tmp/内网端口.txt &
- #TCP协议用这条
复制代码
运行参数的详细说明GitHub - heiher/natmap: TCP/UDP port mapping for full cone NAT
可以自定义stun服务器 不同有不同打洞效果
其中 作者也分享了 公共 STUN 服务器 public STUN servers · Issue #18 · heiher/natmap · GitHub
六、注意
其实不是100%都能成功,这跟运营商的大内网类型有关,如果尝试了还是无法访问,就不要继续了。
但是这个公网ip和端口是随机的,关掉natmap,这个访问地址有可能关闭,重新运行natmap,端口已经不是原来的端口了。如果不重启natmap,这个端口可以随公网ip更改而改变。
-b 绑定端口 是可自定义的,同时不要与其他端口冲突,若不知用哪个绑定端口,那就设置为0。
如果padavan是二级路由,那么一定要关闭padavan上的防火墙,开启主路由器上的dmz。
要达到100%穿透效果,最好是padavan作为主路由,同时要关闭padavan上的防火墙!
kill 对应的PID 这样结束,才可以马上进行重新启动,不然启动报错,killall natmap是不行的。
只想结束特定的进程,可以先输入ps
返回进程
想结束哪条,kill 对应的 PID ,
kill 8520就可以结束掉/etc/natmap -s stunserver.stunprotocol...这条进行
本编不涉及到域名绑定,只想到最简单的方法获取能在外网访问公网ipv4和端口,能在外网临时访问
其实natmap加上参数-e可以带动脚本进行域名绑定ip和端口,能将公网ip和端口进行编码以2001::开头的ipv6地址AAAA记录和还能以ipv4:端口的TXT记录!
下一编,我可能会出域名绑定ip和端口,然后用脚本访问域名还原出公网ip:端口。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|