XX-net/XX-Net · error

Socks4 connect fail, no conn_id

Error message

Socks4 connect fail, no conn_id

What it means

proxy_session.create_conn failed to establish a tunnel connection (returned no conn_id) for the SOCKS4 CONNECT request, so a SOCKS4 'rejected' reply (0x5b) is sent.

Source

Thrown at code/default/x_tunnel/local/proxy_handler.py:210

        addr_pack = data[2:6]
        if addr_pack[0:3] == b'\x00\x00\x00' and addr_pack[3] != b'\x00':
            domain_mode = True
        else:
            ip = socket.inet_ntoa(addr_pack)
            domain_mode = False

        user_id = self.read_null_end_line()
        if len(user_id):
            xlog.debug("Socks4 user_id:%s", user_id)

        if domain_mode:
            addr = self.read_null_end_line()
        else:
            addr = ip

        conn_id = proxy_session.create_conn(sock, addr, port)
        if not conn_id:
            xlog.warn("Socks4 connect fail, no conn_id")
            reply = b"\x00\x5b\x00" + addr_pack + struct.pack(">H", port)
            sock.send(reply)
            return

        xlog.info("Socks4:%r to %s:%d, conn:%d", self.client_address, addr, port, conn_id)
        reply = b"\x00\x5a" + addr_pack + struct.pack(">H", port)
        sock.send(reply)

        if len(self.read_buffer) - self.buffer_start:
            g.session.conn_list[conn_id].transfer_received_data(self.read_buffer[self.buffer_start:])

        g.session.conn_list[conn_id].start(block=True)

    def socks5_handler(self):
        sock = self.connection
        auth_mode_num = ord(self.read_bytes(1))
        data = self.read_bytes(auth_mode_num)

View on GitHub (pinned to cfa5bc17b6)

Solutions

  1. Verify x-tunnel login (account/password configured) and session established
  2. Check balance/quota via request_balance
  3. Ensure fronts are alive (front_dispatcher warnings)
  4. Then retry the client request
Defensive patterns

Strategy: fallback

Validate before calling

if not g.session or not g.session.conn_list:
    wait_for_session()  # session must exist before create_conn

Prevention

When it happens

Trigger: SOCKS4 CONNECT when the x-tunnel session is down, not logged in, out of quota, or the target connection creation timed out server-side.

Common situations: x-tunnel session not started / login missing, quota exhausted, or front connectivity failure (see error 223).

Related errors


AI-assisted analysis of XX-net/XX-Net@cfa5bc17b6 (2026-08-27). Data as JSON: /api/errors/22f8b87876b93e34. Report an issue: GitHub.