本文转自本人的 CSDN 博客

在使用 VMware 时,有时候需要用外部终端 ssh 连接自己的虚拟机,但是通常虚拟机默认的是 DHCP 协议,ip 可能动态变化,不方便连接。于是我们可以设置固定 ip,并且设置 hosts 文件实现自定义域名。

1. 用虚拟网络编辑器设置网关

首先设置子网和网关,如下图

img

在 VMware 左上角,点击编辑→虚拟网络编辑器→更改设置→VMnet8→nat设置→编辑网关
如图左边的下半,设置子网地址范围,我这里设置的是 192.168.111.0
如图的右边,设置一下网关地址.
这里网关地址任选一个局域网地址即可,比如我的是 192.168.111.1
记住这个网关地址,后面要用

2. 更改本机的 ip

如果是 windows, 在 网络和共享中心→网络连接→VMnet8→属性→IPv4→设置ip地址和网关 设置
这里我设置的本机 ip 是 192.168.111.2,可以自定义为其他的。网关就是上面设置的。如下

img

3. 打开虚拟机,设置虚拟机网络配置

kali linux 或者老版本的 ubuntu 和 debian 设置

1. 修改 ip
如下命令

sh
1
sudo vim /etc/network/interfaces #也可以不用vim,自己选个合适的编辑器就行

在原本的文件插入如下片段即可

text
1
2
3
4
5
6
7
8
9
10
auto eth0 
#通常叫eth0(kali)或者ens33(ubuntu),自己可以根据ipconfig的显示来改
iface eth0 inet static
#配置eth0使用默认的静态地址
address 192.168.111.5
#虚拟机的固定ip,记得要和网关同一网段
netmask 255.255.255.0
#配置eth0的子网掩码
gateway 192.168.111.1
#配置默认网关,跟上面一样

2. 修改 dns
然后执行

sh
1
sudo vim /etc/resolv.conf

修改 nameserver, 即 dns

text
1
2
3
4
# Generated by NetworkManager
search localdomain
nameserver 114.114.114.114
nameserver 8.8.8.8

3. 修改网络管理配置

sh
1
sudo vim /etc/NetworkManager/NetworkManager.conf

将里面的 manage=false 改为 manage=true

text
1
2
3
4
5
[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=true

然后重启网络

sh
1
sudo /etc/init.d/networking restart

20.04 及以上的 Ubuntu 设置

直接修改网络

sh
1
sudo vim /etc/netplan/01-network-manager-all.yaml

写入如下

yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens33:
dhcp4: no # 取消DHCP

addresses: [192.168.111.3/24] #这里写静态ip

gateway4: 192.168.111.1 #前面的网关
nameservers:
addresses: [8.8.8.8,8.8.4.4]

最后 sudo netplan apply 即可

更改 hosts 自定义域名

以管理员模式打开 Windows 的 hosts 文件
C:\Windows\System32\drivers\etc\hosts

保存时如果权限不够,说明你没有以管理员模式打开
这里有个小技巧。可以先用管理员模式运行 cmd,输入 notepad,然后在 notepad 中打开 hosts 即可

在末尾写入你自定义的域名,对应你的虚拟机 ip,然后保存
比如我的是

text
1
2
3
#自定义ip和域名
192.168.111.3 ubuntu
192.168.111.5 kali

此时,使用 ping kali 就可以直接 ping 到虚拟机了
也可以使用 ssh root@kali 命令,直接连接 kali 虚拟机,而不用去记住 ip 了