Closed nasaboy closed 1 year ago
2023/06/05 16:40:25 dial: websocket: bad handshake
你和我们的 API 连接失败,如果是从中国大陆发起的请求,请检查你的连接是否被 Reset,如果是请挂代理。
2023/06/05 16:40:25 dial: websocket: bad handshake
你和我们的 API 连接失败,如果是从中国大陆发起的请求,请检查你的连接是否被 Reset,如果是请挂代理。
目前我也是从大陆连接,也是无法连接 api server,请问如何确认是否呗reset,目前我通过v2rayn挂在代理,依旧是同样的问题!
你的api服务器,直连我可以ping通,不需要代理。
似乎很多人遇到同样的问题,麻烦看下能否有效方案协助下!应该将那些api server ip设置走代理!
前段时间也遇到了这个问题,尝试为 api.leo.moe 配置代理(抓包确定是已经走了代理)后仍然报错。 最终的解决方案是自行反代了 api.leo.moe 的 ws 服务,然后使用 NEXTTRACE_HOSTPORT 环境变量指定使用自己的反代服务器。 供参考。
大佬能细说吗,反代我知道,自己弄个网站,反代大佬的api.leo.moe,然后 “NEXTTRACE_HOSTPORT 环境变量指定使用自己的反代服务器” 这个要怎么搞大佬!
Linux / Mac: export NEXTTRACE_HOSTPORT="api.example.com"
Windows: set NEXTTRACE_HOSTPORT="api.example.com"
以上操作仅在当前窗口生效。如需持久化,请以 “{你的操作系统} 设置环境变量” 为关键词搜索 另外使用 nginx 反代 ws 服务时,请注意相关请求头的处理,搜索关键词 “nginx 反向代理 websocket”
你的api服务器,直连我可以ping通,不需要代理。
因为某个不可名状的东西只掐我们的api的ws连接
前段时间也遇到了这个问题,尝试为 api.leo.moe 配置代理(抓包确定是已经走了代理)后仍然报错。
最终的解决方案是自行反代了 api.leo.moe 的 ws 服务,然后使用 NEXTTRACE_HOSTPORT 环境变量指定使用自己的反代服务器。
供参考。
这确实是一种方法,我们也是这样做的
建议这种情况还是自行反代喽
ubuntu@kr:~$ sudo ./nexttrace -F
NextTrace v1.1.7-1 2023-06-04T03:55:17Z 2c86f86
Hi,欢迎使用 Fast Trace 功能,请注意 Fast Trace 功能只适合新手使用
因为国内网络复杂,我们设置的测试目标有限,建议普通用户自测以获得更加精准的路由情况
请您选择要测试的 IP 类型
1. IPv4
2. IPv6
请选择选项:1
您想测试哪些ISP的路由?
1. 国内四网
2. 电信
3. 联通
4. 移动
5. 教育网
请选择选项:2
[NextTrace API] prefered API IP - [2606:4700:3030::6815:34ee] - 1.09ms
您将默认使用ICMP协议进行路由跟踪,如果您想使用TCP SYN进行路由跟踪,可以加入 -T 参数
在国外vps上执行以后,没有进行下一步的测试,这个问题是在哪里?
ubuntu@kr:~$ sudo ./nexttrace -F NextTrace v1.1.7-1 2023-06-04T03:55:17Z 2c86f86 Hi,欢迎使用 Fast Trace 功能,请注意 Fast Trace 功能只适合新手使用 因为国内网络复杂,我们设置的测试目标有限,建议普通用户自测以获得更加精准的路由情况 请您选择要测试的 IP 类型 1. IPv4 2. IPv6 请选择选项:1 您想测试哪些ISP的路由? 1. 国内四网 2. 电信 3. 联通 4. 移动 5. 教育网 请选择选项:2 [NextTrace API] prefered API IP - [2606:4700:3030::6815:34ee] - 1.09ms 您将默认使用ICMP协议进行路由跟踪,如果您想使用TCP SYN进行路由跟踪,可以加入 -T 参数
在国外vps上执行以后,没有进行下一步的测试,这个问题是在哪里?
没有任何后续提示吗
set NEXTTRACE_HOSTPORT="api.example.com"
location /wss {
proxy_pass https://api.leo.moe;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
rewrite /wss/(.*) /$1 break;
proxy_redirect off;
}
这样是否正确老哥!
ubuntu@kr:~$ sudo ./nexttrace -F NextTrace v1.1.7-1 2023-06-04T03:55:17Z 2c86f86 Hi,欢迎使用 Fast Trace 功能,请注意 Fast Trace 功能只适合新手使用 因为国内网络复杂,我们设置的测试目标有限,建议普通用户自测以获得更加精准的路由情况 请您选择要测试的 IP 类型 1. IPv4 2. IPv6 请选择选项:1 您想测试哪些ISP的路由? 1. 国内四网 2. 电信 3. 联通 4. 移动 5. 教育网 请选择选项:2 [NextTrace API] prefered API IP - [2606:4700:3030::6815:34ee] - 1.09ms 您将默认使用ICMP协议进行路由跟踪,如果您想使用TCP SYN进行路由跟踪,可以加入 -T 参数
在国外vps上执行以后,没有进行下一步的测试,这个问题是在哪里?
没有任何后续提示吗
是的,已经复制了显示出来的全部内容
ubuntu@kr:~$ sudo ./nexttrace -F NextTrace v1.1.7-1 2023-06-04T03:55:17Z 2c86f86 Hi,欢迎使用 Fast Trace 功能,请注意 Fast Trace 功能只适合新手使用 因为国内网络复杂,我们设置的测试目标有限,建议普通用户自测以获得更加精准的路由情况 请您选择要测试的 IP 类型 1. IPv4 2. IPv6 请选择选项:1 您想测试哪些ISP的路由? 1. 国内四网 2. 电信 3. 联通 4. 移动 5. 教育网 请选择选项:2 [NextTrace API] prefered API IP - [2606:4700:3030::6815:34ee] - 1.09ms 您将默认使用ICMP协议进行路由跟踪,如果您想使用TCP SYN进行路由跟踪,可以加入 -T 参数
在国外vps上执行以后,没有进行下一步的测试,这个问题是在哪里?
没有任何后续提示吗
是的,已经复制了显示出来的全部内容
您的意思是后面就卡死了吗?
如果是这样,请测试个IP试试 看看是否正常
set NEXTTRACE_HOSTPORT="api.example.com"
location /wss { proxy_pass https://api.leo.moe; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; rewrite /wss/(.*) /$1 break; proxy_redirect off; }
这样是否正确老哥!
不对的
set NEXTTRACE_HOSTPORT="api.example.com"
location /wss { proxy_pass https://api.leo.moe; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; rewrite /wss/(.*) /$1 break; proxy_redirect off; }
这样是否正确老哥!
需要反代路由 /v3/ipGeoWs
我回头在wiki补充一下反代怎么设置吧
ubuntu@kr:~$ sudo ./nexttrace -F
NextTrace v1.1.7-1 2023-06-04T03:55:17Z 2c86f86
Hi,欢迎使用 Fast Trace 功能,请注意 Fast Trace 功能只适合新手使用
因为国内网络复杂,我们设置的测试目标有限,建议普通用户自测以获得更加精准的路由情况
请您选择要测试的 IP 类型
IPv4
IPv6
请选择选项:1
您想测试哪些ISP的路由?
国内四网
电信
联通
移动
教育网
请选择选项:2
[NextTrace API] prefered API IP - [2606:4700:3030::6815:34ee] - 1.09ms
您将默认使用ICMP协议进行路由跟踪,如果您想使用TCP SYN进行路由跟踪,可以加入 -T 参数
在国外vps上执行以后,没有进行下一步的测试,这个问题是在哪里?
没有任何后续提示吗
是的,已经复制了显示出来的全部内容
您的意思是后面就卡死了吗?
如果是这样,请测试个IP试试 看看是否正常
我也不知道是不是卡死,就没有继续往下走了。 ip、域名测试是可以正常进行的。
在线等,辛苦!
set NEXTTRACE_HOSTPORT="api.example.com"
location /wss { proxy_pass https://api.leo.moe; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; rewrite /wss/(.*) /$1 break; proxy_redirect off; }
这样是否正确老哥!
需要反代路由
/v3/ipGeoWs
虽然暂时还没解决,不过感谢呢,老哥能否贴一下你的反代文件!
ip测试是可以正常进行的。
您可以试一下 1.1.6 版本的 Fast Trace,这个版本没有 Pow 验证,使用的也是旧版本的 API。
ip测试是可以正常进行的。
您可以试一下 1.1.6 版本的 Fast Trace,这个版本没有 Pow 验证,使用的也是旧版本的 API。
刚刚测试,和最新版一样,没有区别,测试没有继续往下走
ip测试是可以正常进行的。
您可以试一下 1.1.6 版本的 Fast Trace,这个版本没有 Pow 验证,使用的也是旧版本的 API。
刚刚测试,和最新版一样,没有区别,测试没有继续往下走
麻烦你开个新issue,我们后期来帮你跟进一下
在线等,辛苦!
写了一个 Demo,具体按照自己的需求调整
location ^~ /v3 {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
client_max_body_size 1000m;
proxy_redirect off;
proxy_ssl_server_name on;
proxy_ssl_name $host;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass https://104.19.58.68;
}
set NEXTTRACE_HOSTPORT="api.example.com"
location /wss { proxy_pass https://api.leo.moe; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; rewrite /wss/(.*) /$1 break; proxy_redirect off; }
这样是否正确老哥!
需要反代路由
/v3/ipGeoWs
虽然暂时还没解决,不过感谢呢,老哥能否贴一下你的反代文件!
由于会调用多个接口,建议代理整个 / 以下配置供参考
upstream origin-leo {
#PS: 这里只起到DNS作用,SNI在location处指明
server api.nxtrace.org:443;
keepalive 300;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/key.key;
server_name api.example.com;
location / {
proxy_pass https://origin-leo;
proxy_ssl_server_name on;
proxy_ssl_name origin-fallback.nxtrace.org;
proxy_ssl_protocols TLSv1.3;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host origin-fallback.nxtrace.org;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
upstream origin-leo {
server api.leo.moe:443;
keepalive 300;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl http2;
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/key.key;
server_name api.example.com;
location / {
proxy_pass https://origin-leo;
proxy_ssl_server_name on;
proxy_ssl_name api.leo.moe;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host api.leo.moe;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
set NEXTTRACE_HOSTPORT="api.example.com"
location /wss { proxy_pass https://api.leo.moe; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; rewrite /wss/(.*) /$1 break; proxy_redirect off; }
这样是否正确老哥!
需要反代路由
/v3/ipGeoWs
虽然暂时还没解决,不过感谢呢,老哥能否贴一下你的反代文件!
由于会调用多个接口,建议代理整个 /
以下配置供参考
upstream origin-leo { server api.leo.moe:443; keepalive 300; } map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 443 ssl http2; ssl_certificate /path/to/your/cert.pem; ssl_certificate_key /path/to/your/key.key; server_name api.example.com; location / { proxy_pass https://origin-leo; proxy_ssl_server_name on; proxy_ssl_name api.leo.moe; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host api.leo.moe; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
感谢,后续我在wiki中引用您的配置吧
由于会调用多个接口,建议代理整个 /
是这样的,因为pow和tracemap等功能也需要反代。
set NEXTTRACE_HOSTPORT="api.example.com"
location /wss {
proxy_pass https://api.leo.moe;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
rewrite /wss/(.*) /$1 break;
proxy_redirect off;
}
这样是否正确老哥!
需要反代路由
/v3/ipGeoWs
虽然暂时还没解决,不过感谢呢,老哥能否贴一下你的反代文件!
由于会调用多个接口,建议代理整个 / 以下配置供参考
upstream origin-leo { server api.leo.moe:443; keepalive 300; } map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 443 ssl http2; ssl_certificate /path/to/your/cert.pem; ssl_certificate_key /path/to/your/key.key; server_name api.example.com; location / { proxy_pass https://origin-leo; proxy_ssl_server_name on; proxy_ssl_name api.leo.moe; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host api.leo.moe; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
感谢,后续我在wiki中引用您的配置吧
由于会调用多个接口,建议代理整个 /
是这样的,因为pow和tracemap等功能也需要反代。
大佬,我是在宝塔的站点配置i文件里面,应该怎么写,懵逼了
大佬,我是在宝塔的站点配置i文件里面,应该怎么写,懵逼了
以上配置仅限于NGINX,请不要搭配任何面板使用
此处我总结一下:
若您遇到websocket: bad handshake
等类似错误
目前本项目官方API在中国大陆部分地区遇到了阻断(即官方API的域名被黑名单),您可尝试更换您的网络,调整到无干扰的地区使用。
对于v1.1.7-2以及之后的版本新增了对SOCKS5/HTTP代理的支持(配置NEXTTRACE_PROXY环境变量即可),由于主仓库目前处于refactor中,暂不接受任何新功能的添加,您可以在我的FORK仓库内下载release。
#socks5
export NEXTTRACE_PROXY=socks5://127.0.0.1:10808
#http
export NEXTTRACE_PROXY=http://127.0.0.1:10809
#with password
export NEXTTRACE_PROXY=socks5://username:password@127.0.0.1:10808
或者您可参看此此issue并自行搭建我们官方API的反向代理。
若您没有能力自建反向代理,可使用本项目在此时期的临时接口,在运行nexttrace前输入下面这条命令(或保存到~/.bashrc中,这样就不用每次新开终端时重新输入一遍):
export NEXTTRACE_HOSTPORT=nexttrace-io-leomoe-api-a0.shop
依旧有问题,应该是无法访问那你的反代ipv6
依旧有问题,应该是无法访问那你的反代ipv6
你可以试试使用/etc/hosts 指定为ipv4地址
现在自己建立反代了,按照上面的,但是又出现这种情况,没有bad handshak了
不会是反代服务器无法连接api.leo.moe吧
现在自己建立反代了,按照上面的,但是又出现这种情况,没有bad handshak了
在issue区提出问题前请先看看wiki,这里不再赘述
mario@father ~ % nexttrace 8.8.8.8 NextTrace 1.1.7-1 2023-06-03T21:27:21Z brew [NextTrace API] prefered API IP - 103.120.18.35 - 62.87ms 2023/06/07 15:37:38 dial: websocket: bad handshake IP Geo Data Provider: LeoMoeAPI traceroute to 8.8.8.8, 30 hops max, 52 bytes packets 2023/06/07 15:37:39 dial: websocket: bad handshake 1 192.168.57.1 [RFC1918] 局域网 4.56 ms / 10.55 ms / 5.91 ms 2023/06/07 15:37:40 dial: websocket: bad handshake 2 192.168.10.1 [RFC1918] 局域网 9.59 ms / 23.04 ms / 31.73 ms 2023/06/07 15:37:40 dial: websocket: bad handshake 2023/06/07 15:37:41 dial: websocket: bad handshake 2023/06/07 15:37:42 dial: websocket: bad handshake 3 10.8.8.13 [RFC1918] 局域网 95.73 ms / 11.40 ms / 10.53 ms 4 5 172.17.40.210 [RFC1918] 局域网 55.79 ms / 6.57 ms / 6.63 ms 6 172.16.214.33 [RFC1918] 局域网 14.52 ms / 6.77 ms / 98.56 ms 2023/06/07 15:37:44 dial: websocket: bad handshake 7 172.16.214.13 [RFC1918] 局域网 29.01 ms / 17.07 ms / 14.73 ms 8 172.16.207.238 [RFC1918] 局域网 38.74 ms / 12.28 ms / 71.46 ms 2023/06/07 15:37:45 dial: websocket: bad handshake 9 172.16.207.243 [RFC1918] 局域网 10.82 ms / 11.51 ms / 10.38 ms 10 2023/06/07 15:37:47 dial: websocket: bad handshake 11 172.16.23.45 [RFC1918] 局域网 19.98 ms / 13.74 ms / 20.34 ms 2023/06/07 15:37:49 dial: websocket: bad handshake 12 203.131.241.181 ASAPI Server Error 局域网 ae-7.a00.chwahk02.hk.bb.gin.ntt.net 12.89 ms / 112.92 ms / ms 13 203.131.250.82 ASAPI Server Error 局域网 11.38 ms / 41.34 ms / 12.42 ms 14 108.170.241.1 ASAPI Server Error 局域网 19.45 ms / 78.50 ms / 16.70 ms 2023/06/07 15:37:51 dial: websocket: bad handshake 15 209.85.143.153 ASAPI Server Error 局域网 28.83 ms / 10.66 ms / 11.28 ms 16 8.8.8.8 ASAPI Server Error 局域网 13.28 ms / 42.70 ms / 9.98 ms 2023/06/07 15:37:53 dial: websocket: bad handshake MapTrace URL: panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x2 addr=0x0 pc=0x100990158]
goroutine 1 [running]: github.com/gorilla/websocket.(*Conn).Close(0x14000100000?) github.com/gorilla/websocket@v1.5.0/conn.go:345 +0x18 github.com/xgadget-lab/nexttrace/cmd.Excute.func1() github.com/xgadget-lab/nexttrace/cmd/cmd.go:165 +0x24 github.com/xgadget-lab/nexttrace/cmd.Excute() github.com/xgadget-lab/nexttrace/cmd/cmd.go:315 +0x1a0c main.main() github.com/xgadget-lab/nexttrace/main.go:8 +0x1c
你正在使用哪个版本的 nexttrace?
nexttrace_windows_amd64.exe
你看到的异常现象是什么?
程序崩溃,无法执行
你期待看到的正常表现是怎样的?
请附上你的命令
nexttrace_windows_amd64.exe -F
请附上出错时软件输出的错误信息
是否查询过本仓库wiki有没有类似错误