{"record":{"id":"809649991c8efdf1","repo":"XX-net/XX-Net","slug":"request-not-supported-command-mode-d-809649","errorCode":null,"errorMessage":"request not supported command mode:%d","messagePattern":"request not supported command mode:(.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"code/default/x_tunnel/local/proxy_handler.py","lineNumber":244,"sourceCode":"        auth_mode_num = ord(self.read_bytes(1))\n        data = self.read_bytes(auth_mode_num)\n\n        sock.send(b\"\\x05\\x00\")  # socks version 5, no auth needed.\n        try:\n            data = self.read_bytes(4)\n        except Exception as e:\n            xlog.debug(\"socks5 auth num:%d, list:%s\", auth_mode_num, utils.str2hex(data))\n            xlog.warn(\"socks5 protocol error:%r\", e)\n            return\n\n        socks_version = ord(data[0:1])\n        if socks_version != 5:\n            xlog.warn(\"request version:%d error\", socks_version)\n            return\n\n        command = ord(data[1:2])\n        if command != 1:  # 1. Tcp connect\n            xlog.warn(\"request not supported command mode:%d\", command)\n            sock.send(b\"\\x05\\x07\\x00\\x01\")  # Command not supported\n            return\n\n        addrtype_pack = data[3:4]\n        addrtype = ord(addrtype_pack)\n        if addrtype == 1:  # IPv4\n            addr_pack = self.read_bytes(4)\n            addr = socket.inet_ntoa(addr_pack)\n        elif addrtype == 3:  # Domain name\n            domain_len_pack = self.read_bytes(1)[0:1]\n            domain_len = ord(domain_len_pack)\n            domain = self.read_bytes(domain_len)\n            addr_pack = domain_len_pack + domain\n            addr = domain\n        elif addrtype == 4:  # IPv6\n            addr_pack = self.read_bytes(16)\n            addr = socket.inet_ntop(socket.AF_INET6, addr_pack)\n        else:","sourceCodeStart":226,"sourceCodeEnd":262,"githubUrl":"https://github.com/XX-net/XX-Net/blob/cfa5bc17b67676e467f37ec50766127e0ab5f0aa/code/default/x_tunnel/local/proxy_handler.py#L226-L262","documentation":"SOCKS5 request handler received a command code other than 1 (TCP CONNECT); e.g. BIND(2) or UDP ASSOCIATE(3). It replies 0x05 0x07 (command not supported) and closes.","triggerScenarios":"SOCKS5 client sending BIND or UDP ASSOCIATE, commonly DNS-over-proxy (port 53 UDP) or WebRTC traffic.","commonSituations":"Browsers/apps trying UDP via socks5 (e.g. 'socks5h' with DNS through proxy done via TCP is fine, but explicit UDP fails).","solutions":["Disable UDP/UDP-relay in the client or force TCP DNS","Use a SOCKS5 server with UDP support for such traffic","Ignore for plain browsing — TCP CONNECT covers it"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if command != 1: client_must_use_tcp_connect()","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Disable UDP relay in SOCKS clients","Force TCP DNS in client config"],"tags":["x-tunnel","socks5","unsupported-command"],"backgroundTag":"socks-command-not-supported","analyzedSha":"cfa5bc17b67676e467f37ec50766127e0ab5f0aa","analyzedAt":"2026-08-27T19:28:28.225Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}