C/C++教程

CentOS7下的网络配置管理

本文主要是介绍CentOS7下的网络配置管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、让配置永久有效的办法:修改配置文件

  1. 与网卡相关(课配置网卡的IP,掩码,网关,DNS)

    /etc/sysconfig/network-scripts/ifcfg-INTERFACE

ifcfg-eno.png

字段解释:

TYPE             #接口类型 常见Ethernet,Bridge
BOOTPROTO        #分配ip时候采用的协议,一般有dhcp或者static。设定为static的时候,还要提供IPADDR和NETMASK
DNS1             #在这个文件里面,我们也可以指定dns服务器,局域网内一般是填网关的ip,可以定义3个。
NM_CONTROLED     #是否由NetworkManager控制,Centos6上建议为no。
USERCTL          #是否可由用户激活该设备,建议为no
ONBOOT           #是否开机启动
PEERDNS          #如果BOOTPROTO为dhcp,是否允许dhcp服务器分配的dns服务器指向信息直接覆盖至/etc/resolv.conf

网卡命名机制

systemd对网络设备的命名方式 CentOS7

a.如果固件(Firmware)或BIOS为主板上集成的设备(即,板载设备),如eno1。如果不成立,则方案b备选生效。     #集成网卡
b.如果Firmware或BIOS为PCI-E扩展槽,如ens1。如果也不成立,则方案c备选生效。                        #独立网卡
c.如果硬件接口的物理位置拓扑信息可用,如enp2s0。如果也不成立,则方案e备选生效。                     #usb网卡
d.如果用户显式启动,也可根据MAC地址进行命名,如enx237a1dc56                                       #默认关闭
e.以上都不成立,传统命名方式,如eth0

延伸:通过配置文件来给网卡,配置多IP地址

配置文件:新建一个ifcfg-别名(注意:需要关闭NetworkManager)

如cp ifcfg-eth0 ifcfg-eth0:0

网卡别名1.png

首先我们复制一份网卡的配置,用作修改。

网卡别名2.png

接着使用vim删除一些不必要的信息,添加一行onparent=yes来表示设备附属于eno16777736

然后使用service network restart 来重启一下服务。

网络别名3.png

我们可以看见接口那里多了一个eno16777736:0,而且物理地址和eno16777736相同。

接着我们使用ping命令来尝试一个能不能使用端口连通外网

网卡别名4_ping.png

ping命令

    -c     #指定次数
    -I     #指定源ip

ssh.png

甚至ssh连上去再ping

不过需要注意的是给网卡拿多一个ip(ip别名)不支持dhcp自动获取,要手动指定静态ip。

2.路由相关的配置文件 (路由就是指路,告诉别人路怎么走)

    /etc/sysconfig/network-scripts/route-INTERFACE (route-eth0) #默认不存在
        两种定义路由的风格:
      1. Target via GW
      #要访问Target的ip,就要走GW这个网关。
      #按照格式来说的话就是,如果你的目标是Target,那么你的下一跳(via)就去找GW这个ip。
               
       2.每三行定义一条路由
       ADDRESS0=192.168.0.0
       NETMASK0=255.255.255.0
       GATEWAY0=192.168.0.1
                   
      #这三行的意思是:想要与这个网段(ipAddress+Netmask)的ip通信的话,就要从指定的网关(GATEWAY)走
      #所以就是每三条定义一个路由。

route -n.png

首先,我们使用route -n来查看当前的路由有哪些。

我们可以看见,

第一行表示,假如目标是外部网络(Destination 0.0.0.0),则走192.168.2.1这个网关(Gateway)。U表示启用,G是网关。

第二行表示,如果目的地是192.168.2.0/24的这个私有地址网段,则不需要网关。则可以进行内部通信。 

3.dns服务器指定

        /etc/resolv .conf             #最多可以出现三次,不仅可以在这里配置,也可以在网卡那里单独指定DNS服务器
        nameserver DNS_SERVER_IP1
        nameserver DNS_SERVER_IP2
        nameserver DNS_SERVER_IP3
       
resolv.conf的关键字主要有四个,分别是:
nameserver              #定义DNS服务器的IP地址
domain                #定义本地域名
search                #定义域名的搜索列表
sortlist               #对返回的域名进行排序

resolv.conf.png

因为网卡那里开启了PEERDNS,所以网卡启动的时候读取到的DNS服务器已经输入到这个文件中。

 

4.主机名相关

/etc/hostname

 

二、让配置即时(临时)生效的办法:使用命令管理

ip命令        #功能强大,可以用于替换ifconfig和nmcli

使用ip help来获得帮助。而且这个命令,可以省略输入,或者使用tab键来补全,所以忘记的时候,可以尽情地按tab键。

常用的子选项

link    #管理网络设备的

常用组合

ip link set DEVICE [ up | down ]

需要注意的是,如果把ip别名设置为down的话,整个设备都会变成down。

ip link set eno16777736:0 down

那么eno16777736这个网卡也会down掉。

在练习使用ip命令的时候,推荐直接使用虚拟机,不要用xshell等工具连接。

