liaohcai 发表于 2024-4-22 22:59

突破大内网封锁的利器——natmap 内网穿透 无公网ip

本帖最后由 liaohcai 于 2024-4-23 13:32 编辑

一、前言
我发现有很多品牌的路由器,默认是不开启IPV6功能的。
同时,一些企业和单位基本上是没有IPV6网络。

即使开启IPV6功能后,他们会发现,网络异常的卡,对IPV6网络支持不太好,干脆就关了,又不会什么影响。
直到有一天,要传一个大文件,想通过QQ和微信传过去速度太慢了,文件有100个g,通过frp反向代理速度太慢了,企业那边也没有IPV6网络,距离又太远,不可能通邮寄一个硬盘过去。


二、过程
我找遍了整个互联网,试用过各种工具,速度都很不理想,而且很不稳定,毕竟是会用到别人服务器的带宽


我终于在恩山论坛里看到了一篇@8267 大佬的帖子

natmap内网穿透让内网实现公网IP,远程访问异地组网,做frps,ssh ,web,wireguard

natmap作者的介绍:
NATMap实现与拥有动态公网IP同等的访问效果,它通过打通完全锥型(Full cone)类型NAT的TCP、UDP端口,实现访问侧任意主机在无需客户端的情况下进行直连访问。


natmap项目地址:https://github.com/heiher/natmap
类似于这样的插件还是很多 @古大羊 大佬开发的lucky
lucky,端口转发,DDNS,反向代理,WOL,stun穿透,计划任务,acme,webdav,ftp

但natmap体积小,配置简单,可在弱设备运行

三、原理

作者在githut介绍:


NATMap实现与拥有动态公网IP同等的访问效果,它通过打通完全锥型(Full cone)类型NAT的TCP、UDP端口,实现访问侧任意主机在无需客户端的情况下进行直连访问。
四、步骤
1.在电脑搭建web服务,我用的是CuteHttpFileServer/chfs,带有图形界面,在windows上不用敲打命令

CuteHttpFileServer/chfs是一个免费的、HTTP协议的文件共享服务器,使用浏览器可以快速访问

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
成功访问,接着这个网址发同事



五、效果
**** Hidden Message *****


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:端口。



















8267 发表于 2024-4-23 07:51

我发现在3.4内核的padavan里是可以用lucky进行stun内网穿透的





不过体积比较大 不太适合padavan用,而natmap在padavan里可以小到22k

70076222k 发表于 2024-4-23 00:55

:victory:精华!顶

短头花 发表于 2024-4-23 07:26

本帖最后由 短头花 于 2024-4-23 07:28 编辑

感谢大佬的分享

shinyi 发表于 2024-4-23 07:30

楼主发贴辛苦了!谢谢楼主分享,论坛有你更精彩

liaohcai 发表于 2024-4-23 09:58

8267 发表于 2024-4-23 07:51
我发现在3.4内核的padavan里是可以用lucky进行stun内网穿透的




感谢大佬分享的padavan专用版,体积上更小

xzgjw 发表于 2024-4-23 10:39

没看明白,是需要动态公网ip吗

liaohcai 发表于 2024-4-23 11:38

xzgjw 发表于 2024-4-23 10:39
没看明白,是需要动态公网ip吗

主要的是没有动态公网IP,才通过这个natmap直接创建一个能被外网访问的"隧道","隧道"有自己的IPV4地址和端口,外网访问这些ipv4:端口,就可以访问到内网搭建的服务了。

maicocio 发表于 2024-4-23 22:48

lucky pc版本用了一段时间,现在内网跑bt很爽:lol:lol:lol

aming.ou 发表于 2024-4-24 08:56

有个需求,,内网内不同网段,没权限设置路由器,防火墙。A主机能访问B节点上的数据库服务(仅有服务访问权,没有主机访问权),A主机可以访问C主机,但C主机不能访问A主机,C主机也不能访问B节点的服务(地址不可达,端口不可达),对A主机和C主机有管理权,有办法让C主机访问B节点的数据库服务吗

liaohcai 发表于 2024-4-24 10:22

aming.ou 发表于 2024-4-24 08:56
有个需求,,内网内不同网段,没权限设置路由器,防火墙。A主机能访问B节点上的数据库服务(仅有服务访问权 ...

在C主机上添加一条到B节点的路由表

aming.ou 发表于 2024-4-24 12:56

aming.ou 发表于 2024-4-24 08:56
有个需求,,内网内不同网段,没权限设置路由器,防火墙。A主机能访问B节点上的数据库服务(仅有服务访问权 ...

无法访问,,感觉要在A主机和C主机搭建跳板,A主动跟C建立连接,然后C内通过这个连接与A通信,然后A把请求转发到B主机。实际需求就是C主机访问B节点(只有数据库的IP和端口,账号密码)的数据库服务。如果C能直接访问A,我就可以在A主机搞个端口转发到B数据库端口。这里有个难点就是,A只可以单向访问B或者C;C主机无法访问A。

cckd 发表于 2024-4-25 06:30

58998789999888789977889

comeontxw 发表于 2024-4-25 07:56

大内网,无路由器权限

csmdk 发表于 2024-4-25 09:00

好东西谢谢分享
页: [1] 2 3
查看完整版本: 突破大内网封锁的利器——natmap 内网穿透 无公网ip