用 SecureCRT 访问 NAT 连接的虚拟机

公司准备搬新地址,由于申请的 IP 有限,故每人只能分配到一个固定 IP ,这对于桥接模式的自建虚拟机来说,意味着必须要采取 NAT 的网络连接方式,才不至于断网或自找麻烦。

首先,得更改 IP 为自动获取,然后在虚拟连接更改连接模式。

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

########ifcfg-eth0########
DEVICE=eth0
HWADDR=08:00:27:89:3A:BD
TYPE=Ethernet
UUID=10a97d83-a09b-450f-b6a9-92afec3ab908
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
########ifcfg-eth0########

sudo service network restart

更改网络连接模式

更改完成有个奇怪的现象,在知道虚拟机 IP 地址为 10.0.2.15 的情况下,用 SecureCRT 居然无法连接,从虚拟机 ping 物理主机 IP 可以通,但是从物理主机 ping 虚拟机的 IP 却不行。刚开始以为是防火墙等等的问题,但后来关闭了 iptables 和 SElinux 都无济于事,奇了怪了。

后来通过查询文档才发现,在虚拟机设置成NAT连接后,按理说虚拟机可以连外网,也可以连接物理主机。但是物理主机要访问虚拟机的话,还需要进高级设置配置端口映射(端口转发)。

NAT端口转发配置

如图,在主机 IP 中填入物理主机 IP ,子系统 IP 填入虚拟机 IP ,把物理主机的 22 端口(也可以填入其他未被占用的端口号)映射到虚拟机的 22 端口。确定后会发现虚拟机工具会在本机开启一个 22 端口,访问此端口的连接会被虚拟机工具跳转到虚拟机的 22 端口。

端口映射

这样,只要在 SecureCRT 上配置本机 22 端口的 ssh 连接,就可以连上虚拟机了。