本文转自本人的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
如下命令

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

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

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
然后执行

1
sudo vim /etc/resolv.conf

修改nameserver, 即dns

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

3.修改网络管理配置

1
sudo vim /etc/NetworkManager/NetworkManager.conf

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

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

[ifupdown]
managed=true

然后重启网络

1
sudo /etc/init.d/networking restart

20.04及以上的Ubuntu设置

直接修改网络

1
sudo vim /etc/netplan/01-network-manager-all.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,然后保存
比如我的是

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

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