MacOS下VMware Fusion Ubuntu虚拟机配置Nat静态IP
之前在学校学web的时候安了一个VM上的Ubuntu虚拟机,回国隔离的时候上网课突然不能用了,网上查了无数的帖子都没搞好,4个小时的网课我生生搞了4个小时还没搞好。网上没有和我环境一模一样的,记录一下,为后来者
1. 配置环境
- MacOS Majave 10.14.6
- VMware Fusion下 Ubuntu 20.04
2. VMware Fusion配置Nat静态IP
原来我们在使用虚拟机的时候,如果使用桥接的方式,我们会换地方wifi变了,ip会变化,那么很多与ip相关的服务都会出现问题,所以我们最好使用nat模式,配置静态ip。
2.1 创建Nat网络
VMware Fusion -> 偏好设置 -> 网络
点击锁的按钮,输入密码解锁;
然后,我们点击+
号,增加一个网络,在这里显示的是vmnet3
,在其他机器可能是vmnet2
,这一点不影响,然后,将上图所示的3代表的选项选中,将下面的DHCP的选项取消。
(注意:要配置静态ip,一定要取消DHCP选项!)
2.2 修改Nat网络配置
下面我们需要在Mac的终端对VM进行网络配置。
2.2.1
打开终端,进入下面的目录:
cd /Library/Preferences/VMware\ Fusion/
( 注意:在路径中出现空格需要用\
转义)
然后我们就能看到上面的配置文件,首先打开networking
:
sudo vim networking
没有vim
的可以用vi
,一定记得加sudo
,需要root
权限才能修改)
如上图,VNET_3开头的配置就是我们创建的那块网卡。
标号为1的是子网掩码,标号为2的是子网地址。这里的子网掩码和子网地址我选择了上面VMware Fusion网络设置中DHCP选项下默认的子网掩码和子网地址。(如果不是很清楚,建议大家按自己机器上的默认值来,不会出问题)
2.2.2
然后我们进入vmnet3
,看到下图所示的配置文件:
sudo vi nat.conf
设置vmnet3
网关(转发其他服务器通信数据的服务器)的ip地址和子网掩码
ip地址要和上面networking
中的ip在同一个网段(即192.168.68前三个数字保持一样),这里我们配置为192.168.68.2
子网掩码要和networking
中的子网掩码保持一致
2.2.3
选择VM菜单的虚拟机 -> 网络适配器 -> 网络适配器设置
选中自定的vmnet3
2.3 虚拟机网络配置
接下来,我们就需要对虚拟机进行网络配置了,目前我装的是Ubuntu 20.04
2.3.1 设置网卡配置文件
打开Ubuntu终端,输入
sudo vi /etc/network/interfaces
(如果没有interfaces
文件会自动创建)
输入下图内容,注意:
address
与上面的设的ip要在一个网段(前三位一致)
netmask
与上面一致
gateway
与vmnet3
下的nat.conf
文件中的gateway的ip一致
2.3.2 设置DNS客户机配置文件
输入
sudo vi /etc/resolv.conf
进入DNS客户机配置文件,看到如下图内容
把我们之前设置的网关添加到DNS服务器列表中(添加方框内的一行)
重启网络服务,输入
sudo service network-manager restart
或
/etc/init.d/networking restart
或
ifdown ens33
ifup ens33
最后检查,在终端在输入:
ifconfig -a
ping
一下百度,ping通了就大功告成了!
2.3 延伸
2.3.1 关于/etc/network/interfaces
文件
1.打开ubuntu的/etc/network/interfaces文件默认的内容如下:
auto lo
iface lo inet loopback
动态获取的配置方法:
auto ens33 #开机自动连接网络
iface ens33 inet dhcp #static表示使用固定ip,dhcp表述使用动态ip
静态分配的配置方法:
auto ens33
iface ens33 inet static #static表示使用固定ip,dhcp表述使用动态ip
address 192.168.68.1 #设置ip地址
netmask 255.255.255.0 #设置子网掩码
gateway 192.168.68.1 #设置网关
2.3.2 关于/etc/resolv.conf
文件
该文件是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。它的格式很简单,每行以一个关键字开头,后接一个或多个由空格隔开的参数。
nameserver //定义DNS服务器的IP地址
domain //定义本地域名
search //定义域名的搜索列表
sortlist //对返回的域名进行排序
一个/etc/resolv.conf的示例:
domain 51osos.com
search www.51osos.com 51osos.com
nameserver 202.102.192.68
nameserver 202.102.192.69
其中最主要是nameserver关键字,如果没指定nameserver就找不到DNS服务器,其它关键字是可选的。
nameserver
表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的,且只有当第一个nameserver没有反应时才查询下面的nameserver。
domain
声明主机的域名。很多程序用到它,如邮件系统;当为没有域名的主机进行DNS查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点( .)前面的内容。
search
它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search声明的域中分别查找。
domain和search不能共存;如果同时存在,后面出现的将会被使用。
sortlist
允许将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。
参考
VMware Fusion配置Nat静态IP
linux根文件系统 /etc/resolv.conf 文件详解
关于Ubuntu网卡配置文件
Linux 初学者:如何在 Ubuntu 中重启网络