本地 Win+Ubuntu:通过互联网从 Win ssh 到 Ubuntu

本地 Win+Ubuntu:通过互联网从 Win ssh 到 Ubuntu

我有两台计算机,Win10 和 Ubuntu 18.04,位于路由器后面,连接到互联网。两台计算机的互联网工作正常。我想授予某人在 Ubuntu(不是 Win)上进行远程工作的权限。远程工作将通过 x11vnc 和 VNC 查看器完成。在 Ubuntu 上,我已经设置并准备好了 OpenSSH 和 x11vnc。

在测试 VNC 之前,我首先想测试基本的 ssh:通过互联网从 Win ssh 到 Ubuntu,就像我从外面来一样。还没有 pem 密钥,只有密码。我尝试使用我的外部 IP(从外面看我的路由器的方式)从 Win Powershell ssh 到 Ubuntu,但我看到的只是一个闪烁的光标,没有登录提示。从 Win 到 Ubuntu 的 ssh 需要什么才能正常工作?

乌本图:

  1. OpenSSH 正在运行,
  2. ufw 中允许 ssh 端口
  3. 如果 Win 使用 22 端口进行 ssh,那么 Ubuntu 是否也应该使用 23 端口进行 ssh,这样才不会冲突?

赢:

  1. Win 上的 sh 客户端 (Powershell)
  2. 已知外部 IP (whatsmyip)

路由器:是否应转发某些端口?如果需要,应转发哪些端口?

路由器软件需要以下信息:

  1. 选择设备 IP(外部 IP?本地 IP?如果是本地的,则是路由器、Win 还是 Ubuntu)?
  2. 起始港口
  3. 结束端口
  4. “远程 IP 和端口”(我假设这是我只允许选择 IP 从外部连接的地方,所以它将是我的外部 IP)

编辑:------ 更多信息 ------

路由器上的端口转发配置

sudo netstat -tulpn | grep ';22' on Ubuntu:
tcp   0   0 0.0.0.0:22   0.0.0.0:*   LISTEN   1158/sshd
tcp6  0   0 :::22        :::*        LISTEN   1158/sshd    

cat /etc/ssh/sshd.config on Ubuntu:
cat: /etc/ssh/sshd.config: No such file or directory

答案1

最简单的方法是保留系统上的 SSH 和 VNC 服务器的默认设置,并使用端口转发将它们分开。在同一网络中使用相同端口的多个系统不会引起冲突,因为系统只监听端口,而客户端使用 IP 地址进行连接。

在网络内部,您使用内部 IP,我们假设192.168.0.10是 Ubuntu。要从 Windows 通过 SSH 连接到 Ubuntu,您需要。在考虑外部访问之前,先确保内部连接正常工作。ssh [email protected]

对于从外部连接,您需要在路由器上配置端口转发,例如 10010。根据您的描述,我将这样配置端口转发:

Device IP: 192.168.0.10
Starting port: 22
Ending port: 22
Remote IP: blank
Remote port: 10010

然后你就可以从外部通过 SSH 进入 Ubuntu 了ssh user@<PublicIP> -p 10010

VNC 的默认端口是 5900+N,N 是显示编号 - 通常为 0,因此端口 5900 就足够了。您可以通过创建类似的端口转发规则来允许使用 VNC 访问 Ubuntu。例如,您可以使用 10590 作为远程端口,使用 5900 作为起始和结束端口。然后,VNC 客户端将使用公共 IP 和远程端口连接到内部系统。

要测试外部访问,您需要实际从外部访问。一种方法是使用电话热点而不是路由器将系统连接到互联网;它将不再位于同一个内部网络中。

请注意,为了使端口转发可靠,您应该为 Ubuntu 系统配置静态 IP 地址。

这只是基于现有信息的一般建议。如果没有确切的细节,就无法给出确切的实施建议。

相关内容