less than 1 minute read

使用NatTypeTester和PortMapper在有UPnP的路由器下NAT打洞

如果你使用OpenWrt路由器可以考虑使用NATMap

平台: Windows

需要用到的工具:
NatTypeTester
PortMapper
PsPing

先使用NatTypeTester确定当前NAT类型为FullCone

  1. 打开NatTypeTester选择 RFC 3489
  2. STUN服务器写入 stun.isp.net.au
  3. 点击测试,如果NAT类型为FullCone就可以继续操作

进行内外网端口绑定

使用NatTypeTester的RFC 5780测试的TCP模式可以创建临时的绑定
以下的操作可以持续让运营商建立绑定

准备工作

  1. 下载并解压PsPing
  2. 在解压出来的文件夹中打开cmd
  3. 在cmd中输入(结尾有一个空格)
    psping64 -t 
    
  4. 输入后不要按回车,进行下一步

让NatTypeTester建立绑定

  1. 打开NatTypeTester选择 RFC 5780
  2. STUN服务器写入 stun.isp.net.au
  3. 选择TCP并且点击测试
  4. 快速复制下方的公网IP和端口粘贴到早些时候打开的cmd中并回车
  5. 如果出现连接拒绝说明成功

创建UPnP端口转发

使用PortMapper创建端口转发,使用方法不过多介绍

  1. 打开PortMapper并连接
  2. 连接成功后创建端口映射预设
  3. 添加一个TCP协议的映射
  4. 外部端口写入NatTypeTester中Local end的端口,回车保存
  5. 内部端口写入本地服务的监听端口,比如8080
  6. 点击保存,选择并使用

完成后测试

如果你开的是HTTP服务器可以直接把Public end中的IP和端口输入到浏览器,如果可以打开就是成功

如果你不关闭psping的cmd窗口那么这个公网IP和端口你可以一直使用

补充

如果你想打洞UDP协议,可以使用这个Python脚本来进行udping