因为使用ip link和ip addr flush等命令会经常断线。

addr    #配置ip地址

Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ]
                                    [ CONFFLAG-LIST ]
       ip addr del IFADDR dev STRING [mngtmpaddr]
       ip addr {show|save|flush} [ dev STRING ] [ scope SCOPE-ID ]
                            [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] [up]
       ip addr {showdump|restore}
名词解释:     #|表示多选一,[]表示可选选项
IFADDR := PREFIX | ADDR peer PREFIX
          [ broadcast ADDR ] [ anycast ADDR ]
          [ label STRING ] [ scope SCOPE-ID ]
SCOPE-ID := [ host | link | global | NUMBER ]
FLAG-LIST := [ FLAG-LIST ] FLAG
FLAG  := [ permanent | dynamic | secondary | primary |
           tentative | deprecated | dadfailed | temporary |
           CONFFLAG-LIST ]
CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG
CONFFLAG  := [ home | nodad | mngtmpaddr | noprefixroute ]
LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]
LFT := forever | SECONDS

常用组合:

1.给设备添加ip,并设置ip别名。

ipaddr add IP_ADDRESS dev DEVICE label IP_ALIAS   ip别名可以通过ifconfig看到。

ip-addr-add label.png

2.删除指定的ip

ip addr del.png

3.指定并查看特定状态的设备

ipaddr show_.png

ip addr show表示显示全部设备的ip地址,可以简写成ip a。

或者用选项来筛选,如上面这条命令则是表示显示第二子网,scope类型为global的ip。

    scope 作用域(一般很少主动设置)

    global     #ip全局有效#ip在内核上,能相应外部的请求
    link      #仅配置的那个设备有相应#ip只在设备上,接受请求的网卡有这个ip才会响应,否则不会转发。
    host      #仅本机内部有有响应#ip只在本机通信中有用,就像被人ping不到我们的127.0.0.1一样

4.替换IP地址

ip-addr-replace.png

5..清空所有ip

ip addr flush dev DEVICE

ip addr flush.png

注意:连接了xshell做ip命令的练习的话,会经常断开很麻烦。

所以练习的时候还是不要用xshell,直接在虚拟机那里做试验。

 

route    #配置路由

 

常用组合:

add TARGET via GW  dev INTERFACE src SOURCE_IP    #添加路由条目
add default via GW dev INTFACE                      #设置默认网关
1.添加默认路由。

iproute default.png

这个案例中,我们可以看出只有两个私有地址地址的路由

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736
#第一条是,访问192.168.0.0/24这个网段的ip,往eno16777736这个接口走。
#第二条是,访问192.168.2.0/24这个网段的ip,往eno16777736这个接口走。
所以访问外网地址的时候,我们便无处可走。
所以要添加一条路由,访问外网要怎么走。
#添加ip route add default via 192.168.2.1 dev eno16777736则是告诉大家:
#如果不是访问上面两个私有网段的地址,则其余的都让192.168.2.1这个ip作为网关帮忙转发。

2.删除特定路由条目

iproute del.png

 

三、查看网络状态的工具

网络状态查看

1.netstat,重要!

        -n         #num,不解析域名,显示为ip状态
        -t         #显示tcp相关的状态
        -u         #显示udp相关的状态
        -l         #listen,显示状态为监听的链接
        -p         #program,显示相关进程
        -e         #扩展格式
        -r         #raw socket,裸套接字
        -a         #显示监听状态和非监听状态

常用组合:

tnl-nul.png

netstat -tnl     #把以tcp协议传输且处于监听状态的端口,以ip形式输出。
netstat -unl     #把以udp协议传输且处于监听状态的端口,以ip形式输出。

tan-uan.png

netstat -tan     #输出tcp协议的端口状态
netstat -uan     #输出udn协议的端口状态
以上命令可查看已连接的终端ip及所访问的服务,但是netstat -tnl仅仅显示服务所开端口,不显示连接情况。-tan -uan不仅显示服务所开端口,并且显示已连接终端的ip及连接状态,可用来查看是否有异常ip连入服务器。

显示路由表

    -r     #显示路由表

    -n     #ip格式

netstat-nr.png

 

2.ifconfig

-a           #什么都不加,或者-a的时候,表示显示当前所有设备的ip,包括ip别名。
DEVICE IPADDRESS     #为设备指定ip地址,立即生效。但重启网络之后还是按配置文件来。

ifconfig.png

重启网卡之后,ip别名还是取回网卡设置192.168.2.133这个ip。

 

3.nmcli    (NetworkManager的rpm安装而来) 

如果关了NetworkManager服务的话,是不能用的。

这个命令有一个很有趣的地方,就是子命令可以省略输入

nmcli.png

而且我们可以看到,这个device子命令,显示的是实体的设备。

之前配置的eno16777736:0的IP别名,在这里只会显示成设备的一个ip。

这点与ifconfig的不一样。

 

4.hostnamectl,hostname查看主机名或获得本机的IP

hostnamectl.png

 

 

原创文章,作者:菠菜,如若转载,请注明出处:http://www.178linux.com/13528

这篇关于CentOS7下的网络配置管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!