概述
先清楚此工具是干啥的:这是一款 Python 编写的用于将 NAT 后的设备端口(服务),单端打洞暴露至互联网,然后互联网直接访问即可,比如:远程桌面 3389、Web 服务 80、SSH 22、NAS 等,如下是大多数家庭网络架构,我们要实现的就是在互联网直接访问家中的 PC、NAS 或摄像头等网络设备。
其实想实现上述需求方法挺多的,比如:
1.出门在外想访问家里的设备看小电影,通过 NAT 映射固定公网 IPv4 地址实现。
2.通过 IPv6 地址直接访问家里的网络。
3.买公网服务器做数据中转。
4.公网服务器只帮忙建立连接不做数据中转,直接实现 P2P 连接。
5.直接使用别人提供的收费服务,注册付费即可使用。
......
像我之前就介绍过 FRP 这款开源工具,用于实现上述的方法 3 和 4。
还介绍过一款简单好用的工具节点小宝,有兴趣可以看看。
如果上述方法你都搞不了,或者尝试过觉得用着不舒服,那今天这款小工具就太适合你啦!小巧玲珑!简单快捷!
轻轻松松将内网映射到公网,并且数据不走中转服务器,访问流量直接 P2P 走运营商网络,跑满带宽!
反正上述玩法我是基本都尝试过,但总是存在种种原因用的不愉快,这个工具,一个字,爽!!(说白了还是穷,我摊牌了呜呜呜...)所以不想折腾的富豪们就可以不用往下看了。
方法 1 是最简单、最舒适的,但一般家庭网络都无法实现,今天这款工具实现的效果和方法 1 不能说一模一样,只能说完全相同!
环境需求
最低版本 Python 2.7,推荐大于等于 3.6。
不需要安装第三方模块。
相关参数
| 一般选项: | ||||
--version | --version | |||
--help | --help | |||
-v | -v | |||
-q | -q | |||
-u | -u | |||
-U | -U | |||
-k <interval> | -k 20 | 15 | ||
-s <address> | -s stun01.example.com-s stun02.example.com:1478-s 202.64.12.121-s 202.64.12.121:2478 | |||
-h <address> | -h example.com-h example.com:8080-h 202.64.34.101-h 202.64.34.101:8888 | www.baidu.com:80 UDP模式: 8.8.8.8:53 | ||
-e <path> | -e /opt/notify.sh | |||
| 绑定选项: | ||||
-i <interface> | -i eth0-i 192.168.1.101 | 0.0.0.0 | ||
-b <port> | -b 3456 | 0 | ||
| 转发选项: | ||||
-m <method> | -m none-m test-m iptables-m nftables-m socat-m gost-m socket | -m test-m none-m socket | ||
-t <address> | -t 192.168.1.102 | |||
-p <port> | -p 80 | |||
-r | -r |
实操
先测试一下
打开 cmd,执行以下命令
python natter.py上述例子中, x.x.151.91 是你家的公网 IP 地址。Natter 打开了其 TCP 端口 x.x.151.91:12102 用于测试。
接下来在公网用浏览器访问 http://x.x.151.91:12102 ,你将看到如下网页。
如果家中使用光猫拨号,需要先拥有光猫控制权(即超管账号密码),然后进去设置 DMZ,这个设置方法百度即可,因为不同运营商设备配置界面不一样,大概就是这个样子。
局域网 IP 地址就是填你内网要被互联网访问的那个设备 IP(我这里是 PC 192.168.1.5,并将 PC 配置成了静态 IP 地址)。
超管账号密码咋获取呢?网上有很多方法,但现在基本都不适用,最简单高效的方法就是直接打运营商宽带业务的官方电话,要他告诉你家宽的账号,然后他是不知道密码的,但是可以让他帮你查管理你这个片区宽带的师傅电话,最后问师傅密码是啥即可。我就是这样拿到的。
不过要注意,别乱动光猫中的配置,要是家里上不了网了,那可就不开心了,师傅也很恼火。
发布具体服务端口(远程桌面)
打开 cmd,执行以下命令
python natter.py -p 3389接下来在公网电脑远程桌面访问,按 Win+R 弹出运行框,输入 mstsc 即可。
输入 x.x.151.91:12284,再输入用户名密码确定即可连接。
最后,成功(你就说延迟 18ms 低不低)!鼠标在本地和远程桌面来回滑动基本没啥感知,舒适!
原理
简单来说,Natter 的原理就是端口复用:
由本地端口 xxxxx 向外发起 TCP 长连接,维持 NAT 端口映射关系。
同时监听端口 xxxxx ,对外提供服务。
总结
首先需要注意的是,它并不能支持所有的网络打洞成功,主要问题在于运营商的 NAT 类型上,NAT1(全锥型 Full Cone)、NAT2(地址受限圆锥型 Address Restricted Cone)、NAT3(端口受限圆锥型 Port Restricted Cone)、NAT4(对称型 Symmetric),这里 NAT4 万能的哆啦 A 梦来了都没有办法,如果有大神对 4 打洞有办法,虚心请教,抱拳!!
此工具还可以联动 Cloudflare 动态更新 A 记录和 SRV 记录,程序运行后自动通知开放的 IP 和端口信息,实现和域名的绑定,保证可以正常通过域名访问服务。
如果你不想搞域名,也可以让它把 IP 地址和端口信息单独推送给你,以解决公网 IP 地址发生变化后可以正常访问,这里可以借助 https://msgpusher.com/ 实现。
最后一定要注意:内网服务发布到公网记得设置强密码!!!!
星标、点赞、转发、推荐一键四连,感谢支持
关注公众号,聊天框发送消息"natter"获取工具
END
往期精彩回顾
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……




还没有评论,来说两句吧...