SSH 连接在外部超时,但内部正常

SSH 连接在外部超时,但内部正常

最近我尝试将我的 Ubuntu 14.04 台式计算机(我将其称为“计算机 A”)设置为 ssh 服务器,以便我可以从我的笔记本电脑(我将其称为“计算机 B”)远程访问它。我安装了 openssh-server,到目前为止还没有修改 /etc/ssh/sshd_config 文件。

问题是,我相信我已经正确设置了所有东西,尽管我可以在同一网络中使用路由器上计算机 A 的永久内部 IP 地址通过 ssh 从计算机 B 访问计算机 A(也可以通过计算机 A 内的本地主机访问):

ssh [email protected]

我无法使用外部 IP 地址访问计算机 A,如下所示:

ssh -vvv username@the-external-ip-adress

过了很长时间我得到了:

OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to the-external-ip-adress [the-external-ip-adress] port 22.
debug1: connect to address the-external-ip-adress port 22: Connection timed out
ssh: connect to host the-external-ip-adress port 22: Connection timed out

我尝试从网络内部和外部通过外部地址进行连接。我在 canyouseeme.org 上找到了这个地址,并通过谷歌搜索找到了它。我还使用 canyouseeme.org 和我的 IP 以及端口 22(这是我的 sshd_config 中默认指定的端口),也发现由于连接超时而无法访问服务。

我查看了几乎所有论坛和帖子,了解类似的问题,有时看似完全相同的问题,但找不到解决方案。根据我所读到的所有内容,我提供了屏幕截图,其中包含与我的路由器配置(端口转发等)相关的或可能相关的信息。

我也:

  • 已在防火墙上启用端口 22(“sudo ufw allow 22”)
  • 尝试禁用防火墙
  • 尝试重新启用防火墙
  • 尝试禁用路由器的防火墙
  • 尝试重新启用路由器的防火墙
  • 已尝试将端口添加到 iptables(“sudo iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT”)
  • 发现/var/log/auth.log只有本地记录
  • 发现 /var/log/daemon.log 为空
  • 尝试过 ping,数据包丢失率为 100%
  • 已经重启了计算机A
  • 已重启路由器
  • 已检查 /etc/ssh/sshd_config 文件中的访问限制,但没有发现任何限制。

屏幕截图

有什么建议吗?请记住,我可以完美地通过 ssh 进入计算机 A 并从网络内部使用它,使用计算机 A 的 IP 本地地址以及计算机 A 内部的 localhost。据我所知,这表明计算机 A 的 ssh 服务器配置没有问题。但我可能错了。

更新:我最近还注意到 IP(外部 IP)在不断变化(经过很长一段时间),当然我总是尝试连接到当前 IP。非静态 IP 是否与此有关?

答案1

问题在于互联网服务提供商不允许我正确进行端口转发。我更换了提供商,问题就解决了。

答案2

您的无线 ISP 也可能阻止了 ssh 流量和/或到路由器的流量。-vvvv 选项可用于客户端和服务器上请求的调试数据。-d 选项对于排除守护进程故障很有用。如果您查看 sshd 的手册页,它就在那里。因此,停止正常的 sshd(服务停止)并手动运行它 - sudo /usr/sbin/sshd -d,然后在尝试从另一个框进行连接时观察调试输出。可能需要将输出发送到日志文件 - 该输出是 stderr,而不仅仅是 stdout,因此请执行任何所需的重定向。

答案3

您应该检查您的网络配置文件中是否定义了网关。

相关内容