第一章  如何将你的Centos虚拟机连上Internet

一般来说,我们学习Centos都在VMware Workstation下进行,用这种方法安装Centos很容易在一台机器上建立你自己的网络,这样方便你的学习。如何在VMware Workstation下安装你的Centos在此就不复述了,你可以很容易找到安装方法,下面的内容都安排在上述环境下进行。将你的Centos虚拟机连上Internet有两种方式:

  1. 一种是动态网络方式(dhcp),包括网桥方式和NAT方式,这种方式你可以将你的虚拟机,宿主机一起看成连在同一台交换机上,你可以将虚拟机软件中的VMnet0看成是一台交换机,这时,它们的IP当然必须是在同一个网段,并且拥有相同的网关。
  2. 一种是静态网络方式(static)nat方式,包括网桥方式和NAT方式,此时,你可以将虚拟机软件中的VMnet8看成是一台路由器,很多资料将这个讲的云里雾里,其实我们没有必要去了解太多,大体能理解就可以了。学网络的人都知道,这台路由器VMnet8必须有与宿主机是同一网段的IP口才能连上Internet的,但这不是我们需要关心,虚拟机软件早就想好了。

对于网卡来说,我们要做的工作就是使用DHCP还是static方式配置IP地址。另一个就是配置DNS服务器的IP地址。

第一节DHCP方式

1.网桥模式联网

   首先按下面的方式配置虚拟网络编辑器:

第一步:通过VMware编辑菜单栏点击虚拟网络编辑器,如下图所示。

 第二步:设置VMnet0,选择桥接模式,外部连接不要选自动,而是选择你的宿主主机的网卡,考虑到一般有有线和无线两块网卡,但这里选择的这块网卡是连接Internet的,比如,这个图中所示,我使用无线网卡连接到Internet,所以选择它,然后“确定”。

 第三步:打开如下图所示界面,选择“设置”进入第四步。

第四步:选择网络适配器,在网络连接那里选择桥接模式,然后“确定”

 第五步:进入你的centos/Linux, 打开终端,如果你是第一次配置网卡,按下面操作

root@localhost network-scripts]# systemctl restart network

重启网络服务

[root@localhost network-scripts]# ifconfig

查看一下你的网卡是不是有IP地址

 第六步:检查一下是否与网关相通,我连Internet的网关是192.168.0.1。

[root@localhost network-scripts]# ping 192.168.0.1

连通!

或者检查一下宿主机与虚拟机是否相通,

至此,网络已经连通!

如果你的系统原来连过网,那么你得查看一下你的配置文件,这个配置文件是/etc/sysconfig/network-scripts/ifcfg-ens33,按下面修改:

[root@localhost network-scripts]# cat ifcfg-ens33

TYPE="Ethernet"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="dhcp"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

IPV6_ADDR_GEN_MODE="stable-privacy"

NAME="ens33"

UUID="814a3731-7507-497a-ad97-51508e114fae"

DEVICE="ens33"

ONBOOT="yes"

修改后再按如下操作

root@localhost network-scripts]# systemctl restart network

重启网络服务

[root@localhost network-scripts]# ifconfig

查看一下你的网卡是不是有IP地址

再执行上面的第六步检查连通性即可!

2NAT模式联网

第一步:打开虚拟网络编辑器,所有数据不要去改动,如下图所示:

第二步:打开虚拟机设置,按图中标箭头的地方设置好,然后“确定”。

 第三步:重启网络服务

root@localhost network-scripts]# systemctl restart network

重启网络服务

[root@localhost network-scripts]# ifconfig

查看一下你的网卡是不是有IP地址

 

第四步:检查连通性

 

 

 

至此网络的联通性就配好了!

第二节Static方式

1.网桥模式联网(Static)

   首先按下面的方式配置虚拟网络编辑器:

第一步:通过VMware编辑菜单栏点击虚拟网络编辑器,如下图所示。

 

第二步:设置VMnet0,选择桥接模式,外部连接不要选自动,而是选择你的宿主主机的网卡,考虑到一般有有线和无线两块网卡,但这里选择的这块网卡是连接Internet的,比如,这个图中所示,我使用无线网卡连接到Internet,所以选择它,然后“确定”。

 

