MikeWang000000 / Natter

Expose your TCP/UDP port behind full-cone NAT to the Internet.
GNU General Public License v3.0
1.31k stars 107 forks source link

[Feature Request] 增加Upnp功能以实现自动开端口 #20

Open Zy143L opened 1 year ago

Zy143L commented 1 year ago

使用Upnp工具与NAT开端口工具 成功实现免修改路由器端口转发打开测试页面 如果可以的话 增加自动upnp 可以避免去路由器开端口的麻烦

MikeWang000000 commented 1 year ago

可以分享一下您正在使用的UPNP工具,以及具体的实现流程吗?可以为Natter将来的改进作为参考。

另外,v0.9的 hook 脚本功能是否能满足您的需求? 端口开放完成后,Natter可以向 hook 脚本传入端口信息,您可以定制脚本实现扩展功能,如UPNP。

Zy143L commented 1 year ago

目前在使用 https://github.com/jfdelgad/port-forward/blob/master/port-forward_3.py 这个

miniupnpc这个库不要用...会带来不幸

需要稍微修改的是 addr = get_my_ip() sock.bind((addr, 0)) 要不然在多网卡的情况下 无法正确发现upnp

MikeWang000000 commented 1 year ago

OK~ 有空我去看看实现

Gankyun commented 4 months ago

PR #47

我推了个PR,有测试环境的可以试一下。

  1. 运营商 分配的是NAT 1 类型
  2. 路由器拨号 (或光猫拨号DMZ路由器地址)
  3. 路由器开启UPnP

如果是光猫拨号的话,需要打洞的设备直接连接光猫,并且在光猫上开启UPnP 应该也是可行的。

MikeWang000000 commented 1 month ago

感谢 @Gankyun 的贡献,目前 UPnP 功能经过重新实现后(主要是为了去除依赖)已合入 dev 分支,计划 2.1.0 版本正式发布。