操作系统:Ubuntu Budgie Remix 16.04
uname -a: Linux midgard 4.8.0-54-generic #57~16.04.1-Ubuntu SMP 2017 年 5 月 24 日星期三 16:22:28 UTC x86_64 x86_64 x86_64 GNU/Linux
这似乎很简单,但我试了很多方法,但都不起作用。以下是详细信息。
情况:我在住宅连接的 3791 端口上运行 sshd(为了避免简单的网络扫描,尝试找到明显的 ssh 守护进程)
sudo /usr/sbin/sshd -D -p 3791
问题:无连接
albion@midgard:~$ ssh {myIPv4OrIPv6} -p 3791 -v
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to {myIPv4OrIPv6} port 3791.
debug1: connect to address {myIPv4OrIPv6} port 3791: Connection timed out
ssh: connect to host {myIPv4OrIPv6} port 3791: Connection timed out
我已经验证过的事情:
- 我已经通过 nmap 映射了 localhost,并且能够看到开放的端口
- 我已经通过 ssh 进入 localhost 并能够成功登录
- 检查 iptables ('sudo iptables -L') 是否有任何规则,但没有任何结果。
- 为了以防万一,还通过“sudo systemctl stop ufw”禁用了 ufw。
- 我的路由器配置为允许在端口 3791 上进行端口转发到同一端口上的我的 LAN 地址 (192.168.0.2)。
- 我已禁用路由器级防火墙选项。
- 我打电话给我的 ISP,只是想看看他们是否有任何想法,当然,他们没有。
有人能想到什么值得检查的吗?有一件奇怪的事情是,当我 ping IPv4 时,我可以 ping 并得到响应,但当我 ping IPv6 时,我没有得到任何答案。这可能无关紧要,但我想提一下。
答案1
突出显示@steeldriver 的答案,因为我认为这是正确的答案。
显然,问题是我的路由器不支持 NAT 环回: https://en.wikipedia.org/wiki/Network_address_translation#NAT_loopback
情况似乎是这样的,因为如果网络中的其他计算机使用内部 LAN IP(例如 192.168.0.2),我就可以连接到我的计算机。也外部,如果他们使用我的 IPv6 IP。
所以解决方案是:
1) 从同一网络连接时,使用 LAN IP(如果是同一设备,则使用本地主机)2) 从外部连接时,使用 IPv6 地址(如果您的 ISP 为您提供了一个)或 IPv4 地址(前提是您设置了端口转发规则)。
谢谢@steeldriver!