XX-net/XX-Net · warning
request address type unknown:%d
Error message
request address type unknown:%d
What it means
SOCKS5 request carried an address type other than 1 (IPv4), 3 (domain) or 4 (IPv6); the handler rejects it with reply code 0x07 and closes.
Source
Thrown at code/default/x_tunnel/local/proxy_handler.py:263
sock.send(b"\x05\x07\x00\x01") # Command not supported
return
addrtype_pack = data[3:4]
addrtype = ord(addrtype_pack)
if addrtype == 1: # IPv4
addr_pack = self.read_bytes(4)
addr = socket.inet_ntoa(addr_pack)
elif addrtype == 3: # Domain name
domain_len_pack = self.read_bytes(1)[0:1]
domain_len = ord(domain_len_pack)
domain = self.read_bytes(domain_len)
addr_pack = domain_len_pack + domain
addr = domain
elif addrtype == 4: # IPv6
addr_pack = self.read_bytes(16)
addr = socket.inet_ntop(socket.AF_INET6, addr_pack)
else:
xlog.warn("request address type unknown:%d", addrtype)
sock.send(b"\x05\x07\x00\x01") # Command not supported
return
port = struct.unpack('>H', self.rfile.read(2))[0]
conn_id = proxy_session.create_conn(sock, addr, port)
if not conn_id:
xlog.warn("socks5 create conn to %s:%d fail", addr, port)
reply = b"\x05\x01\x00" + addrtype_pack + addr_pack + struct.pack(">H", port)
sock.send(reply)
return
xlog.info("socks5 %r connect to %s:%d conn:%d", self.client_address, addr, port, conn_id)
reply = b"\x05\x00\x00" + addrtype_pack + addr_pack + struct.pack(">H", port)
try:
sock.send(reply)
except Exception as e:
if conn_id in g.session.conn_list:View on GitHub (pinned to cfa5bc17b6)
Solutions
- Use a standard-compliant SOCKS5 client
- Ensure the client reconnects fresh (no pipelined leftover bytes)
- Ignore stray probes
Defensive patterns
Strategy: validation
Validate before calling
if atyp not in (1,3,4): close_connection()
Prevention
- Use standard SOCKS5 client libraries
When it happens
Trigger: Malformed or exotic SOCKS5 client sending unknown ATYP byte; corrupted greeting stream; or a client speaking a non-SOCKS protocol on the port.
Common situations: Broken/misbehaving SOCKS client library, or byte-stream desync after a previous failed negotiation on the same connection.
Related errors
- request address type unknown:%d
- do_unwrap_socks connect to x-tunnel for %s:%d proxy fail.
- request not supported command mode:%d
- socks5 create conn to %s:%d fail
- socks5 %r connect to %s:%d conn_id:%d closed:%r
AI-assisted analysis of XX-net/XX-Net@cfa5bc17b6 (2026-08-27).
Data as JSON: /api/errors/9d504d863398438f.
Report an issue: GitHub.