从家用电脑通过 SSH 连接到远程服务器

从家用电脑通过 SSH 连接到远程服务器

我是 ssh 新手,几天来一直在绞尽脑汁想如何将家用计算机连接到远程计算机。我发现我无法连接,因为它们在不同的网络上。我相信这个问题有一个简单的解决方案,但在徒劳地寻找解决问题的一天之后,我不得不求助于你的帮助。

我的远程服务器的IP地址为192.168.0.1,我的家用电脑为 ,192.168.18.118两者位于同一端口(暂时)1729。唯一的区别是用户名,家用电脑用户名为Thomas,远程用户名为Tom

请帮忙解决这个问题,通常通过输入远程服务器的用户名、远程服务器的 IP 地址和远程服务器的端口进行连接,但出现超时错误。提前谢谢您。

编辑 2019.10.14

问题是我不知道如何使用所有这些。我不知道如何使用所有这些,因为我在互联网上观看了半音视频、文章等等,但是我找不到有关如何通过 ssh 连接两台这样的计算机的具体解释。此外,甚至找不到至少一些有关如何完成此操作的示例。假设我家用 PC 的全局 IP 地址为70.***.**.**,本地地址为192.168.18.118。还假设我的远程 PC 的全局 IP 地址为75.***.**.**,本地地址为192.168.0.1。两者都包括1729端口和主机名 archlinux、家用 PC 的用户名Thomas和远程Tom。现在的问题是,如何将这两台计算机相互连接,也就是说,如何从我的家用 PC 访问远程 PC ,反之亦然?如果您能帮助我将家用电脑连接到遥控器,我将不胜感激,因为我真的需要它。

继续编辑 2019.10.14

我尝试了你说的方法并得到了答案

ssh:连接到主机75.***.**.**端口1729:连接超时

出于兴趣,我尝试以这种方式连接到我的家用电脑,仅使用家用电脑的全局 IP 地址和家用电脑上的用户名,然后我得到了这个响应

ssh:连接到主机70.***.**.**端口1729:连接被拒绝

编辑于 2019.10.15

$ ss -nltu                                                                                                                                                                                                     
Netid   State Recv-Q Send-Q  Local Address:Port  Peer Address:Port  
udp     UNCONN 0     0         0.0.0.0:68             0.0.0.0:*     
tcp     LISTEN 0     128       127.0.0.1:5432           0.0.0.0:*     
tcp     LISTEN 0     128       127.0.0.1:6463           0.0.0.0:*  
tcp     LISTEN 0     128       0.0.0.0:1729          0.0.0.0:* 

我怎样才能完成这个过程?

编辑 2019.10.16

在家用电脑上连接全球 IP 家用电脑的答案:

$ ssh Thomas@70.***.**.**        
ssh: connect to host 70.***.**.** port 22: Connection refused

在家用电脑上连接全球 IP 远程电脑的答案:

$ ssh Tom@75.***.**.** 
ssh: connect to host 75.***.**.** port 22: Connection timed out.

扫描家用PC全局地址的结果:

$ nmap 70.***.**.**  -p 22
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-16 00:44 +04
Nmap scan report for 70.***.**.**
Host is up (0.00039s latency).

PORT   STATE  SERVICE
22/tcp closed ssh

Nmap done: 1 IP address (1 host up) scanned in 0.35 seconds

当我扫描远程 PC 的全局 IP 地址时,我给出了类似的答案,但STATE指示为filtered

答案1

远程服务器的地址不能是192.168.*.*。此地址范围适用于“本地”LAN。它实际上看起来像这样:

  • 您的计算机位于本地局域网上,该局域网上的所有设备都在 192.168.范围。
  • 这些设备之一(通常是 192.168.0.1 或 192.168.0.254)是路由器。要与本地 LAN 之外的设备进行通信,LAN 上的设备会将数据包发送到路由器。
  • 路由器的另一端连接到互联网。在那一端,它有一个真实的互联网地址(在 192.168.100.1 之外)。和 10。.* 范围)。
  • 当您的 LAN 上的任何设备连接到互联网时,它看起来就像拥有路由器的互联网地址(请转至https://www.showmyip.com/查看路由器的地址)。

另一方面,鉴于 192.168,情况也是如此。地址,服务器也在本地局域网上,因此要与其通信,您必须知道连接到其本地局域网的路由器的互联网地址。

但这还不够,因为:

  • 路由器通常配置为仅允许出站连接通过(您可以使用互联网地址启动连接,但互联网不能启动与您的连接)
  • 假设路由器允许入站连接,则无法判断哪个本地设备是预期的接收方,因为它们只有一个地址(但这是它们自己的地址)和一个端口。但是可以将它们配置为将所有到特定端口(例如 1749)的连接转发到本地 LAN 上的特定机器。

TLDR;您需要 1) 您的服务器或其路由器的实际互联网地址和 2) 确保路由器已充分配置以允许连接发生。

PS:在连接中,只有目标端口是重要的。

编辑:

要从家用电脑连接到服务器,您只需要知道服务器的互联网地址(75.xxx.xx.xx)和端口(在您的情况下似乎是 1729,否则标准 SSH 端口:22)。

当然,您还需要一个 SSH 客户端。使用命令行 SSH,这将提供,并在提示时输入 Tom 的密码。您也可以使用 GUI 客户端,例如 PuTTY。配置也很简单,只需要一个主机名或地址以及可选的端口。ssh -p 1729 [email protected]

这是基础,通过适当的配置,您可以避免输入密码,或者使用密钥库身份验证(除非您使用非常非常长的密码,否则通常更安全)。

请注意,连接始终是从您的 PC 到服务器。

编辑#2

检查服务器。在典型的服务器上:

ss -nltu
Netid  State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
tcp    LISTEN     0      80     127.0.0.1:3306                     *:*                  
tcp    LISTEN     0      128          *:22                       *:*                  
tcp    LISTEN     0      100          *:25                       *:*                  
tcp    LISTEN     0      128         :::80                      :::*                  
tcp    LISTEN     0      128         :::22                      :::*                  
tcp    LISTEN     0      100         :::25                      :::*                  
tcp    LISTEN     0      128         :::443                     :::*                  

此命令列出了监听端口。25 是邮箱,22 是 SSH,80 和 443 是 HTTP 服务器,3306 是 MySql DB(但它只接受来自本地主机的连接)。':::' 套接字是 IPv6,':' 是 IPv4。

相关内容