我不是服务器专家,我的网络技能有点生疏,所以这可能是一个简单的问题。在一台全新的 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.0
in配置 ssh 服务器时/etc/ssh/sshd_config
,您关闭了 IPv6 协议。netstat
然后只有一个以 开头的 ssh 条目tcp
。添加一行ListenAddress ::
以监听tcp6
。netstat
应该会报告您两个 ssh 服务器条目,一个在tcp6 :::9223
,一个在tcp 0.0.0.0:9223