HMBSbige / NatTypeTester

测试当前网络的 NAT 类型(STUN)
MIT License
3.57k stars 217 forks source link

支持TCP类型检测吗? #207

Closed ahhfzwl closed 1 year ago

HMBSbige commented 1 year ago

不支持,因为没有必要

ahhfzwl commented 1 year ago

TCP服务很多的,怎么会没必要呢?

HMBSbige commented 1 year ago

额,难道我还要说完整吗? NAT 行为对 TCP 服务没有意义

ahhfzwl commented 1 year ago

有意义啊,我没公网IP,想要在内网开启http服务,就得用TCP打洞。

dsus4wang commented 1 year ago

同求

HMBSbige commented 1 year ago

最新 Actions 可以下载支持 TCP 测试的版本

所以我还是没懂,TCP 打洞根本不需要 STUN 吧

MFWT commented 1 year ago

所以我还是没懂,TCP 打洞根本不需要 STUN 吧

存在UDP是FullCone但是TCP是Symmetric的情况,我朋友用某地广电卡就是这个情况,俗称假FullCone 这玩意还挺恶心,因为有些打洞软件可能看见FullCone就连接了,结果当然是连不上

HMBSbige commented 1 year ago

所以我还是没懂,TCP 打洞根本不需要 STUN 吧

存在UDP是FullCone但是TCP是Symmetric的情况,我朋友用某地广电卡就是这个情况,俗称假FullCone 这玩意还挺恶心,因为有些打洞软件可能看见FullCone就连接了,结果当然是连不上

UDP 和 TCP 行为不一样也很正常吧 你说的假FullCone应该是 RFC3489 测出来的吧。这种测试方法早已过时,不适用于现代的路由设备

所以你的意思是测试出来 TCP EndpointIndependent 的 NAT 就可以 TCP 打洞吗?

molehzy commented 1 year ago

所以我还是没懂,TCP 打洞根本不需要 STUN 吧

存在UDP是FullCone但是TCP是Symmetric的情况,我朋友用某地广电卡就是这个情况,俗称假FullCone 这玩意还挺恶心,因为有些打洞软件可能看见FullCone就连接了,结果当然是连不上

UDP 和 TCP 行为不一样也很正常吧 你说的假 FullCone应该是 RFC3489 测出来的吧。这种测试方法早已过时,不适用于现代的路由设备

所以你的意思是测试出来 TCP EndpointIndependent 的 NAT 就可以 TCP 打洞吗?

比如这个项目https://github.com/heiher/natmap

HMBSbige commented 1 year ago

所以我还是没懂,TCP 打洞根本不需要 STUN 吧

存在UDP是FullCone但是TCP是Symmetric的情况,我朋友用某地广电卡就是这个情况,俗称假FullCone 这玩意还挺恶心,因为有些打洞软件可能看见FullCone就连接了,结果当然是连不上

UDP 和 TCP 行为不一样也很正常吧 你说的假 FullCone应该是 RFC3489 测出来的吧。这种测试方法早已过时,不适用于现代的路由设备 所以你的意思是测试出来 TCP EndpointIndependent 的 NAT 就可以 TCP 打洞吗?

比如这个项目heiher/natmap

Establish a connection with the STUN server from the same port and obtain the public address.

只是为了获取公网IP 所以还是跟我之前理解的一样?TCP 打洞根本不需要 STUN(因为现在还有很多其他手段可以获取公网IP)

ahhfzwl commented 1 year ago

TCP没有NAT1,市面上的测试软件都是假的,我试过各种路由系统,没有可以成功打洞的,最终都需要端口映射或转发,UDP倒是可以打洞成功。

---原始邮件--- 发件人: "Bruce @.> 发送时间: 2023年9月20日(周三) 晚上7:31 收件人: @.>; 抄送: @.**@.>; 主题: Re: [HMBSbige/NatTypeTester] 支持TCP类型检测吗? (Issue #207)

所以我还是没懂,TCP 打洞根本不需要 STUN 吧

存在UDP是FullCone但是TCP是Symmetric的情况,我朋友用某地广电卡就是这个情况,俗称假FullCone 这玩意还挺恶心,因为有些打洞软件可能看见FullCone就连接了,结果当然是连不上

UDP 和 TCP 行为不一样也很正常吧 你说的假 FullCone应该是 RFC3489 测出来的吧。这种测试方法早已过时,不适用于现代的路由设备 所以你的意思是测试出来 TCP EndpointIndependent 的 NAT 就可以 TCP 打洞吗?

比如这个项目heiher/natmap

Establish a connection with the STUN server from the same port and obtain the public address.

只是为了获取公网IP 所以还是跟我之前理解的一样,TCP 打洞根本不需要 STUN(因为现在还有很多其他手段可以获取公网IP)

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

MFWT commented 1 year ago

TCP没有NAT1,市面上的测试软件都是假的,我试过各种路由系统,没有可以成功打洞的,最终都需要端口映射或转发,UDP倒是可以打洞成功

我现在就是用natter打洞ssh连回家的,纯纯的TCP连接

MFWT commented 1 year ago

我现在就是用natter打洞ssh连回家的,纯纯的TCP连接

反正这个打洞是可以正常使用的,访问端不需要另外再安装客户端,natter显示TCP为Cone NAT

ahhfzwl commented 1 year ago

所以我还是没懂,TCP 打洞根本不需要 STUN 吧

存在UDP是FullCone但是TCP是Symmetric的情况,我朋友用某地广电卡就是这个情况,俗称假FullCone 这玩意还挺恶心,因为有些打洞软件可能看见FullCone就连接了,结果当然是连不上

UDP 和 TCP 行为不一样也很正常吧 你说的假 FullCone应该是 RFC3489 测出来的吧。这种测试方法早已过时,不适用于现代的路由设备 所以你的意思是测试出来 TCP EndpointIndependent 的 NAT 就可以 TCP 打洞吗?

比如这个项目heiher/natmap

Establish a connection with the STUN server from the same port and obtain the public address.

只是为了获取公网IP 所以还是跟我之前理解的一样?TCP 打洞根本不需要 STUN(因为现在还有很多其他手段可以获取公网IP)

还有什么手段啊?求教程。

ahhfzwl commented 1 year ago

TCP没有NAT1,市面上的测试软件都是假的,我试过各种路由系统,没有可以成功打洞的,最终都需要端口映射或转发,UDP倒是可以打洞成功

我现在就是用natter打洞ssh连回家的,纯纯的TCP连接

你应该是在路由器上安装的吧?那确实可以,因为没有经过路由NAT。我是在电脑上运行测试软件,提示NAT1,但我在电脑上打洞却不行,因为路由器只有UDP支持NAT1,TCP不支持。所以我说测试软件是假的。

MFWT commented 1 year ago

你应该是在路由器上安装的吧?那确实可以,因为没有经过路由NAT。我是在电脑上运行测试软件,提示NAT1,但我在电脑上打洞却不行,因为路由器只有UDP支持NAT1,TCP不支持。所以我说测试软件是假的。

路由器和内网设备我都用过,内网设备用要在路由器上设置一下端口转发,比如natter开始时指定的那个端口(bind port),得在路由器上设置下转发

HMBSbige commented 1 year ago

上面有几位可能误会了,NatTypeTester 只是利用 STUN 检测 NAT 类型,并不是为了打洞

对于 TCP 来说,理论上 Mapping behavior = EndpointIndependent 就可以打洞

在 TCP 打洞流程中是可以利用 STUN 协议获取公网 IP(当然完全也可以通过其他方法)

具体怎么打洞可以自行搜索研究,或者另开 discussions