第三步:打开如下图所示界面,选择“设置”进入第四步。

 

第四步:选择网络适配器,在网络连接那里选择桥接模式,然后“确定”

 

第五步:修改配置文件/etc/sysconfig/network-scripts/ifcfg-ens33,如果没有这个文件,先检查一下你的网卡名,然后在这个目录下查找到相应的配置文件。如果都没有,用命令查看一下你的网卡名称,然后自己编辑一个这样的文件即可,比如你的网卡名称是ens37,那么在/etc/sysconfig/network-scripts/下编辑一个ifcfg-ens37文件即可。

 

第六步:重启网络服务,按下图操作

 

第七步:检查连通性

 

 

至此,网络已经联通!

如果你需要自己编辑文件/etc/sysconfig/network-scripts,那么,这个文件里有一个非常重要的数据UUID,这是网卡的令牌(token),你可以通过以下方式获得:

 

 

2.NAT模式联网(Static)

第一步:通过VMware编辑菜单栏点击虚拟网络编辑器,如下图所示。

 

第二步:选中VMnet8点击NAT设置

 

第三步:不使用本地DHCP服务,这样就得勾消DHCP选项,然后查看DHCP确保未启用。

 

第四步:打开NAT设置,记下图中表示的数据用于修改配置文件,你不要去改动这些数据。

 

第五步:打开虚拟机设置,按图中标箭头的地方设置好,然后“确定”。

 

第六步:修改配置文件/etc/sysconfig/network-scripts/ifcfg-ens33,如果没有这个文件,先检查一下你的网卡名,然后在这个目录下查找到相应的配置文件。如果都没有,用命令查看一下你的网卡名称,然后自己编辑一个这样的文件即可,比如你的网卡名称是ens37,那么在/etc/sysconfig/network-scripts/下编辑一个ifcfg-ens37文件即可。

     注意:修改的时候必须按第四步的IP网段和网关修改,具体根据你自己的情况决定这个网段,比如,我的网段是192.168.75.0,网关是192.168.75.2,子网掩码是255.255.255.0。

 

第七步,重启网络服务

[root@localhost network-scripts]# systemctl restart network

[root@localhost network-scripts]# ifconfig

第八步:检查网络的联通性。至此配置完毕!

 

 

注意:很多人在修改配置文件/etc/sysconfig/network-scripts/ifcfg-ens33时,喜欢将原来的配置文件进行备份,这习惯很好,但有时会出现点麻烦!比如:

[root@localhost network-scripts]# cp -p  ifcfg-ens33 ifcfg-ens33.bakk

出现了两个ifcfg-ens33,尽管后面那个                

 

                                              是ifcfg-ens33.bakk,重启网络服务时会出现下面的错误,不能启动网络服务!

 

这时,你将文件ifcfg-ens33.bakk改一下名就可以了!比如我是这样改的:

[root@localhost network-scripts]# mv ifcfg-ens33.bakk myifcfg-ens33.bakk

反正不是ifcfg-ens33开始就行!

第三节 配置DSN

前两节我们分别介绍了DHCP(bridge,nat)方式和Static(bridge,nat)的网络连接方法,但是,如果希望上Internet的话,我们还必须配置好DNS。本节我们将介绍配置DNS的方法。

第一步:修改配置文件 /etc/resolv.conf ,如果你公司有自己的DNS服务器,那么用本公司的,也可以到网上查找免费的DNS服务器,比如:

中国互联网络中心:1.2.4.8、210.2.4.8、101.226.4.6(电信及移动)、123.125.81.6(联通)

阿里DNS:223.5.5.5、223.6.6.6

googleDNS:8.8.8.8、8.8.4.4

openDNS:208.67.222.222208.67.220.220208.67.222.220208.67.220.222

可以阻挡含有恶意网站的dns

208.67.220.123

无劫持 去广告或粗俗网站dns:114.114.114.114 和 114.114.115.115

拦截钓鱼病毒木马网站,可增强网银、证券、购物、游戏、隐私信息安全的DNS 114.114.114.119 和 114.114.115.119

