虚拟机通过设定网关实现连接网络以及DNS域名解析相关设置

虚拟机连接网络的操作步骤

虚拟机本身是不能连接网络的,我们为了让虚拟机连接网络,可以将真机连接网络并将其设定为一个路由器,然后给虚拟机增加网关设置从而达到虚拟机可以访问外网的效果。

操作如下:

(1). 在真机上的操作
切换到root用户上,通过下面的命令查看内核路由功能是否开启

sysctl -a | grep ip_forward

在这里插入图片描述
可以看到net.ipv4.ip_forward的值为1,表示内核路由功能是开启状态。

接下来查看防火墙的状态,防火墙正在运行中:
在这里插入图片描述
然后通过下面命令列出防火墙的信息,查看防火墙的地址伪装的功能是否打开:

firewall-cmd --list-all

在这里插入图片描述
masquerade那一项为no,表示未开启。

通过以下命令打开防火墙的地址伪装功能:

firewall-cmd --permanent --add-masquerade
firewall-cmd --reload

在这里插入图片描述
地址伪装功能开启并加载成功:
在这里插入图片描述

(2). 在desktop虚拟机上操作:

在eth0网卡的网络配置文件中加入网关,网关IP为真机的IP,如下:
在这里插入图片描述
增加DATEWAY网关:
在这里插入图片描述
然后wq保存退出,再重启网络:
在这里插入图片描述
用 route -n 命令查看网关信息,可以看到网关已经成功添加:
在这里插入图片描述
(3). 测试

首先在真机上ping百度网址,可以看到百度的ip地址:
在这里插入图片描述
百度的ip地址为:14.215.177.38

接下来在desktop虚拟机上ping此ip地址,看连接是否通畅:
在这里插入图片描述
可以看到虚拟机已经可以成功连接百度的ip地址了,说明以及可以成功连接网络了。

我们发现输入ww.baudu.com依旧连接不上,而输入百度ip却能连接上,为解决此问题,用到了下面的DNS域名解析


DNS域名解析

在介绍具体的DNS设定之前需要先认识三个配置文件:

  • /etc/hosts   本地解析文件,这个是最早的hostname对应的ip的存档
  • /etc/resolv.conf   当需要解析域名时,读取该文件获得DNS服务器ip
  • /etc/nsswitch.conf   这个文件内容决定先使用/etc/hosts还是/etc/resolv.conf的设定

电脑要访问一个域名时,要将域名翻译成ip地址。这个过程通常会先访问/etc/hosts,看本地是否有对应的 hostname – ip 的记录。如果没有就会去查询DNS服务器,通过/etc/resolv.conf 得到DNS服务器地址。但是如果在/etc/nsswitch.conf 文件中修改顺序的话,以上的访问顺序就会发生变化。

(1). 本地解析

vim   /etc/hosts      

我们在desktop虚拟机中的/etc/hosts 文件中写入www.baidu.com和其对应的ip地址:
在这里插入图片描述
增加一条如下内容:
在这里插入图片描述
然后ping 百度的域名,可以发现网络通畅:
在这里插入图片描述

(2). DNS服务器

该服务器专门用来做服务解析的,不是服务器自己解析,而是提供一个能够解析主机的地址。

vim  /etc/resolv.conf

在这里插入图片描述
在文件中增加以下内容:
在这里插入图片描述
以上几个都是DNS域名解析服务器的地址,通过它们就可以对域名进行解析,从而连接网络。

下面尝试连接淘宝的域名,网络通畅:
在这里插入图片描述下面再尝试连接QQ网站的域名,网络通畅:
在这里插入图片描述
(3). DNS优先级的设定

/etc/nsswitch.conf文件中的内容可以决定DNS的优先级,一般默认是会先访问本地的解析文件/etc/hosts ,然后才会去访问 /etc/resolv.conf 文件。
在该文件的 39 行处可以进行设定,如下:
在这里插入图片描述
内容如下:
在这里插入图片描述
可以看到默认顺序是 " files dns "代表先访问本地解析文件。

下面我们改变 /etc/hosts 文件中百度域名对应的ip地址为其它ip地址,如下:
在这里插入图片描述
然后尝试再次ping 百度的域名:
在这里插入图片描述
可以看到实际上是去访问的 172.25.254.80 这个ip地址,并没有真正去访问百度的ip。
下面我们修改/etc/nsswitch.conf 文件中的优先级,如下:
在这里插入图片描述
然后再去ping百度的域名:
在这里插入图片描述
可以看到又先访问了百度的ip地址。

(4). 固定DNS指向

当在 eth 的接口启用DHCP(动态网络)后,本地的resolv.conf 文件将会被修改,resolv.conf 文件中的DNS地址将被改为从DHCP获取到的地址。

将 eth0的网络配置文件中增加一条DNS,DNS后面需要加数字(1、2、3),如下:
在这里插入图片描述
然后重启网络,查看/etc/resolv.conf 文件中的变化:
在这里插入图片描述
可以看到文件中的内容随着eth0网络配置文件的改变而发生了变化。
再把刚才添加的DNS1那一行内容删掉:
在这里插入图片描述
再次重启网络,并查看/etc/resolv.conf 文件中的变化:
在这里插入图片描述
可以看到刚才的 114.114.114.114 已经不在文件中了。

当在 eth 的接口启用DHCP(动态网络)后,resolv.conf 文件中的DNS地址将被会改为从DHCP获取到的地址。这时我们需要固定DNS的指向,那么要怎么固定DNS的指向呢,只需要在eth 接口的网络配置文件中将 PEERDNS 这一项改为 no 即可固定DNS指向。
PEERDNS 表示网络配置文件的DNS是否会修改/etc/resolv.conf ,no表示不会。

下面我们修改/etc/resolv.conf 文件的内容如下:
在这里插入图片描述
然后修改eth0的网络配置文件中的内容如下:
在这里插入图片描述
主要是修改了这一项:
在这里插入图片描述
然后重启网络,再查看/etc/resolv.conf 文件中的内容是否发生变化:
在这里插入图片描述
可以看到文件中的内容没有发生变化,成功固定了DNS指向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值