{"record":{"id":"5f962c39986632bf","repo":"XX-net/XX-Net","slug":"socks4-cmd-d-not-supported-5f962c","errorCode":null,"errorMessage":"Socks4 cmd:%d not supported","messagePattern":"Socks4 cmd:(.+?) not supported","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"code/default/x_tunnel/local/proxy_handler.py","lineNumber":187,"sourceCode":"                        raise e\n\n                if len(data):\n                    self.read_buffer += data\n                else:\n                    raise socket.error(\"recv fail\")\n        finally:\n            sock.setblocking(1)\n\n        data = self.read_buffer[self.buffer_start:self.buffer_start + size]\n        self.buffer_start += size\n        return data\n\n    def socks4_handler(self):\n        # Socks4 or Socks4a\n        sock = self.connection\n        cmd = ord(self.read_bytes(1))\n        if cmd != 1:\n            xlog.warn(\"Socks4 cmd:%d not supported\", cmd)\n            return\n\n        data = self.read_bytes(6)\n        port = struct.unpack(\">H\", data[0:2])[0]\n        addr_pack = data[2:6]\n        if addr_pack[0:3] == b'\\x00\\x00\\x00' and addr_pack[3] != b'\\x00':\n            domain_mode = True\n        else:\n            ip = socket.inet_ntoa(addr_pack)\n            domain_mode = False\n\n        user_id = self.read_null_end_line()\n        if len(user_id):\n            xlog.debug(\"Socks4 user_id:%s\", user_id)\n\n        if domain_mode:\n            addr = self.read_null_end_line()\n        else:","sourceCodeStart":169,"sourceCodeEnd":205,"githubUrl":"https://github.com/XX-net/XX-Net/blob/cfa5bc17b67676e467f37ec50766127e0ab5f0aa/code/default/x_tunnel/local/proxy_handler.py#L169-L205","documentation":"SOCKS4 handler only supports cmd==1 (CONNECT). Any other command code (e.g. 2=BIND, 3=UDP ASSOCIATE) triggers this warning and the connection is closed.","triggerScenarios":"A SOCKS4 client issuing BIND or UDP ASSOCIATE to the local proxy.","commonSituations":"Torrent clients, DNS-over-SOCKS, or games trying UDP via SOCKS4. Rare; most clients use CONNECT.","solutions":["Configure the client to use TCP CONNECT only","Use SOCKS5 with a client that falls back to TCP","UDP proxying is not supported by this handler"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if cmd != 1: reject_client_side()  # only CONNECT supported","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use TCP CONNECT only through this proxy"],"tags":["x-tunnel","socks4","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"}