使用 Natter 脚本在无公网 IP 环境上实现端口映射
注意
在开始操作前,您需要拥有网络技能,并且已经确认,您所在的网络环境是全锥型的 NAT,否则您无法继续。
建议在开始前,先去光猫/路由器里设置一下 DMZ IP,然后再拿 NAT Type Tester 测试一下 NAT 类型。
另外,请注意,映射出去的端口是动态的,无法指定。
1、前言
由于 IPv4 地址池耗尽的原因,现在,三大运营商基本上不会给家庭宽带公网 IP 了,这导致有很多需要公网 IP 用的服务,都用不了。
一般情况下,除了和运营商再去要公网 IP,或者是使用内网穿透程序,基本上没用其它的方法。
现在呢,有新东西可以玩了,它就是:Natter。
2、Natter 的好处有啥?
和内网穿透相比,Natter 不需要内网穿透服务器,不需要经过服务器的中转
3、什么是 NAT ?
NAT,是 Network Address Translation 的缩写,翻译为网络地址转换。是一种将私有网络地址转换为公有网络地址的技术,目的是为解决 IPv4 地址不足的问题。其解决方案是将多个设备处于一个局域网内,通过共享一个公有网络 IP 地址,以访问外部网络。
若要了解 NAT 的更多信息,请自行上网搜索 NAT 或是 网络地址转换。
4、什么是 Fullcone NAT?
所有从同一个内网的 IP 或端口,发送出来的请求都会被映射到同一个外网的 IP 或端口,且任何一个外网主机都可以通过访问映射后的公网地址,实现访问位于内网的主机设备功能。外网主机可以主动连接内网主机。
而 Natter 就使用了 Fullcone NAT 的这个特性。
5、Natter 是什么来头 ?
Natter 是 Github 用户 MikeWang000000 编写的一个 Python 脚本程序,主要用途就是来在全锥型 NAT(Fullcone NAT)的网络环境下,通过一种 “打洞” 的方式,将本地网络的端口公开到至互联网上,比如公开 Minecraft 我的世界服务器。
6、原帖
7、可使用 Natter 的操作系统
只要是能用 Python 的系统就都能用这个脚本,Windows、Linux、Mac、Android 都可以用,BSD 我不太清楚,自行测试吧。
8、使用方法
在使用之前,需要满足这些条件。
- 全锥 Fullcone 类型的 NAT 的网络环境
- 设备可以安装和运行 Python
- 在路由器或光猫的后台管理页面设置 DMZ IP 到要使用 Natter 脚本的设备。
- 重中之重:按照本文的步骤,都正确无误设置完毕后,保持程序的运行。
以上条件都满足后,你可以使用 Natter 脚本。默认是测试模式,测试模式下 Natter 会自动尝试打洞,如果没问题,脚本返回这些内容
以下是示例:
1 |
|
(以上的 WAN IP 仅为示例)
在测试模式下,如果四个 IP 都是 OPEN 开放状态,那么就复制 WAN 那一行的 IP 和端口,粘贴到浏览器,看看是不是返回了这些内容:
1 |
|
提示
如果你能打开并显示上面的内容,就表示成功。
试试用其他设备在不同的网络下打开,比如蜂窝网络。
请保持 Natter 程序处于运行状态,关闭程序会让公网端口关闭,导致连接失败。
如果你用的是 Windows 系统,并且确定网络是全锥 Fullcone NAT,但 WAN 端口还是关闭状态,那么先关掉防火墙,两个都关闭,然后再试试看。
9、其他示例
用我的世界服务器举个例子吧,先打开 CMD,然后打这个命令
1 |
|
提示:如果是公开本机的端口,直接写 natter.py -p 25565
就可以了。如果要公开其他局域网的 IP 的端口,那么就这样写,比如:natter.py -t 192.168.1.2 -p 25565
四个 IP 和端口状态都是 OPEN 后,复制 WAN IP 那行的 IP 地址和端口,给你的好友或是其他人,别人就可以连接上你了
其他用法,可以使用 natter.py --help
命令查看更多使用方式。
10、详见和下载
10.1、详情请见
Github:
https://github.com/MikeWang000000/Natter
10.2、下载脚本文件
此程序为 Python 脚本,使用之前请提前在计算机中准备好 Python 解释器环境。
电脑浏览器建议右键【链接另存为】
直接下载脚本:
Github: https://raw.githubusercontent.com/MikeWang000000/Natter/refs/heads/master/natter.py
GHPROXY 镜像站:(如果 Github 无法访问就试试这个)
https://ghfast.top/https://raw.githubusercontent.com/MikeWang000000/Natter/refs/heads/master/natter.py
jsdelivr 镜像站:(如果 Github 无法访问就试试这个)
https://fastly.jsdelivr.net/gh/MikeWang000000/Natter@master/natter.py
11、其他
听说国外有些的地方的宽带也有 CG-NAT 大内网(只是听说,但不一定是),但如果是全锥 NAT 的话,也可以试试。