我尝试寻找答案,但一无所获。我尝试使用 SSH 从另一个 LAN(很远)连接到我的家庭 Ubuntu 服务器。如果有人能告诉我一些有关配置的信息或为我提供正确的资源,我将不胜感激。谢谢。
答案1
通常的方式是注册一个DDNS 服务,该服务的应用程序在您的家庭服务器上运行。
DDNS 服务和应用程序协同工作来更新您的公共 IP 地址(这意味着您的路由器的我们将向您展示如何将 IP 地址 (IP address) 发送到互联网名称服务器。
因此您使用,并且名称服务器为您的路由器和 LAN 提供正确的 IP 地址。ssh [email protected]
有几种免费的 DDNS 服务可用。您最喜欢的搜索引擎会很乐意向您推荐几种。
许多消费级路由器都内置有 DDNS 客户端,因此您无需在服务器上安装任何东西。请检查您的路由器设置。
您仍必须设置转发端口在路由器上连接到 LAN 上的服务器。
答案2
有一项服务叫做https://ngrok.com/它允许您为各种协议设置临时隧道。基本上,您将打开一个 SSH 隧道,连接到要连接的主机上的本地 SSH 服务器;然后,这会将隧道暴露给公共网络。您显然必须在本地连接时执行此操作,但此后,远程访问应该是可能的。
他们的(简短)说明如下:https://ngrok.com/docs/using-ngrok-with#ssh
显然,您必须小心,不要暴露未得到妥善保护的服务,否则将会有访客。
答案3
我不知道这是否会对您有所帮助或是否可以解决您的具体问题,但也许可以帮助其他人,因为我正在寻找同样的问题并在某处找到了这种方法
所以我试过了Teamviewer,以下是详细信息
- 服务器是Ubuntu Server 22.04,我安装了Teamviewer 主机,你可以找到它这里然后向下滚动到 Teamviewer Host 部分,我之所以使用这个是因为页面上显示“TeamViewer Host 用于全天候访问远程计算机”,如果你问的话,我不确定普通版本,我还没有测试过,无论如何你可以按照这篇文章来安装和设置https://community.teamviewer.com/English/kb/articles/4352-install-teamviewer-on-linux-without-graphical-user-interface
- 客户端是Windows 11上的Teamviewer,你可以下载它这里,然后使用您在服务器上使用的相同帐户(Teamviewer Host)登录,然后您应该会看到您的服务器列在“计算机和联系人”下,有关更多详细信息,请参见此处截屏
以下是我可以连接到服务器时的结果:截屏
请注意,Teamviewer 是免费的,但仅限非商业和个人使用至少现在,你可以在他们的网站上找到详细信息、限制或其他信息https://www.teamviewer.com/en/