Mike Wang

Results 115 comments of Mike Wang

本人已经毕业啦。 订座系统接口可能更新了,可以自己`console.log()`调试下看看。

Thank you for your PR! Printing a traceback on CTRL-C is the default behavior in Python. However, `SystemExit` does not produce a backtrace output by default. I do not think...

这是一个好问题👍 但上述方法在实际应用中会受到诸多限制: 1. **最大连接数限制。** 在 Fullcone NAT 上其实就是端口数限制。我们最多同时向外部映射数千个端口,一般很难上万。如果不是同时建立映射,超时的外部端口会被重新循环使用,因此“每次打洞得到的外部端口不重复”这一条件较难满足。根据实际观测,超时后得到重复端口的概率很大,尤其是递增型的 NAT。 2. **外部端口范围的限制。** 这一点其实也包含上一条的影响,不过更关注于分配的端口号基数。例如外部 TCP 端口从 10000 开始分配,你可以使用的区段在 10000-19999;外部 UDP 端口从 20000 开始分配,你可以使用的区段在 20000-29999;这种情况永不可能达到重合。 Natter 或者 NATMap 文档中提到的“随机”,并不是数学意义上的随机。同一个 IP 地址上使用的用户不止一个,某些端口并不是没有“随机”到,是因为被其他用户长期占用,或者就不在分配范围内。使用“随机”这一词只是一种粗略的表述。 或许可以拿 [stunclient](https://manpages.ubuntu.com/manpages/xenial/man1/stunclient.1.html)...

那我觉得可以做一个外置的脚本。比如先用你这种方法获取到等值的端口: - `TCP:内部IP:11111` => `TCP:外部IP:12345` - `UDP:内部IP:22222` => `UDP:外部IP:12345` 此时分别拉起 Natter 或者 NATMap。 - 第一个 Natter 命令行用:`python natter.py -m iptables -b 11111 -p 8080` - 第二个 Natter 命令行用:`python natter.py -u...

此 issue 可保持打开,待我补充文档、将这个功能以实用脚本的形式放入仓库。 有一些地方可以改进,比如: - 使用 `-q` 让 Natter 在发现外部地址改变时退出(便于外部脚本重新对其端口) - 直接使用 `class StunClient(object)` 获取外部端口,这样就不用去调用 `stunclient` 了。 另外加上一些限制说明和副作用(占用连接数等等),这些待我完成后,我来关闭。

> [@MikeWang000000](https://github.com/MikeWang000000) 我有使用Sunshine进行游戏串流的需求,它需要很多个不同的端口,虽然可以更改,但是这几个端口之间的差值是固定的。感觉我的需求也可以用 [@Mythologyli](https://github.com/Mythologyli) 的思路解决。但是我并不会写python脚本。我请求将这个功能的用途扩大,通过选择一个可以使用简单公式表达的规则文本文件,不停地使用Natter尝试暴露局域网内主机的特定端口,并检查外部端口是否符合规则,直到找到一组符合规则的之后将其他无用的关停。 最方便的方法是使用 WireGuard 等工具组网,使用内网 IP 进行通信。 关于“多个不同的端口”,端口数越多,能满足条件的几率越低。这个是需要考虑的。

末尾加上 `-i 192.168.31.66` 试试

看起来是 UPnP 的问题。有部分设备例如光猫等,Natter 的适配还不完全

VScode's terminal and macOS's terminal are sane emulators too, I think. Clicking their "Clear" button, they both clear all scrollbacks but keep the text on the current line. I often...

可以在脚本第一行加上 `#!/bin/bash` 后再尝试一下。看起来是系统没能识别出是 bash 脚本。