我最近设置了一台本地机器和一台笔记本电脑,使用noip.com,这样我就可以在外出旅行时通过笔记本电脑访问本地(主机)计算机 - 请参阅我之前的问题这里
一切都运行良好 - 直到我想对机器(和路由器)进行冷重启 - 然后离开几个月。在按照我之前的问题中提供的所有步骤操作后,我发现我无法从笔记本电脑重新登录到服务器机器。
以下是一些显著的事实:
- 主机(要登录的)已运行 SSH 服务
- 主机配置了静态 IP 地址(与我之前使用的 IP 相同)
- 主机上运行无 IP 更新客户端
- 当我在同一个局域网中时,我可以使用本地 IP 地址 192.168.xx 从我的笔记本电脑通过 SSH 进入主机
- 注册的 NO-IP 地址尚未过期(我几天前才注册的 - 我通过登录我的帐户仔细检查了它 - 它有任何正确的面向公众的 IP 地址)
- 路由器上已设置端口转发,SSH 在默认端口 22 上运行。
[[更新]]
$sudo ufw status
To Action From
22 Allow Anywhere
22(v6) Allow Anywhere (v6)
Fail2ban 已安装在主机上,并且与我之前的设置配合良好。我目前已停止该服务,同时尝试弄清楚发生了什么。
主机上已设置 SSH,配置如下:
- 端口 22
- PermitRootLogin 否
- 公钥认证 是
- 密码验证否
当我尝试使用从 no-ip 注册的主机名远程 SSH 时,出现以下错误(直到昨天为止,这都运行正常):
ssh -v [email protected]
OpenSSH_6.9p1 Ubuntu-2ubuntu0.1, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to myhostname.ddns.net [80.189.109.195] port 22.
debug1: connect to address xxx.yyy.zzz.123 port 22: Connection refused
ssh: connect to host myhostname.ddns.net port 22: Connection refused
有人能看出哪里出了问题吗?几个小时后我要乘飞机,我迫切需要解决这个问题,这样我就可以通过笔记本电脑远程访问我的本地机器。
答案1
需要检查以下几件事(按照最可能的 IME 顺序):
端口转发。除非您的机器可以直接从互联网访问
80.xxx.yyy.zzz
,否则这可能是路由器的地址。您需要告诉路由器将端口 22 上的流量转发到您的计算机。这是路由器特定的。最好的单一资源是港口转运网。我没有看到这里或上一个问题提到这一点,所以这似乎是很有可能的。
防火墙可以允许来自某些位置的流量,而不允许来自其他位置的流量。我不知道您在这方面做了什么设置,但如果您使用 UFW,
sudo ufw status
应该可以让您看到影响该端口的任何拒绝/允许模式。/etc/ssh/sshd_config
可能设置为仅允许在特定网络上进行连接。这不是默认行为,因此,这可能是您无意中做的事情。如果您已经安装了
fail2ban
,是否有可能已经从您的外部 IP 触发了它的一个自动禁令?
在你使用接近原始设置将其推送到互联网之前,我会强烈建议你读一下我写的一篇文章确保 SSH 安全。人们经常因为不充分的安全措施而遭受黑客攻击,而 SSH 服务器则是直接实现完全控制的途径。