然后修改配置文件 /etc/resolv.conf,如下表所示:

 

可最多写3个。

注意:dns跟网络服务是无关的,所以你不需要重启网络服务。但是跟网络管理器(NetworkManager)这个服务有关!

  当你配好resolv.conf文件后,过了一会,发现刚才配置好的DNS又失效了,原来DNS被系统重新覆盖或者被清除!所以你还必须完成以下工作。

第二步:修改/etc/NetworkManager/NetworkManager.conf文件

 

[root@localhost ~]# systemctl restart NetworkManager       ß重启网络管理器

第三步:检查配置是否成功,随便找一个网站ping一下就可,我这样ping www.baidu.com.

 

大功告成!现在可以从你的虚拟机上Internet了。

第四节 网络基本管理--与网络配置相关的常用命令

  1. 命令ip addr

熟悉Linux操作系统的人一般知道ip addr命令是用来查看本地IP地址的,除了这一点,也可了解一下其它的信息。利用这个命令,你就可以看到你的Linux系统的的网络设备列表。

[root@localhost ~]# ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

#

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:ae:ed:83 brd ff:ff:ff:ff:ff:ff

    inet 192.168.75.100/24 brd 192.168.75.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::80af:49f3:b3dc:a8c9/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000

    link/ether 52:54:00:04:ad:bd brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

       valid_lft forever preferred_lft forever

4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000

    link/ether 52:54:00:04:ad:bd brd ff:ff:ff:ff:ff:ff

网络设备也就是网卡,centos7引入了一种新的网络设备命名方式:一致网络设备命名(CONSISTENT NETWORK DEVICE NAMING)。

    通常我们使用的服务器往往会有多块网卡,在同一服务器上有主板集成的、PCIe插槽上的等不同的网络接口卡。原来的Linux系统采用eth0,eth1这种命名方式,不能反映不同网络接口卡的物理特征。为此,dell开发了biosdevname方案,而systemd v197版本进一步将dell方案作了拓展,可以为本地的Ethernet、WLAN、WWAN接口自动分配可预测的、稳定的网络接口名称,而抛弃了传统的命名方式如eth0,eth1,wlan0等。

目前的Centos同时支持dell的biosdevname和systemd两种命名方式。具体内容我们在此不详细介绍了,感兴趣的读者可以上网去查询有关资料。

我们知道ens33是我们用于连网的网卡,其功能大多已经了解;下面我们着重介绍一下lo和virbr0的功能。

一、关于lo

     在Linux系统中,lo(lo: local loopback的简写)是一个虚拟网络接口。所谓虚拟网络接口,是指不从外界接收和发送数据包,只在系统内部接收和发送数据包,不需要驱动程序。lo接口的作用是为本地不同进程间进行数据交换提供服务。直观地说lo就是回环地址127.0.0.1,用于本机通信,数据经过内核处理后直接返回,不会在任何网络中出现。

   lo接口相关的IP地址就是本地回环地址,这个IP地址指的是以127开头的(127.0.0.1 – 127.255.255.254)地址范围,但通常用使用127.0.0.1,所以127.0.0.1也被称为本地回环地址(Loop back address)。 

     本地回环地址代表设备的本地虚拟接口,即使你的机器没有安装网卡,也可以ping通这个本地回环地址。利用命令ping 127.0.0.1可以检查本地TCP/IP协议以及基本数据接口等是否工作正常。顺便说一下,如果你想检查网卡是否工作正常的话,就得ping一下你本机的IP地址。

可以在Linux服务器中用tcpdump -i lo命令观察抓取本机间不同进程交换数据包的情况,如下图所示。

 

也可以用Wireshark软件按如下设置网卡进行抓包实验,Wireshark不是Linux自带的,不过也没问题,可以按下面方式安装。

yum –y install wireshark

yum –y install wireshark-gnome

wireshark的图形界面

然后在终端输入 wireshark命令启动

 

     这个软件的用法在此不介绍了,读者可以自行去学习了解。

 二 、关于virbr0

