Closed ttc0419 closed 2 years ago
Is the version of your Linux kernel older than 4.11? shadowsocks-go only supports dialerTFO: true
on 4.11 and newer.
Just tried turning off dialerTFO
on both server and client. The problem still exists. It seems the problems is not related to TFO. If I turn on the TFO option in shadowrocket, it still works.
Kernel Version:
Linux RT-AC86U-BC68 4.1.27 #2 SMP PREEMPT Sun Jul 24 18:28:39 EDT 2022 aarch64 ASUSWRT-Merlin
Can you post your server config? If your server config was based on https://github.com/database64128/shadowsocks-go/blob/main/docs/server.json and does not have clients
, shadowsocks-go creates a direct client on startup with dialTFO
enabled: https://github.com/database64128/shadowsocks-go/blob/120ce8abb5d6aedf209ff2828a163989d7ed75c0/service/service.go#L45-L56
You kernel version is not supported by dialerTFO
. Therefore you have to specify this direct client yourself with dialerTFO
set to false.
@database64128 Updated the description to add server configuration and the latest client configuration.
You can safely leave listenerTFO
on. It's supported down to Linux 3.6.
@database64128 Ok, just added server and client debug log. Let me know if you need more info.
Thanks. Have you tried https://github.com/database64128/shadowsocks-go/issues/29#issuecomment-1329103206? Basically you need to modify your server config to something like:
{
"servers": [
{
"name": "main",
"listen": ":5419",
"protocol": "2022-blake3-aes-128-gcm",
"enableTCP": true,
"listenerTFO": true,
"enableUDP": true,
"mtu": 1500,
"psk": "xxx"
}
],
"clients": [
{
"name": "direct",
"protocol": "direct",
"enableTCP": true,
"dialerTFO": false,
"enableUDP": true,
"mtu": 1500
}
]
}
Sorry for not reading the comment carefully. Yes, the config works. What does client section in server configuration mean?
What does client section in server configuration mean?
shadowsocks-go's abstractions may be a bit different from what you are used to. A server accepts requests, asks the router to pick a client, and invokes the client to establish a remote connection. Depending on your configuration, traffic can flow from any server to any client.
Your client config is essentially a SOCKS5 server that forwards traffic to a Shadowsocks client. Your server config is a Shadowsocks server and a "direct" client.
For those who do want to enable tcp fast open. You can enable it by command echo 3 > /proc/sys/net/ipv4/tcp_fastopen
in startup script (e.g. /jffs/scripts/services-start
for merlin-ng firmware).
I'm running the arm64 server on my Asus router. Client like shadowrocket connects just fine. However, if I use the client of this project using the following configuration. The server fails to connect to the server.
Server Configuration:
Client Configuration:
Server Log:
Client Log: