socks: --listen with a bare IPv6 address fails with "too many colons in address"
評価
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- Go
- スター
- 8.8k
- フォーク
- 404
- 平均マージ
- 3時間 48分
- マージ済み PR(30日)
- 1
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
tailscale/tailcat のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 69/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
macOS: tailcat's traffic goes through a co-located Tailscale exit node because netns is off対応中かも @chphch が今日担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 18/100
-
難易度 3/5 半日 初心者へのやさしさ 30/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
tailscale/tailcat の issue をすべて見る
似ている issue
-
area: interop area: sip-core v3
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
fonoster/routr#705 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
deadfin-org/deadfin#35 ·
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
-
enhancement priority: low
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
labmonkeys-space/nl6#1037 ·
メンテナーはふだん 1 日以内に返信
-
Setup Guide Go tab: say it needs Go 1.26 (the unversioned go get pulls OpenTelemetry Go v1.47.0)オープンenhancement follow-up
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信