Ubuntu
sshd 綁定到錯誤的 IPv6 地址
我已將 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 個字元。如果要顯示完整地址,則需要提供-W
or--wide
標誌netstat
如果你使用這個命令,它應該告訴你
sshd
正在監聽你請求的地址:sudo netstat -nplW | grep sshd
但是,您應該修復的是您分配的地址,因為它違反了 RFC 4193,這可能會在某些時候給您帶來問題。RFC 4193 旨在防止地址衝突,但是當您不遵循標準時,它不會防止衝突。根據規範分配的地址可能如下所示:
fde8:ca75:a94b::ba88:e3ff:fefb:7bf0