Closed iamydp closed 1 year ago
提供的信息不足,比如运行程序的完整参数。不过我猜测问题是使用了失效的或是不支持TCP协议的STUN服务器。
那么,试试 stun.freeswitch.org
或参考 https://github.com/heiher/natmap/issues/18 中的其它地址。
我是根据qBittorrent-NAT-TCP-Hole-Punching使用的,实际命令及输出如下,更换其他stun服务器也不行. 使用环境网络为双wan接入,机器两张网卡做主从备份绑定,断开其中一条wan或指定网卡都没有用
stun.ekiga.net
在我这是无法访问的,stun.freeswitch.org是确定可用的,但我发现你又加了-i bond0参数,那么bond0访问bing.com是否可达?
可以用curl测一下:
curl -i --interface bond0 bing.com
如果不确定的情况下,先不要绑定让默认路由选择出口网卡。
stun_server_tcp = [
"fwa.lifesizecloud.com",
"stun.isp.net.au",
"stun.freeswitch.org",
"stun.voip.blackberry.com",
"stun.nextcloud.com",
"stun.sipnet.com",
"stun.radiojar.com",
"stun.sonetel.com",
"stun.voipgate.com"
bing是正常访问的,在natter正常使用的情况下我尝试了如上natter使用的stun服务器,结果还是跟之前一样
没有贴出实验测试结果,还真猜不到原因。Natter能用就行了,功能是一样的。
一样的问题
root@OpenWrt:~# ./natmap -s stun.freeswitch.org -h www.qq.com -b 2121
[E] hev_sock_client_stun src/hev-sock.c:281
[E] task_entry src/hev-stun.c:289
[E] hev_sock_client_tcp src/hev-sock.c:167
[E] tnsk_run src/hev-tnsk.c:93
[E] hev_sock_client_tcp src/hev-sock.c:167
[E] tnsk_run src/hev-tnsk.c:93
[E] hev_sock_client_tcp src/hev-sock.c:167
[E] tnsk_run src/hev-tnsk.c:93
[E] hev_sock_client_tcp src/hev-sock.c:167
[E] tnsk_run src/hev-tnsk.c:93
[E] hev_sock_client_tcp src/hev-sock.c:167
[E] tnsk_run src/hev-tnsk.c:93
^C
用 natter 可以看到打洞成功
root@OpenWrt:~# python3 natter.py 2121
[INFO] - Getting STUN server IP...
[INFO] - Checking NAT Type for UDP...
[INFO] - NAT Type for UDP: [ Full cone (NAT 1) ]
[INFO] - Checking NAT Type for TCP...
[INFO] - NAT Type for TCP: [ Cone NAT ]
[INFO] - Start punching...
[INFO] - The TCP hole punching appears to be successful. Please test this address from another network: ('xx.x.x.x', 3596)
================================
('xx.x.x.x', 3596)
================================
[INFO] - TCP keep-alive...
大概率是 stun 服务器不可达造成的
我已经使用 IP 44.202.12.120 打洞成功
是的,国外的STUN服务器的可达性在国内不同地区可能有差异,多试试几个地址 https://github.com/heiher/natmap/issues/18 。
是的,国外的STUN服务器的可达性在国内不同地区可能有差异,多试试几个地址 https://github.com/heiher/natmap/issues/18 。
可以做成传一组服务器,有一个有结果就可以,natter好像是这样的
另外为啥国内没有支持TCP的stun server 呢
小米和腾讯的服务器貌似只支持udp,国内没有tcp服务器吗?
目前没有发现开放的服务,国外的也可以用的,TCP打洞STUN访问频率很低。
不断出现[E] hev_sock_client_stun src/hev-sock.c:281 [E] task_entry src/hev-stun.c:289 错误,无论是自己编译还是用release里现成的. stun服务器换了无数个均无法解决,使用pystun测得nat类型为全锥型,手动指定stun服务器为stun.ekiga.net(pystun使用的,可以正常在我的网络环境中使用),也出现此错误. 换用natter则可以正常打洞,偶发提示nat类型为端口限制型.