在使用VMware时,有时候需要用外部终端ssh连接自己的虚拟机,但是通常虚拟机默认的是DHCP协议,ip可能动态变化,不方便连接。于是我们可以设置固定ip,并且设置hosts文件实现自定义域名。
1. 用虚拟网络编辑器设置网关
在VMware左上角,点击
编辑→虚拟网络编辑器→更改设置→选择VMnet8→nat模式→取消下面的DHCP勾选→nat设置→编辑网关
这里网关地址任选一个局域网地址即可,比如我的是192.168.111.1
记住这个网关,下面要用
2. 更改自己本机的ip
网络和共享中心→网络连接→VMnet8→IPv4→设置ip地址和网关
这里我设置的本机ip是192.168.111.2,可以自定义。网关就是上面设置的
3. 打开虚拟机,设置虚拟机网络配置
先在VMware设置中把虚拟机网络改成nat模式
1、kali linux或者老版本的ubuntu设置
sudo vim /etc/network/interfaces #也可以不用vim,自己选个合适的编辑器就行
然后在原来文本的底部插入如下片段
auto eth0 #通常叫eth0(kali)或者ens33(ubuntu),自己可以根据ipconfig的显示来改
iface etho inet static #配置eth0使用默认的静态地址
address 192.168.111.5 #虚拟机的固定ip,记得要和网关同一网段
netmask 255.255.255.0 #配置eth0的子网掩码
gateway 192.168.111.1 #配置默认网关,跟上面一样
然后
sudo vim /etc/resolv.conf
将里面的nameserver改成合适的DNS,比如
# Generated by NetworkManager
search localdomain
nameserver 114.114.114.114
nameserver 8.8.8.8
然后
sudo vim /etc/NetworkManager/NetworkManager.conf
将里面的manage=false
改为manage=true
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=true
最后重启网络即可
sudo /etc/init.d/networking restart
2、20.04及以上的Ubuntu设置
sudo vim /etc/netplan/01-network-manager-all.yaml
写入
# 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
即可
4、更改hosts自定义域名
以管理员模式打开Windows的hosts文件
C:\Windows\System32\drivers\etc\hosts
保存时权限不够,说明你没有以管理员模式打开
可以先用管理员模式运行cmd,输入notepad,然后在notepad中打开hosts即可
在末尾写入你自定义的域名,对应你的虚拟机ip,然后保存
比如我的是
#自定义ip和域名
192.168.111.3 ubuntu
192.168.111.5 kali
这样使用ping kali
就可以直接ping到虚拟机了
也可以在ssh时ssh kali
直接连接kali虚拟机,而不用去记住ip了
实际上这些操作在图形界面也可以完成,不过为了规范就命令行进行啦
2023-3-25更新:如果要在虚拟机中使用科学上网
,比如下载外网包的时候很慢,可以在cfw中设置如下:
下载service mode并且开启TUN即可