大多数学习Linux的读者为了方便,一般采用虚拟机下安装Linux,这样就会看到virbr0这个网络设备,下面是在VMware Workstation下安装的Centos系统有关virbr0的信息,其中的IP地址、子网掩码等是虚拟机控制程序分配的,IP地址192.168.122.1 是固定的,你可以看看你自己的是不是也一样是这个地址。

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

        ether 52:54:00:04:ad:bd  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0其实就是一个虚拟网桥(virtual bridge),你也可以理解为在虚拟网络中的交换机,当你在VMware Workstation下安装了多个虚拟机时,这些虚拟机之间就是通过这个交换机virbr0互联的,没有virbr0,各虚拟机之间无法通信。尽管你的虚拟机与virbr0的IP地址192.168.122.1不属于同一网段,但ping 192.168.122.1是通的,你不妨试试ping一下。

2.Ifconfig命令

    ifconfig命令是centos6中比较重要的命令,可以用于查看、配置、启用或禁用指定网络接口,如配置网卡的IP地址、掩码、广播地址、网关等,功能不可谓不丰富,但在centos7中也能用,不过我个人还是比较喜欢用这个程序。

    如果你在安装Centos7时可能没有安装这个程序,可以自己用命令yum install net-tools.x86_64安装ifconfig即可

一、ifconfig的语法

语 法:ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<硬件地址>] [media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>] [-pointopoint<地址>]

二、ifconfig的参数解释

 参数名称

含义

网络设备

网络设备的名称

down

关闭网络设备

up

启动网络设备

-arp

打开或关闭接口上使用的ARP协议

-allmuti

关闭或启动接口的无区别模式

-promisc

关闭或启动网络设备的混杂模式

add<地址>

设置网络设备IPv6IP地址

del<地址>

删除网络设备IPv6IP地址

media<网络媒介类型>

设置网络设备的媒介类型

mem_start<内存地址>

设置网络设备在主存所占用的起始地址

metric<数目>

设定在计算数据包的转送次数时,所要加上的数目

mtu<字节>

设置网络设备的MTU

netmask<子网掩码>

设置网络设备的子网掩码

tunnel<地址>

建立IPv4IPv6之间的隧道通信地址。

-broadcast<地址>

将要送往指定地址的数据包当成广播数据包来处理

-pointopoint<地址>

与指定地址的网络设备建立直接连线,此模式具有保密功能

注:参数前面加上一个负号用于关闭该选项!

混杂模式(promiscuous mode)下的网卡能够接收所有经过它的数据流,而不论其目的地址是否是它。

实例:查看主机所有网络接口的情况

Ifconfig –a  / 包括开启和没有开启的网络接口

Ifconfig     /查看开启的网络接口

[root@localhost ~]# ifconfig ens33    //查看网卡ens33的信息

1ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

2       inet 192.168.75.100  netmask 255.255.255.0  broadcast 192.168.75.255

3       inet6 fe80::80af:49f3:b3dc:a8c9  prefixlen 64  scopeid 0x20<link>

4       ether 00:0c:29:ae:ed:83  txqueuelen 1000  (Ethernet)

5       RX packets 13625  bytes 4557052 (4.3 MiB)

6       RX errors 0  dropped 0  overruns 0  frame 0

7       TX packets 1547  bytes 152652 (149.0 KiB)

8       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

为了便于理解,下面的表格内容为上面表格内容的解释,按行序对应

1UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节

