trojan-go
trojan-go copied to clipboard
使用cloudflare CDN时候报错failed to accept conn | not a valid websocket handshake request
Hi
我使用github上一键安装脚本https://github.com/jinwyp/one_click_script 安装了trojan-go 配合cloudflare cdn使用的话无法正常打开网页,服务端log显示如下 github.com/p4gefau1t/trojan-go/tunnel/trojan.(*Server).acceptLoop:server.go:123 trojan failed to accept conn | not a valid websocket handshake request
请问可能的原因是什么 谢谢(不开cdn则正常连接)
Hi
我使用github上一键安装脚本https://github.com/jinwyp/one_click_script 安装了trojan-go 配合cloudflare cdn使用的话无法正常打开网页,服务端log显示如下 github.com/p4gefau1t/trojan-go/tunnel/trojan.(*Server).acceptLoop:server.go:123 trojan failed to accept conn | not a valid websocket handshake request
请问可能的原因是什么 谢谢(不开cdn则正常连接)
我也是使用Jinwyp的一键安装Trojan-go,搭配Cloudflare CDN是没有问题的,建议你可以重新安装,安装时请选支持CDN,同时先关闭CDN功能
Hi 我使用github上一键安装脚本https://github.com/jinwyp/one_click_script 安装了trojan-go 配合cloudflare cdn使用的话无法正常打开网页,服务端log显示如下 github.com/p4gefau1t/trojan-go/tunnel/trojan.(*Server).acceptLoop:server.go:123 trojan failed to accept conn | not a valid websocket handshake request 请问可能的原因是什么 谢谢(不开cdn则正常连接)
我也是使用Jinwyp的一键安装Trojan-go,搭配Cloudflare CDN是没有问题的,建议你可以重新安装,安装时请选支持CDN,同时先关闭CDN功能
重试了好几次,版本显示的都是0.10.4,应该是最新的了,但是问题还是会出现,而且等级是[ERROR]
Hi 我使用github上一键安装脚本https://github.com/jinwyp/one_click_script 安装了trojan-go 配合cloudflare cdn使用的话无法正常打开网页,服务端log显示如下 github.com/p4gefau1t/trojan-go/tunnel/trojan.(*Server).acceptLoop:server.go:123 trojan failed to accept conn | not a valid websocket handshake request 请问可能的原因是什么 谢谢(不开cdn则正常连接)
我也是使用Jinwyp的一键安装Trojan-go,搭配Cloudflare CDN是没有问题的,建议你可以重新安装,安装时请选支持CDN,同时先关闭CDN功能
重试了好几次,版本显示的都是0.10.4,应该是最新的了,但是问题还是会出现,而且等级是[ERROR]
我后来放弃Trojan-go了,所以后来新版本发生的问题,恐怕要有开发者或者有经验的高手帮忙解决了
更新: 使用https://github.com/p4gefau1t/trojan-go/issues/362#issuecomment-876403780 里的设置就好了
对于我的问题, 是nginx那边设置有误, 我的location
里面的东西设置的不对
以及, 如果在nginx配置里
proxy_ssl_certificate /root/.acme.sh/xxx/fullchain.cer;
proxy_ssl_certificate_key /root/.acme.sh/xxx/xxx.key;
这两项使用的是从cloudflare上面签发的证书的话, 依旧会报这个错误, 但连接还是成功的
2021年底更新: 上边的方法依然报错但连接成功的原因只是因为cloudflare签发的证书并不是权威证书, 只对来自cloudflare的连接有效, 把cloudflare证书换成let's encrypt等权威证书, 报错就消失了
=======底下是原评论=======
我也出现了相同的问题 用的是截至现在的最新版trojan-go docker image
服务端:
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "my-fake-site",
"remote_port": 8080,
"password": [
"my-password"
],
"ssl": {
"cert": "/cloudflare-cert/cert.pem",
"key": "/cloudflare-cert/key.pem"
},
"websocket": {
"enabled": true,
"path": "/my-path"
}
}
客户端:
{
"run_type": "client",
"local_addr": "127.0.0.1",
"local_port": 1080,
"remote_addr": "my ip",
"remote_port": 443,
"password": [
"my-password"
],
"ssl": {
"sni": "my.domain.name"
},
"websocket": {
"enabled": true,
"path": "/my-path"
}
}
Nginx:
server {
listen 80;
listen [::]:80;
server_name my.domain.name;
server_tokens off;
return 302 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name my.domain.name;
server_tokens off;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
location / { #这一块是错误的, 见我上面说的评论里的设置
proxy_redirect off;
proxy_pass https://my-trojan-go-server;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
client_max_body_size 100m;
client_body_buffer_size 128k;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_ssl_name $host;
proxy_ssl_server_name on; # need this for proxy to https
}
}
去用one_click那个trojan脚本装,我之前自己配也不行,后来用一键脚本装的却可以,发现nginx里根本没有使用proxy_pass转发,而是用了stream模块直接在传输层上做转发,直接转发到tronjan监听的端口即可