shadowsocks / v2ray-plugin

A SIP003 plugin based on v2ray
MIT License
2.67k stars 569 forks source link

UDP Forwarding Skype VOIP #175

Closed aeroweb340 closed 4 years ago

aeroweb340 commented 4 years ago

Hello!

I'm using SS + v2ray plugin (Websocket TLS + CloudFlare CDN). I can't get Skype VOIP calls go through with shadowrocket on iOS and even on Mac OS. I connect from the UAE. Debian 9 + Google BBR.

Here is the conf: { "server":"0.0.0.0", "server_port":443, "password":"", "timeout":300, "method":"aes-256-gcm", "fast_open":false, "nameserver":"8.8.8.8", "mode":"tcp_and_udp", "plugin":"v2ray-plugin", "plugin_opts":"server;tls;cert=/etc/letsencrypt/live/mywebsite.com/fullchain.pem;key=/etc/letsencrypt/live/mywebsite.com/privkey.pem;host=mywebsite.com;loglevel=none" }

sysctl.conf

net.ipv4.tcp_congestion_control = bbr fs.file-max = 51200 net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 net.core.netdev_max_backlog = 250000 net.core.somaxconn = 4096 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.ip_local_port_range = 10000 65000 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_mem = 25600 51200 102400 net.ipv4.tcp_rmem = 4096 87380 67108864 net.ipv4.tcp_wmem = 4096 65536 67108864 net.ipv4.tcp_mtu_probing = 1

Thank you for anything you can do to help.

beanslel commented 4 years ago

Change shadowsocks server_port to something else on server and client (any random free port e.g. 8123). Add remotePort=443 to the client plugin_opts. Make sure the new server_port is open in the server firewall (on UDP). Then UDP forwarding should work if it's supported by the client.

aeroweb340 commented 4 years ago

Thanks for your reply but with the iOS client (shadowrocket ) there is no plugin_opts to add remotePort=443 I have the option with the Shadowsocks X NG on my Mac. I tried but nothing works...

aeroweb340 commented 4 years ago

I forgot to mention that I'm getting a lot of errors with the initial conf posted :(

Jan 15 12:00:16 airshadow ss-server[1429]: 2020-01-15 12:00:16 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:00:17 airshadow ss-server[1429]: 2020-01-15 12:00:17 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:00:46 airshadow ss-server[1429]: 2020-01-15 12:00:46 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:00:47 airshadow ss-server[1429]: 2020-01-15 12:00:47 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:01:16 airshadow ss-server[1429]: 2020-01-15 12:01:16 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:01:17 airshadow ss-server[1429]: 2020-01-15 12:01:17 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:01:44 airshadow ss-server[1429]: 2020-01-15 12:01:44 ERROR: remote recv: Connection reset by peer Jan 15 12:01:46 airshadow ss-server[1429]: 2020-01-15 12:01:46 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:01:47 airshadow ss-server[1429]: 2020-01-15 12:01:47 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:02:03 airshadow ss-server[1429]: 2020-01-15 12:02:03 ERROR: getpeername: Transport endpoint is not connected

Jan 15 12:15:46 airshadow ss-server[770]: 2020-01-15 12:15:46 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:15:47 airshadow ss-server[770]: 2020-01-15 12:15:47 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:16:16 airshadow ss-server[770]: 2020-01-15 12:16:16 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:16:17 airshadow ss-server[770]: 2020-01-15 12:16:17 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:16:22 airshadow ss-server[770]: 2020-01-15 12:16:22 ERROR: connect: Network is unreachable Jan 15 12:16:32 airshadow ss-server[770]: 2020-01-15 12:16:32 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:16:46 airshadow ss-server[770]: 2020-01-15 12:16:46 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:16:48 airshadow ss-server[770]: 2020-01-15 12:16:48 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:17:17 airshadow ss-server[770]: 2020-01-15 12:17:17 ERROR: getpeername: Transport endpoint is not connected Jan 15 12:17:18 airshadow ss-server[770]: 2020-01-15 12:17:18 ERROR: getpeername: Transport endpoint is not connected

Mygod commented 4 years ago

UDP is not supported via plugins.

beanslel commented 4 years ago

UDP is not supported via plugins.

Wait, what? I have UDP relay enabled on my router with ss-redir, my server is SS+v2ray_plugin TLS+Websocket and it works fine: UDP packets get relayed through my SS server. Does that mean UDP relay bypasses the plugin and it uses a direct SS connection?

I thought ss-redit acts as a proxy that converts UDP into TCP and then send it through the tunnel, and then at the other side convert it back into UDP. Isn't that what's happening? If it is, why can't it send it through the plugin as usual?

ValdikSS commented 4 years ago

Does that mean UDP relay bypasses the plugin and it uses a direct SS connection?

Yes. Check my small research: https://ntc.party/t/testing-shadowsocks-udp-handling-with-obfuscation-enabled/533