绑定到0.0.0.0只拿起本地地址

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

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

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

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

这种情况可能是你的eth0接口正在使用IPv6协议。 在/etc/ssh/sshd_config使用ListenAddress 0.0.0.0configurationssh服务器时,closures了IPv6协议。 那么netstat只有一个以tcp开头的ssh条目。 添加一行ListenAddress ::也听tcp6netstat应该向你报告两个在tcp6 :::9223和一个在tcp 0.0.0.0:9223上的ssh服务器