socks: --listen with a bare IPv6 address fails with "too many colons in address"
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 30/100
Línea de trabajo
The faulty logic lives in normalizeListenAddrPort (likely in socks.go). Read that function and the --listen flag parsing to see how addresses are normalized. Done when unbracketed IPv6 like ::1 is bracketed before appending :0, and tailcat socks --listen=::1 true listens on [::1] with an OS-assigned port.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What is the issue?
The socks help says --listen takes [address]:port, where "a bare address means an OS-assigned port". That works for IPv4 (--listen=127.0.0.1) and bracketed IPv6 (--listen=[::1]), but an unbracketed IPv6 address fails before the proxy starts:
$ tailcat socks --listen=::1 true
2026/10/24 15:58:20 listen tcp: address ::1:0: too many colons in address
--listen=:: fails the same way (:::0).
normalizeListenAddrPort appends ":0" to any value that is neither host:port nor a bare port, so an IPv6 address turns into an ambiguous ::1:0 that net.Listen rejects.
Steps to reproduce
- Run
tailcat socks --listen=::1 true. - The command exits with
too many colons in address.
Expected: the proxy listens on [::1] with an OS-assigned port, as it does for --listen=[::1].
Version
main at 52fbad3.
- Lenguaje dominante
- Go
- Estrellas
- 8.8k
- Forks
- 404
- Merge medio
- 3 h 48 min
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de tailscale/tailcat
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
-
Shring the homebrew binariesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
macOS: tailcat's traffic goes through a co-located Tailscale exit node because netns is offPosiblemente ocupada @chphch la tomó hoy. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 18/100
-
Dificultad 3/5 Medio día Aptitud para principiantes 30/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
Todos los issues de tailscale/tailcat
Issues similares
-
area: interop area: sip-core v3
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
fonoster/routr#705 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
deadfin-org/deadfin#35 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
-
enhancement priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
labmonkeys-space/nl6#1037 ·
Los mantenedores suelen responder en 1 día
-
Setup Guide Go tab: say it needs Go 1.26 (the unversioned go get pulls OpenTelemetry Go v1.47.0)Abiertoenhancement follow-up
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día