我已经设置sshd绑定到我的sshd_config这一行的特定的IPv6地址
ListenAddress fd00::ba88:e3ff:fefb:7bf0
经过testing,我注意到我根本不能通过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
我在哪里configuration守护进程出了错?
默认情况下, netstat会截断它显示的IP地址,使得地址和端口号将适合23个字符。 如果要显示完整地址,则需要为netstat提供-W或--wide标志
如果你使用这个命令,它会告诉你sshd正在监听你要求的地址:
sudo netstat -nplW | grep sshd
你应该修正的是你分配的地址,因为它违反了RFC 4193,这可能会在某些时候导致你的问题。 RFC 4193旨在防止地址冲突,但是当您不遵守标准时,它不会阻止冲突。 根据规范分配的地址可能如下所示: fde8:ca75:a94b::ba88:e3ff:fefb:7bf0