shadowsocks-rust: sslocal say "udp failed to send back 16 bytes to client error: Protocol not available (os error 92)"
I tried to setup up a transparent proxy on my router by tproxy, but it was always failed on sslocal with udp failed to send back 16 bytes to client error: Protocol not available (os error 92) error. Then I will always get a NAT F type on my nintendo switch network test😢. Pls help me to debug this problem.
2022-10-28T16:17:15.018467732+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::proxy_socket] UDP server client send to 13.112.35.82:10025, control: UdpSocketControlData { client_session_id: 1808483490137459351, server_session_id: 0, packet_id: 13, user: None }, payload length 16 bytes, packet length 71 bytes
2022-10-28T16:17:15.018712648+00:00 TRACE [18560:1079384816] [shadowsocks_service::local::net::udp::association] udp relay 192.168.51.77:62450 -> 13.112.35.82:10025 (proxied) with 16 bytes
2022-10-28T16:17:15.018883002+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::aead] UDP packet generated aead salt b"-~\x98jq\xdfh\x87\xd96<\x12\xa5WliT\x02\x97\xeajJ\\\xba?i\x0c\x11\x95\xd1*("
2022-10-28T16:17:15.019205036+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::proxy_socket] UDP server client send to 13.112.35.82:10025, control: UdpSocketControlData { client_session_id: 1808483490137459351, server_session_id: 0, packet_id: 14, user: None }, payload length 16 bytes, packet length 71 bytes
2022-10-28T16:17:15.019452792+00:00 TRACE [18560:1079384816] [shadowsocks_service::local::net::udp::association] udp relay 192.168.51.77:62450 -> 13.112.35.82:10025 (proxied) with 16 bytes
2022-10-28T16:17:15.019622272+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::aead] UDP packet generated aead salt b"-4\xcf\xb6>s\x99-\xb9\x0b-KKE\xb7\xb4\xb2\xfc\xfaE\xaf(sW\x80\x82\xaa\xe2-\xfc\xa2["
2022-10-28T16:17:15.019963408+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::proxy_socket] UDP server client send to 13.112.35.82:10025, control: UdpSocketControlData { client_session_id: 1808483490137459351, server_session_id: 0, packet_id: 15, user: None }, payload length 16 bytes, packet length 71 bytes
2022-10-28T16:17:15.020422974+00:00 TRACE [18560:1079384816] [shadowsocks_service::local::net::udp::association] udp relay 192.168.51.77:62450 -> 52.193.120.207:10025 (proxied) with 16 bytes
2022-10-28T16:17:15.020620476+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::aead] UDP packet generated aead salt b"\xc1\xb6\x95\x8c\xf8\x97\xcb\x03e\xb3\x915\x86\xb9\xcaG\x81Aa\x1e\xb5\x15\xad\xebd\xc1\xb6\xac\x15q\xf0-"
2022-10-28T16:17:15.021033+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::proxy_socket] UDP server client send to 52.193.120.207:10025, control: UdpSocketControlData { client_session_id: 1808483490137459351, server_session_id: 0, packet_id: 16, user: None }, payload length 16 bytes, packet length 71 bytes
2022-10-28T16:17:15.021334632+00:00 TRACE [18560:1079384816] [shadowsocks_service::local::net::udp::association] udp relay 192.168.51.77:62450 -> 52.193.120.207:10025 (proxied) with 16 bytes
2022-10-28T16:17:15.021532296+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::aead] UDP packet generated aead salt b"\\\x1c\xd4P\xa7\x988\xb6\x887\x9e\xa5a\x0e\xbf\xc6a\x04\xab\xcb\x98\xa8\x12x\xc2\xa2*\x9f\xee\xcd\x87h"
2022-10-28T16:17:15.021936498+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::proxy_socket] UDP server client send to 52.193.120.207:10025, control: UdpSocketControlData { client_session_id: 1808483490137459351, server_session_id: 0, packet_id: 17, user: None }, payload length 16 bytes, packet length 71 bytes
2022-10-28T16:17:15.022219812+00:00 TRACE [18560:1079384816] [shadowsocks_service::local::net::udp::association] udp relay 192.168.51.77:62450 -> 52.193.120.207:10025 (proxied) with 16 bytes
2022-10-28T16:17:15.022407188+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::aead] UDP packet generated aead salt b"\x83{\xf4\xb6\x12u\x01\x8e\x95\xdb\x1fj(>a\xba\x93\xfd\x0e\x06H\x12y\x7f\xb9\n\x1b\xd2`\x82#t"
2022-10-28T16:17:15.022792190+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::proxy_socket] UDP server client send to 52.193.120.207:10025, control: UdpSocketControlData { client_session_id: 1808483490137459351, server_session_id: 0, packet_id: 18, user: None }, payload length 16 bytes, packet length 71 bytes
2022-10-28T16:17:15.023077130+00:00 TRACE [18560:1079384816] [shadowsocks_service::local::net::udp::association] udp relay 192.168.51.77:62450 -> 52.193.120.207:10025 (proxied) with 16 bytes
2022-10-28T16:17:15.023253946+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::aead] UDP packet generated aead salt b"c\x1f\x10#B\xfc\xd4,\x1eF\xfa$\x17\xb0P\xef\xff\xb5\xb0\xdf\xc2\xd2\xe9\xd2ox\x81\x8eE\xef<0"
2022-10-28T16:17:15.023630364+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::proxy_socket] UDP server client send to 52.193.120.207:10025, control: UdpSocketControlData { client_session_id: 1808483490137459351, server_session_id: 0, packet_id: 19, user: None }, payload length 16 bytes, packet length 71 bytes
2022-10-28T16:17:15.023890722+00:00 TRACE [18560:1079384816] [shadowsocks_service::local::net::udp::association] udp relay 192.168.51.77:62450 -> 52.193.120.207:10025 (proxied) with 16 bytes
2022-10-28T16:17:15.024060932+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::aead] UDP packet generated aead salt b"k\xac\xb2\xc1R\xc5\xf6i,6vy.+\x98\'\x07\x08{\x99\xfaR\xb5\x88\x1a\xba6z}\x01\x0fP"
2022-10-28T16:17:15.024390102+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::proxy_socket] UDP server client send to 52.193.120.207:10025, control: UdpSocketControlData { client_session_id: 1808483490137459351, server_session_id: 0, packet_id: 20, user: None }, payload length 16 bytes, packet length 71 bytes
2022-10-28T16:17:15.162459906+00:00 TRACE [18560:1079384816] [shadowsocks_service::local::utils] tcp tunnel 192.168.51.77:52563 <-> 54.145.252.166:443 (proxied) closed, L2R 423 bytes, R2L 3522 bytes
2022-10-28T16:17:15.206355700+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::aead] UDP packet got AEAD salt b"C\xfe\x1f\xaeC!\xdb?_\xf6\xfaRk\x9cP\xd0\x80\xec\xceh8\xb4k\r\xa7\x08\xb4\t\x19\xab\xf4\""
2022-10-28T16:17:15.207226318+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::proxy_socket] UDP server client receive from 13.112.35.82:10025, control: None, packet length 71 bytes, payload length 16 bytes
2022-10-28T16:17:15.207551026+00:00 TRACE [18560:1079384816] [shadowsocks_service::local::net::udp::association] udp relay 192.168.51.77:62450 <- 13.112.35.82:10025 (proxied) received 16 bytes
2022-10-28T16:17:15.228761420+00:00 WARN [18560:1079384816] [shadowsocks_service::local::net::udp::association] udp failed to send back 16 bytes to client 192.168.51.77:62450, from target 13.112.35.82:10025 (proxied), error: Protocol not available (os error 92)
2022-10-28T16:17:15.229046824+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::aead] UDP packet got AEAD salt b"\x85\xe0\x8a\xeb)\x961\x19\xd6\x9a\xf4z\xaa\xf83!\xa9\xa1\x12\xf2G\xbb\xa4\xc9.\xf9\x19k>\xab\xd1\xaa"
2022-10-28T16:17:15.229455604+00:00 TRACE [18560:1079384816] [shadowsocks::relay::udprelay::proxy_socket] UDP server client receive from 13.112.35.82:10025, control: None, packet length 71 bytes, payload length 16 bytes
2022-10-28T16:17:15.229585662+00:00 TRACE [18560:1079384816] [shadowsocks_service::local::net::udp::association] udp relay 192.168.51.77:62450 <- 13.112.35.82:10025 (proxied) received 16 bytes
2022-10-28T16:17:15.229788230+00:00 WARN [18560:1079384816] [shadowsocks_service::local::net::udp::association] udp failed to send back 16 bytes to client 192.168.51.77:62450, from target 13.112.35.82:10025 (proxied), error: Protocol not available (os error 92)
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 21 (3 by maintainers)
Commits related to this issue
- Linux/BSD SO_REUSEPORT compatible for old version kernels - ref #988 — committed to shadowsocks/shadowsocks-rust by zonyitoo 2 years ago
- local-redir UDP compatible with Linux < 2.6.37 fix #988 IPV6_TRANSPARENT was supported since Linux Kernel 2.6.37. — committed to sijidou/shadowsocks-rust by zonyitoo a year ago
You may try with the latest commit and see if it fixes your issue.
Well, it may be possible to “check” whether the current OS supports IPv6 transparent sockets, if no, then fallback to IPv4 only mode: https://github.com/shadowsocks/shadowsocks-rust/blob/29991bcf7d5cfb8e937bc5e5e2d875145eb88202/crates/shadowsocks-service/src/local/redir/udprelay/mod.rs#L96-L161
But I think the best way should be upgrading the kernel, 2.6.36 is quite an old version.
Everything works fine on my new linux 4.x version router.