绑定到 0.0.0.0 只获取本地地址

Mik*_*las 1 networking ssh arch-linux

我不是服务器人,我的网络技能有点生疏,所以这可能是一个简单的问题。在一台全新的 archlinux 机器上,我设置了 sshd,并告诉它绑定到 0.0.0.0:9223。运行后,我使用 netstat 确认它正在侦听 *:9223。

运行“ssh -p 9223 localhost”连接正常,但远程连接失败。然后我在服务器上尝试了“ssh -p 9223 [REMOTE_IP]”,但失败了。

在试图找到问题的根源并失败后,我将 sshd 设置为绑定到 [REMOTE_IP],突然一切正常。

所以我的问题是,什么会导致绑定到 0.0.0.0 的套接字忽略来自 eth0 接口的 IP 地址的连接?

Cas*_*der 6

情况可能是您的 eth0 接口使用 IPv6 协议。当您配置 ssh 服务器时ListenAddress 0.0.0.0/etc/ssh/sshd_config您关闭了 IPv6 协议。netstat然后只有一个以tcp.开头的 ssh 条目。添加一行ListenAddress ::以同时监听tcp6. netstat应该向您报告 ssh 服务器的两个条目,一个是一个tcp6 :::9223,一个是tcp 0.0.0.0:9223