如何通过SSH进入路由器后面的家庭网络中运行的服务器?


22

好的,我的家庭网络中有一台PC,并且在装有openssh服务器的VM上运行Ubuntu。

  1. 如何使用互联网从家庭网络之外的另一台计算机远程访问它?
  2. 我使用什么IP地址连接到它?
  3. 我需要做什么端口转发?

VM使用哪种网络?对于典型的家庭用途,建议使用桥接,然后出于网络目的,虚拟机将等效于物理机,因此您只需照常在路由器上进行端口转发。
fkraiem '16

在我的VM的网络设置下,它说网络适配器已连接到NAT。这是屏幕截图:链接是否需要更改此设置?
雨果·罗伯

是的,将其放在桥接中会使事情变得更简单。(基本上,使用NAT,您需要在路由器和VBox中两次进行端口转发。)
fkraiem 2016年

实际上,当要连接的计算机对本地服务器可见时,您不需要任何端口转发-只需给我们-Lssh命令中的标志-但请确保连接保持活动状态-运行htop或类似的命令keep数据传输。
宽敞的

Answers:


22

您需要执行多项操作:

1)像他的评论中提到的fkraiem一样,确保您的VM可在本地网络上访问。在VM设置中使用“网桥”网络连接即可完成此操作。然后,使用其他一台计算机(甚至是主机)检查是否可以登录SSH服务器。恭喜,如果可以的话,让我们继续下一步。

2)接下来,您需要了解如何在路由器上进行端口转发。由于您没有提及所拥有的路由器,因此您必须自己弄清楚。端口22是SSH使用的端口。当然,您可以在路由器的较高端口上进行侦听,以避免一堆试图入侵服务器的脚本小子填满日志,然后将端口转发到服务器上的22。例如,假设您服务器的本地IP为192.168.0.10。您的WAN(互联网)IP为99.99.99.99。

99.99.99.99:60022->路由器-> 192.168.0.10:22

您要做的就是告诉路由器监听60022端口,并将其转发到IP 192.168.0.10和22端口。

要弄清楚您的WAN IP是什么,只需在Google上输入“我的IP地址是什么”即可。还有其他方法,但这是最简单的。

现在,在设置路由器之后,请尝试使用更高的端口将外部计算机连接到WAN IP。您可以将手机与笔记本电脑系在一起以完成此操作。

如果可以的话,请再次恭喜。

3)现在,您必须确保IP地址在本地网络上保持静态,并且需要获取WAN IP地址的动态DNS条目。这样,您将使用域名而不是WAN IP。谷歌“动态DNS”找到一些免费服务。

希望能有所帮助。


这是“ 99.99.99.99:60022->路由器-> 192.168.0.10:22”的实际命令吗?“路由器”是什么意思?我的意思是,这里发生了什么?
m4l490n

@ m4l490n不,那不是命令。这只是显示连接“流程”的一种方式。99.99.99.99只是我选择的IP地址。我也可以显示XXX.XXX.XXX.XXX,但我发现数字更容易理解。60022是路由器侦听的“外部”端口。然后,它将端口转发到内部地址192.168.0.10并将其向下移动到端口22。我没有详细说明的原因是因为OP没有说明他使用的路由器(和固件)。
G Trawo '17年

4

我的个人设置如下:

  1. 在路由器将端口22从远程计算机转发到本地计算机的2222时,例如说192.168.0.33。这样,您仍然可以通过ssh访问计算机上的主操作系统,而2222用于虚拟操作系统。

    在此处输入图片说明

    1. 在虚拟框中,将主机OS 192.168.0.33端口2222转发到来宾OS的端口22。可以使用ifconfig来宾自身上的命令找到来宾的IP 。

    在此处输入图片说明

现在,如果您知道路由器的IP,则可以SSH到路由器的IP,它将自动转发到物理计算机的端口2222。物理机将使该连接到达虚拟机的端口22(前提是VM正在运行)。

如果要从本地网络ssh使用 ssh -p 222 192.168.0.33

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.