ginuerzh/gost · error
Service unavailable
Error message
Service unavailable
What it means
Returned by the SOCKS5 bind connector's ConnectContext (socks.go) when the SOCKS5 server replies to the BIND request with a Rep code other than Succeeded. The error is client-side reporting of a server-side rejection: the proxy accepted the connection but refused or failed to set up the bind listener.
Source
Thrown at socks.go:276
if err := req.Write(conn); err != nil {
return nil, err
}
if Debug {
log.Log("[socks5]", req)
}
reply, err := gosocks5.ReadReply(conn)
if err != nil {
return nil, err
}
if Debug {
log.Log("[socks5]", reply)
}
if reply.Rep != gosocks5.Succeeded {
return nil, errors.New("Service unavailable")
}
return conn, nil
}
type socks5BindConnector struct {
User *url.Userinfo
}
// SOCKS5BindConnector creates a connector for SOCKS5 bind.
// It accepts an optional auth info for SOCKS5 Username/Password Authentication.
func SOCKS5BindConnector(user *url.Userinfo) Connector {
return &socks5BindConnector{User: user}
}
func (c *socks5BindConnector) Connect(conn net.Conn, address string, options ...ConnectOption) (net.Conn, error) {
return c.ConnectContext(context.Background(), conn, "tcp", address, options...)
}View on GitHub (pinned to a33fdbf4c9)
Solutions
- Inspect the SOCKS5 server logs to find why the BIND request was rejected
- Verify the target address/port passed in the bind request is reachable and permitted by the proxy's ACL
- Confirm the SOCKS5 server supports the BIND command at all
- Check that authentication succeeded — some servers report auth failures as a generic non-success Rep
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at socks.go:276 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- HTTP status errors: handling 4xx and 5xx responses — how to handle 4xx and 5xx responses properly.
AI-assisted analysis of ginuerzh/gost@a33fdbf4c9 (2026-09-02).
Data as JSON: /api/errors/2548d83eea0cd858.
Report an issue: GitHub.