我在 VirtualBox 中创建了一个 NAT 网络,并尝试从 Ubuntu 主机通过 SSH 连接到 Ubuntu 服务器 VM,但连接被拒绝。Ubuntu 服务器 VM 使用端口转发连接到 NAT 网络。如果我在适配器中设置 NAT 而不是 NAT 网络,我可以通过端口转发成功连接,但对于此任务,我必须使用 NAT 网络。
有人能帮忙吗?我已经花了很多时间试图解决这个问题。我认为问题可能出在 Ubuntu 主机上,而不是 VirtualBox 上,但仍然找不到解决方案。
主持人:Ubuntu 18.04.1. LTS
虚拟盒:5.2.18_Ubuntu r123745
客人:Ubuntu-16.04.5-服务器-i386
访客网络设置:
NAT 网络:
端口转发规则:
来宾网络接口:
SSH 连接失败
root@ThinkPad:~# ssh -vvv [email protected] -p 1022
OpenSSH_7.6p1 Ubuntu-4ubuntu0.1, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "127.0.0.1" port 1022
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 1022.
debug1: connect to address 127.0.0.1 port 1022: Connection refused
ssh: connect to host 127.0.0.1 port 1022: Connection refused
更新
- 我已将转发的入口端口从 1022 更改为 10001,因为端口 1022 转发也无法与 NAT 一起使用。
- 当我使用端口 10001 进行转发时,我可以看到主机 VirtualBox 实际上正在监听该端口:
root@giacomo-ThinkPad:~# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10001 0.0.0.0:* LISTEN 2482/VirtualBox
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1489/dnsmasq
相反,当使用与 NAT 网络相同的转发规则时,VirtualBox 不会监听。所以看起来问题可能出在 VirtualBox 上?
答案1
通过安装 VirtualBox 6.0 解决了该问题。有了它,localhost:10001 的所有端口转发也开始与 NAT 网络配合使用。