如何使用域名通过 ssh 连接到你的 Linux 服务器

如何使用域名通过 ssh 连接到你的 Linux 服务器

我有一台自己的 Linux 服务器(ngnix、gunicorn、python flask),通过 dyndns 将其连接到我的 frtizbox 以及我的域和 dyndns 提供商(selfhost.de)。现在我想使用 ssh 连接到这台 Linux 服务器,如下所示:

ssh [email protected] 

这意味着与 IP 地址无关,因为在电源故障或玻璃料盒重启的情况下,IP 地址会发生变化。

我看到有这样的服务 dd客户端。我设置了此服务,但我不知道现在如何使用上述命令进行连接:我仍然收到此错误:

ssh: connect to host domain_name.de port 22: No route to host

操作系统:

  • Ubuntu 服务器:20.04 LTS
  • 我想要访问服务器的 Ubuntu 笔记本电脑有:18.04 LTS

细节: 如果我的两台机器都在本地网络中,我已经可以通过以下方式访问:

ssh server_name@192.....

接下来我测试了两台机器是否具有相同的本地网络,是否通过公共 IP 进行连接:

ssh [email protected]......  --> Error no route to host 

然后我在我的 fritzbox 上允许端口 22,它就成功了!

该问题是否与两台机器具有相同的公网 IP 有关?

接下来我测试将我的笔记本电脑连接到其他网络(手机热点)

ssh [email protected]......  --> Error no route to host 

最后我想用域名实现上述功能....

然后我在我的 fritzbox 上允许端口 22,它就成功了!

我现在也停止了我的 ddclient: sudo service ddclient stop

我仍然可以使用

ssh [email protected] 

我到底需要 ddclient 吗?

答案1

该问题是否与两台机器具有相同的公网 IP 有关?

不,这是因为您的公共 IP 指向您的 Fritzbox 而不是机器。因此,您需要告诉 Fritzbox 如何处理请求。这就是您使用“端口转发”的原因。然后,Fritzbox 会将该端口的流量转发到本地机器。您还可以告诉 Fritzbox 转发全部流量到一台机器,但如果您不是 100% 确定自己在做什么,请不要这样做。

我仍然可以使用

 ssh [email protected] 

我到底需要 ddclient 吗?

它有效是因为你的 IP 没有改变然而。一旦更改,domainname.de仍将指向旧的 IP 地址,这将不起作用。您需要告诉服务提供商您的新 IP 地址,这就是它ddclient自动为您执行的操作。


非问题注释:

请注意,路由器中的端口转发会带来很大的风险。您的机器将要受到攻击(这是正常的),你应该知道如何应对:

  • 保持软件更新(始终!)并跟踪相关的安全公告
  • 强密码或更好的密码:仅允许基于密钥的身份验证
  • 拒绝 root 登录
  • 使用标准端口以外的端口
  • 使用fail2ban
  • 在机器上使用软件防火墙
  • 使用端口敲击

你不一定需要全部立刻就做到这一点……

相关内容