HWaddr             表示网卡的MAC 地址(Hardware Address 

inet addr           表示该网卡在 TCP/IP 网络中的IP 地址 

Bcast                 表示广播地址(Broad Address 

Mask                  表示子网掩码(Subnet Mask 

MTU                   表示最大传送单元,不同局域网类型的 MTU值不一定相同,对以太网来说,MTU 的默认设置是 1500 个字节 

Metric               表示度量值,通常用于计算路由成本 

RX                     表示接收的数据包 

TX                      表示发送的数据包 

collisions           表示数据包冲突的次数 

txqueuelen        表示传送列队(Transfer Queue)长度 

interrupt            表示该网卡的IRQ 中断号 

Base address      表示I/O 地址

3.网卡的控制命令:ifdown ifup

   ifup 网卡名:打开网卡,例如:ifup ens33

   ifdown网卡名:关闭网卡,例如:ifdown ens33

注意ifdown命令不能再xshell远程终端中单独用,不然会中断你的连接,如果是跑着业务的服务器就只能让人到机房去启动网卡了。

[root@localhost ~]#ifdown ens33

断开设备 'ens33'

[root@localhost ~]#ifconfig ens33

ip地址信息没了

[root@localhost ~]# ifup ens33

开启ens33

[root@localhost ~]#ifconfig ens33

看看有没有ip地址信息

4nmcli 命令

     nmcliredhat7或者centos7之后的命令,该命令可以完成网卡上所有的配置工作,并且可以写入配置文件,永久生效

  1. 检查网络状态,绿色表示已启用(conected),红色表示已停用(disconected),浅蓝色表示网线没插(unavailable

[root@localhost ~]# nmcli

ens33: 连接的 to ens33

        "Intel 82545EM"

virbr0: 连接的 to virbr0

        "virbr0"

lo: 未托管

        "lo"

        loopback (unknown), 00:00:00:00:00:00, sw, m

virbr0-nic: 未托管

        "virbr0-nic"

下面将常用的nmcli命令的用法写在下面表中:

nmcli connection show

查看所有网络连接

nmcli con show -active

查看激活状态的网络连接

nmcli con show ens33

查看指定网卡ens33的详细信息

nmcli device show

显示所有设备网络设备详情信息

nmcli device show ens33

显示指定网络设备ens33的详细信息

nmcli device status

显示设备的连接状态

nmcli connection up ens33

启用网卡ens33

nmcli connection down ens33

停用网卡ens33网络连接-可以被自动激活

nmcli connection modify ens33 connection.autoconnect yes

设置自动启动网卡, 实际上就是修改网卡配置文件ifcfg-ens33ONBOOT=yes

nmcli connection modify ens33 ipv4.addresses 192.168.75.147/24

实际上就是修改网卡配置文件ifcfg-ens33

IPADDR=192.168.75.147

PREFIX=24(NETMASK=255.255.255.0)

nmcli connection modify ens33 ipv4.gateway 192.168.75.2

修改网关: 实际上就是修改网卡配置文件ifcfg-ens33

GATEWAY=192.168.75.2

nmcli connection modify ens33 ipv4.dns 114.114.114.114

添加DNS: 实际上就是修改网卡配置文件ifcfg-ens33

DNS1=114.114.114.114

nmcli connection modify ens33 +ipv4.dns 1.2.4.8

添加第二个DNS

nmcli connection modify ens33 -ipv4.dns 1.2.4.8

删除第二个DNS

5、检查网卡是否连接网线的命令

mii-tool ens33     #检查网卡ens33是否插上网线

ethtool ens33      #检查网卡ens33是否插上网线的详细信息

[root@localhost ~]# mii-tool ens33

ens33: link ok

[root@localhost ~]# ethtool ens33

Settings for ens33:

           Supported ports: [ TP ]

           Supported link modes:   10baseT/Half 10baseT/Full

                                   100baseT/Half 100baseT/Full

                                   1000baseT/Full

           Supported pause frame use: No

           Supports auto-negotiation: Yes

           Supported FEC modes: Not reported

           Advertised link modes:  10baseT/Half 10baseT/Full

                                   100baseT/Half 100baseT/Full

                                   1000baseT/Full

           Advertised pause frame use: No

           Advertised auto-negotiation: Yes

           Advertised FEC modes: Not reported

           Speed: 1000Mb/s

           Duplex: Full

           Port: Twisted Pair

           PHYAD: 0

           Transceiver: internal

           Auto-negotiation: on

           MDI-X: off (auto)

           Supports Wake-on: d

           Wake-on: d

           Current message level: 0x00000007 (7)

                                       drv probe link

           Link detected: yes

小结

本章我们介绍了虚拟机的网络连接的四种方法,最好介绍了常用的网络管理命令。

作业:1.请使用nmcli命令配置dns服务器。

      2.使用nmcli命令修改IP地址、网关。

   

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