Ubuntu

sshd 綁定到錯誤的 IPv6 地址

  • April 28, 2017

我已將 sshd 設置為綁定到特定的 IPv6 地址,並在我的sshd_config

ListenAddress fd00::ba88:e3ff:fefb:7bf0

經過測試,我注意到我根本無法再通過 IPv6 進行連接。檢查netstat表明,由於某種原因,地址的最後 16 位被忽略,並且綁定到一個不存在的地址。

$ sudo netstat -npl | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      4944/sshd
tcp6       0      0 fd00::ba88:e3ff:fefb:22 :::*                    LISTEN      4944/sshd

檢查ifconfig產生這些 IPv6 地址

$ ifconfig | grep inet6
     inet6 addr: fd00::ba88:e3ff:fefb:7bf0/64 Scope:Global
     inet6 addr: fe80::ba88:e3ff:fefb:7bf0/64 Scope:Link
     inet6 addr: ::1/128 Scope:Host

我在配置守護程序時哪裡出錯了?

預設情況下netstat會截斷它顯示的 IP 地址,以便地址和埠號適合 23 個字元。如果要顯示完整地址,則需要提供-Wor--wide標誌netstat

如果你使用這個命令,它應該告訴你sshd正在監聽你請求的地址:

sudo netstat -nplW | grep sshd

但是,您應該修復的是您分配的地址,因為它違反了 RFC 4193,這可能會在某些時候給您帶來問題。RFC 4193 旨在防止地址衝突,但是當您不遵循標準時,它不會防止衝突。根據規範分配的地址可能如下所示:fde8:ca75:a94b::ba88:e3ff:fefb:7bf0

引用自:https://serverfault.com/questions/846885