如何在互联网上设置 SSH?

如何在互联网上设置 SSH?

我认为这类问题以前已经得到解答,但由于缺乏网络知识,几年来我一直在互联网上搜索并阅读了许多网站,试图通过互联网连接到 SSH 服务器。但我失败了。我想知道是否可以使用 SSH 连接两个系统,而无需使用 ngrok 等第三方服务。

我有两台运行 ArchLinux 的计算机。计算机 A 和 B 位于本地网络中,但我想设置 ssh,以便我可以通过互联网上的 SSH 从 B 访问 A(就像 Anydesk、Teamviewer 和其他此类远程桌面软件的连接方式一样)。

系统详细信息: 1. 系统连接到 [Digisol] 路由器。2. 两者都安装了openssh软件包。系统 A 正在运行sshd。A 可以通过 LAN 连接到 B。

系统A的主机名:archlinux-pc

系统B的主机名:archlinux

在两个系统上,用户名都是苏拉夫。也就是说,我想连接到苏拉夫archlinux-pc

  1. 在路由器(Digisol)上设置虚拟服务器配置:
Current Virtual Server Forwarding Table
ServerName  Protocol    Local IP Address    Local Port  WAN Port    State   Action
SSH     tcp     192.168.2.9     22-22   22-22   Enable  
  1. 我的公共 IP 是 xx.xxx.171.113,据报告身份识别。IP 在几个月的时间内都没有变化。

whatismyipaddress.com 显示相同的 IPv4,但是IPv6:未检测到

我的路由器有一个名为 WAN 配置的部分,其中显示了一些不同的 IP:

WAN Configuration
Interface   Protocol    IP Address  Gateway     DNS     Status
WAN     PPPoE   xx.xxx.18.27    xx.xxx.0.1  xxx.xxx.91.2 8.8.8.8 xxx.xxx.88.2   Link Up(PPPoE)

我已经尝试过从系统 B 使用,这花了很长时间但根本没有连接。ssh [email protected]

我也尝试过这些链接:

https://raspberrypi.stackexchange.com/questions/13861/setting-up-ssh-over-internet-on-my-pi

https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding


如果可以的话,如何使用 SSH 从系统 B 连接到系统 A,而无需任何其他服务(如 ngrok)?另外,我可以使用在 Android 手机上运行的 termux 通过 SSH 连接到系统 A 吗?

答案1

假设两个系统都在同一个本地网络上,位于同一个路由器后面:

正在连接至 [电子邮件保护]将带你进入 192.168.2.9

从那里你可以使用本地地址(大概是 192.168.2.X)通过 ssh 连接到下一个系统

如果您想从外部访问它,您必须添加额外的端口转发:

ServerName  Protocol    Local IP Address    Local Port  WAN Port    State   Action
       SSH       tcp         192.168.2.9         22-22     22-22    Enable  
      SSH2       tcp         192.168.2.X         22-22 63000-63000  Enable  

现在你应该能够连接到[电子邮件保护]端口 63000 并到达另一个系统。最好移动到非默认 SSH 端口,以降低因提供服务而收到的暴力登录尝试次数。

答案2

实现 IPv6 寻址。向 DNS 添加 AAAA 记录。在防火墙中打开端口。无需 NAT。

为了消除前缀改变的可能性,请从您的 ISP 获取静态分配。

相关内容