ssh 在学校网络内有效,但在外部无效

ssh 在学校网络内有效,但在外部无效

当我连接到学校网络时,我可以从笔记本电脑顺利地 ssh 到我家里的台式电脑。但是当我在家时,尝试从同一台笔记本电脑 ssh 到同一台台式电脑总是会出现超时错误:

ssh: connect to host <my IP address> port 22: Connection timed out

我在路由器的端口 22 上启用了端口转发,安装了 openssh,并且一切都设置好了,以便我在学校时能够使用 ssh。

在我家里的桌面上,命令

sudo netstat grep | grep sshd 

返回

tcp   0   0   0.0.0:22     0.0.0.0:*    LISTEN   sshd

我不明白为什么这在我的学校网络之外不起作用。目前,当我从连接到学校网络的笔记本电脑通过 ssh 进入家用台式计算机时,我使用的是台式机的 IP 地址。

更多信息:

当我跑步的时候

ssh -vv <myusername>@<my-ip-address>

我明白了

OpenSSH_6.6.1, OpenSSL 1.01f 6 Jan 2014
debug1: Reading configuration data etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying for options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to <IP address> [<IP address>] port 22.
debug1: connect to address <IP address> port 22: Connection timed out

答案1

根据您对众多问题的回答,实际配置是:

桌面在你的学校。当你的笔记本电脑连接到学校网络时,你就可以通过 ssh 进入桌面。

当您的笔记本电脑位于学校网络之外时,您无法将其连接到学校工作站桌面。

您实验室中的工作站不太可能具有静态注册的可访问 Internet 的 IP 地址。甚至不可能具有由 DHCP 颁发的 IP 地址。此外,在数据包进入 Internet 之前,连接可能要经过 NAT 转换,这意味着学校内部的机器 IP 地址将不同于学校外部可见的 IP 地址。另外,防火墙可能会阻止各种传入端口请求(例如 22)。

学校 IT 人员需要解决所有问题。他们可以在边界路由器中创建静态 NAT 条目,这样您就知道从 Internet 上 ssh 进入哪个 IP。他们可能愿意也可能不愿意这样做。

同时,作为解决此类问题的便捷工具,请在您的笔记本电脑上安装 nmap。

sudo apt-get install nmap

然后,在家里或学校外面的某个地方,

ping The.IP.you.think.connects.to.your.machine.from.the.Internet

nmap The.IP.you.think.connects.to.your.machine.from.the.Internet

如果 ping 没有返回任何结果,或者 nmap 没有显示端口 22 已打开,则您将永远无法通过 ssh 进入该端口。由于上述原因,nmap 可能实际上并未探测您的计算机,因此如果 ssh 无法进行身份验证,则原因可能就在于此。

不用说,您需要知道从 Internet 上可以看到的 IP 地址,该地址将连接到您在学校的台式工作站。而且防火墙之类的东西都无法阻止 ssh 连接对话框。如果这是问题的根源,请将其作为新问题提出,因为它与 ssh 无法正常工作没有任何(直接)关系。

要查找您的 Internet IP 地址,请在学校的桌面工作站上访问以下 URL:

http://whatismyipaddress.com/

答案2

您尝试通过 ssh 进入学校网络的尝试可能会被阻止,因为无法从外部访问 IP 地址。

询问学校的 IT 人员是否可以:首先 ssh 进入学校防火墙/DHCP(使用静态 IP),然后从他们的 ssh 进入您想要的任何 IP 地址。如果学校政策允许,他们将提供正确的公共 IP 和私人凭证。

答案3

您尝试从家庭 LAN 进行 ssh 连接的机器的 IP 地址与路由器的面向 Internet 的 IP 地址不同。

如果您从学校对您的家用桌面/ ssh 服务器进行跟踪路由,您会看到数据包到达您的路由器,然后转发到位于您的本地 LAN 上和路由器另一端的 ssh 主机。

从您的家庭网络,您可以直接连接到与台式机/ ssh 服务器相同的 LAN。也就是说,您的笔记本电脑 IP 和台式机/ ssh 服务器 IP 将位于同一子网中。

如果您从家里通过 ssh 进入桌面/ssh 服务器的 192.168.0.x(或其他)本地地址,那么应该可以工作。

要找出您的桌面/ ssh 服务器的本地地址:

ifconfig -a

相关内容