我有两台计算机,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 需要什么才能正常工作?
乌本图:
- OpenSSH 正在运行,
- ufw 中允许 ssh 端口
- 如果 Win 使用 22 端口进行 ssh,那么 Ubuntu 是否也应该使用 23 端口进行 ssh,这样才不会冲突?
赢:
- Win 上的 sh 客户端 (Powershell)
- 已知外部 IP (whatsmyip)
路由器:是否应转发某些端口?如果需要,应转发哪些端口?
路由器软件需要以下信息:
- 选择设备 IP(外部 IP?本地 IP?如果是本地的,则是路由器、Win 还是 Ubuntu)?
- 起始港口
- 结束端口
- “远程 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 地址。
这只是基于现有信息的一般建议。如果没有确切的细节,就无法给出确切的实施建议。