绑定到 0.0.0.0 仅拾取本地地址

绑定到 0.0.0.0 仅拾取本地地址

我不是服务器专家,我的网络技能有点生疏,所以这可能是一个简单的问题。在一台全新的 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 地址的连接?

答案1

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

相关内容