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协议的端口状态

显示路由表

    -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

(1)
菠菜菠菜
上一篇 2016-03-27
下一篇 2016-03-28

相关推荐

  • Linux进程与计划任务

    Linux进程与计划任务 linux进程及作业管理 进程 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等特权操作模式切换(理想状态):70%CPU时间用户模式+30%CPU时间内核模式进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的存在生命周期的基本单位,是操作系统结构的基础。在早期…

    Linux干货 2016-09-23
  • 搭建SSH服务器

    Linux 远程登录服务:sshSSH是标准的网络协议,可用于大多数UNIX操作系统,能够实现字符界面的远程登录管理,它默认使用22号端口,采用密文的形式在网络中传输数据,相对于通过明文传输的Telnet,具有更高的安全性。SSH提供了口令和密钥两种用户验证方式,这两者都是通过密文传输数据的。不同的是,口令用户验证方式传输的是用户的账户名和密码,这要求输入的…

    Linux干货 2017-07-24
  • shell脚本编程初步

    shell脚本编程初步    随着课程学习的深入,我们已经学习了一些常用的命令,会去解决了一部分简单的问题,但是这不能满足复杂的工作,它可以帮助我执行自动化的常用命令、执行系统管理和故障排除、创建简单的应用程序、处理文本或文件。所以我们开始了shell脚本的编程,帮助我们更好的去完成工作。简单地说,shell编程相当于帮我们之前…

    Linux干货 2016-08-15
  • Linux基础之加密通讯过程详解

    加密通讯过程详解 第一阶段 客户端->服务器端 向服务器声明自己的加密通讯协议版本,ssl或者tls 支持的加密算法 支持的压缩算法 第二阶段 服务器端->客户端 向客户端确认使用的加密通讯协议版本 确认的加密方法 确认压缩方法 服务器端证书 第三阶段 客户端->服务器端 客户端验证服务器端证书 发证机构 证书完整性 证书持有者 证书有效期…

    2017-09-16
  • Homework Week-10 CentOS启动相关及bash脚本编程

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区;   (1) 为硬盘新建两个主分区;并为其安装grub;   (2) 为硬盘的第一个主分区提供内核和ramdisk文件; 为第二个分区提供rootfs;   (3) 为rootfs提供…

    Linux干货 2016-10-24
  • vim实用技能

    vim编辑器 简介 vi: Visual Interface,文本编辑器 文本:ASCII, Unicode 文本编辑种类: 行编辑器: sed 全屏编辑器:nano, vi VIM – Vi IMproved 使用 vim:模式化的编辑 基本模式: 编辑模式,命令模式 输入模式 末行模式: 内置的命令行接口 打开文件: # vim [OPTIO…

    Linux干货 2018-01-16