Linux网络属性的管理

    网络属性大致包括IP地址的配置,mask(子网掩码),路由(也就是默认网关)的配置,DNS服务器的配置等。   

  配置方式有:

    静态指定:

        (1)使用命令ifcfg家族的命令:ifconfig,route,netstat

        (2)ip家族的命令: ip object{link,addr,route},ss,tc等

        (3)编辑配置文件,直接编辑不是很好看懂,系统就自己提供了工具来对配置文件进行

          编辑

           CentOS6下使用system-config-network-tui或者setup,然后会出现一个图形文

          本界面,然后按提示就可以进行设置了

          CentOS7中使用nmcli, nmtui,然后会出现一个图形文本界面,然后按提示就

          可以进行设置了 

        前两种方式的配置可以立即生效,但是不能永久保存一旦重启就会失效;只有编辑配

        置文件这个方法才能永久有效

    动态分配:使用DHCP协议

 (1)ipcfg家族的命令 (演示是在CentOS6下进行的)  

    ifconfig命令

       (a)ifconfig [interface]

            # ifconfig -a   显示多有接口的信息

            # ifconfig IFACE [up|down]  显示指明的接口的信息

       ifconfig   直接回车是显示主机所有处于活动接口的信息

        Linux网络属性的管理_CentOS中nmcli的使用

           显示指定的接口信息

           Linux网络属性的管理_ss命令的使用_02

    

        (b)ifconfig interface [aftype] options | address ...

             # ifconfig IFACE IP/mask [up|down] 配置ip地址,如果接口禁用的话,后面跟上up或down可直接启用关闭接口(CentOS6,7可使用,其他版本不确定,能不能用)

            例:ifconfig eth0 172.16.108.108/16 

              # ifconfig IFACE IP netmask MASK 

            例:ifconfig eth0 172.16.108.108 netmask 255.255.0.0

    注意:设置以后立即生效,但不会永久有效;IFACE表示接口名

        启用混杂模式:[-]promisc,还有其他选项,如果用到使用man进行查看

更改IP地址

Linux网络属性的管理_ifcfg家族命令和ip _03

关闭和开启接口

Linux网络属性的管理_CentOS中nmcli的使用_04

Linux网络属性的管理_使用配置文件设置网络属性_05

    route命令:路由管理的命令

        route -n :查看本机路由表

        route add :添加路由表

         命令格式:route add  [-net|-host]  target [netmask Nm] [gw Gw] [[dev] IFACE]  

          route del:删除路由表

           命令格式:route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] IFACE]

查看,添加

Linux网络属性的管理_Linux网络配置_06

Linux网络属性的管理_ifcfg家族命令和ip _07

添加,删除

Linux网络属性的管理_Linux网络配置_08

"[]"内的参数可以省略

还有一个常用的路由叫默认路由,就是目的ip地址为0.0.0.0 掩码也为0.0.0.0 指明网关就可以了

    route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1

    或者 route add default gw 172.16.0.1

Linux网络属性的管理_ifcfg家族命令和ip _09

    netstat命令:是网络状态查看命令,可以显示网络连接,路由表,接口信息等

        显示网络连接:

          netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]]  [--program|-p]

             -t: tcp协议相关

            -u: udp协议相关

            -w: raw socket相关

            -l: 处于监听状态

            -a: 所有状态

            -n: 以数字显示IP和端口;

            -e:扩展格式

            -p: 显示相关进程及PID

          常用组合: -tan, -uan, -tnl, -unl

      查看tcp相关的信息      

Linux网络属性的管理_ss命令的使用_10

Linux网络属性的管理_Linux网络配置_11

显示扩展信息

Linux网络属性的管理_CentOS中nmcli的使用_12

        显示路由表:

           netstat  {--route|-r} [--numeric|-n]

            -r: 显示内核路由表

       -n: 数字格式

        Linux网络属性的管理_CentOS中nmcli的使用_13

        显示接口统计数据:

           netstat  {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n] 

       # netstat -i 代表所有接口

       # netstat -I IFACE  指定一个接口,但I后面不能有空格直接跟接口名        

Linux网络属性的管理_ss命令的使用_14


    DNS服务器的指定,在/etc/resolv.conf中添加就可以了

     格式:nameserver DNS_SERVER_IP1

        nameserver DNS_SERVER_IP2

        nameserver DNS_SERVER_IP3

        Linux网络属性的管理_CentOS中nmcli的使用_15

    DNS的作用,是实现域名与IP地址之间转换的

            正解:FQDN-->IP

               # dig -t A FQDN

               # host -t A FQDN

            反解:IP-->FQDN

               # dig -x IP

                # host -t PTR IP


   (2)ip命令:

        主要作用,显示或配置 路由、设备、策略路由等

        ip命令的使用格式:

             ip [ OPTIONS ] OBJECT { COMMAND | help }

    OBJECT := { link | addr | route }

        ip link - network device configuration 对设备的管理

           set dev IFACE {up|down} 可设置属性,up and down:激活或禁用指定接口;

           show

[dev IFACE]:指定接口

[up]:仅显示处于激活状态的接口

         Linux网络属性的管理_CentOS中nmcli的使用_16

Linux网络属性的管理_Linux网络配置_17

        ip address - protocol address management

            ip addr { add | del } IFADDR dev STRING  添加或删除ip地址

   [label LABEL]:添加地址时指明网卡别名

   [scope {global|link|host}]:指明作用域,一般默认,默认为global

      global: 全局可用;link: 仅链接可用;host: 本机可用;

   [broadcast ADDRESS]:指明广播地址

ip address show - look at protocol addresses  查看地址

    [dev DEVICE]

    [label PATTERN]

    [primary(主地址) and secondary(辅助地址)] 

         ip address flush - flush protocol addresses  清空地址

使用格式同show

ip addr add 172.16.100.123/16 dev eth0 是添加一个ip地址,不删除原有ip地址

Linux网络属性的管理_ss命令的使用_18删除原有ip地址

Linux网络属性的管理_使用配置文件设置网络属性_19

添加地址时,还可以指定标签;删除这个地址时也要指明标签

Linux网络属性的管理_ifcfg家族命令和ip _20        ip route - routing table management

         ip route add

添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP

TARGET:目的网络,或目的IP

主机路由:IP 要么不加掩码,要加了就是/32即255.255.255.255

网络路由:NETWORK/MASK

添加默认路由(网关):ip route add defalt via GW dev IFACE

ip route delete

   删除路由:ip route del TARGET

ip route show  查看路由信息

 ip route flush  清空路由表

   [dev IFACE]

   [via PREFIX]

Linux网络属性的管理_CentOS中nmcli的使用_21

Linux网络属性的管理_ss命令的使用_22

   ss命令:网络状态的命令,与netstat命令一样,使用格式也是类似的,但当连接的主机多的情况下使用ss查看效率更高

      格式:ss [OPTION]... [FILTER]

       选项:

    -t: tcp协议相关

-u: udp协议相关

-w: 裸套接字相关

-x:unix sock相关

-l: listen状态的连接

-a: 所有

-n: 数字格式

-p: 相关的程序及PID

-e: 扩展的信息

-m:内存用量

-o:计时器信息

 FILTER := [ state TCP-STATE ] [ EXPRESSION ]  可以指明格式查看

        EXPRESSION:

    dport = 

sport = 

 示例:’( dport = :ssh or sport = :ssh )’

Linux网络属性的管理_使用配置文件设置网络属性_23

  (3)编辑配置文件

    IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE

路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE,默认不存在,需要手动创建route-IFACE

    /etc/sysconfig/network-scripts/ifcfg-IFACE:

    DEVICE:此配置文件应用到的设备;

HWADDR:对应的设备的MAC地址;

BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;

NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”;

ONBOOT:在系统引导时是否激活此设备;

TYPE:接口类型;常见有的Ethernet, Bridge;

UUID:设备的惟一标识;

IPADDR:指明IP地址;

NETMASK:子网掩码;

GATEWAY: 默认网关;

DNS1:第一个DNS服务器指向;

DNS2:第二个DNS服务器指向;

USERCTL:普通用户是否可控制此设备;

PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;

/etc/sysconfig/network-scripts/ifcfg-eth0 原有的信息

Linux网络属性的管理_ss命令的使用_24

手动编辑后

Linux网络属性的管理_ifcfg家族命令和ip _25

修改完,远程连接会中断,然后进入虚拟机中,使用service network reastart重启网络服务后就会生效

Linux网络属性的管理_ifcfg家族命令和ip _26这就修改策成功了

查看下DNS的配置文件,会发现我们修改的生效了

Linux网络属性的管理_ifcfg家族命令和ip _27


/etc/sysconfig/network-scripts/route-IFACE

两种风格:

    (1) TARGET via GW


(2) 每三行定义一条路由

ADDRESS#=TARGET

NETMASK#=mask

GATEWAY#=GW

在/etc/sysconfig/network-scripts这个目录下,创建并编辑一个名为route-eth0

Linux网络属性的管理_使用配置文件设置网络属性_28

然后保存退出,使用route -n查看发现也没有生效,需要重启下网络服务就可以生效了

Linux网络属性的管理_CentOS中nmcli的使用_29

配置文件可以写成下面那种形式,(在远程连接下,修改很容易掉线,建议在虚拟机下配置)

Linux网络属性的管理_ss命令的使用_30

重新启动网络服务,就可以上生效了

Linux网络属性的管理_Linux网络配置_31


 给网卡配置多地址:

ifconfig:

   ifconfig IFACE_ALIAS 

ip

   ip addr add 

配置文件:

  ifcfg-IFACE_ALIAS  

 DEVICE=IFACE_ALIAS  

    IFACE_ALIAS:网卡别名

使用ifconfig为一个网卡设置所个地址,

Linux网络属性的管理_ifcfg家族命令和ip _32

不会永久有效,要想永久有效,需要编辑配置文件

也可以使用命令system-config-network-tui或者setup命令

system-config-network-tui

Linux网络属性的管理_ss命令的使用_33

显示出这样的界面,然后根据提示就可以修改或者创建网络配置

setup

Linux网络属性的管理_CentOS中nmcli的使用_34

然后选择Network configuration,进入就是system-config-network-tui命令进入的界面了

Linux网络属性的管理_ifcfg家族命令和ip _35

CentOS7上的网络配置工具处了ifcfg,ip 还有nmcli命令,CentOS7中的图形配置tui工具使用nmtui命令,

Linux网络属性的管理_CentOS中nmcli的使用_36

根据提示就可以配置网络

CentOS7下的网络设备的命名不同,修改下/etc/default/grub 在里面GRUB_CMDLINE_LINUX这一行里加入net.ifnames=0;然后使用grub2-mkconfig -o /etc/grub2.cfg然后重启系统就可以了,设备名成为eth0了

Linux网络属性的管理_使用配置文件设置网络属性_37

 

     nmcli  [ OPTIONS ] OBJECT { COMMAND | help }

        device - show and manage network interfaces 

            管理设备的类似于ip的link

            nmcli device show eth0显示eth0的信息,里面的参数要使用到

使用nmcli device help查看就可以了,

        connection - start, stop, and manage network connections

            ip地址的添加等,类似于ip的addr

显示设备的信息,

Linux网络属性的管理_使用配置文件设置网络属性_38

查看eth0网络设备的信息

Linux网络属性的管理_ifcfg家族命令和ip _39


    connection可简写为c

    修改IP地址等属性:

        #nmcli connection modify IFACE [+|-]setting.property value

            setting.property:

            '+'表示增加一个,'-'表示删除,不带表示替换原来的配置

                ipv4.addresses  修改地址

                ipv4.gateway  修改网关

                ipv4.dns1   修改DNS

                ipv4.method  IP地址的配置方式(dhcp,manual手动)

                    

使用命令修改网络属性时会出错,这是我们让网络设备重新使用名称时,没有修改/etc/sysconfig/network-scripts/目录下的ifcfg-eno16777736,需要重命名为ifcfg-eth0然后进行修改成下图的内容,然后重启网络服务就行了

Linux网络属性的管理_Linux网络配置_40

CentOS7下使用这个命令重启网络服务systemctl restart network,(如果你里面配置的地址和你远程连接的地址不同,远程连接会断掉)

Linux网络属性的管理_使用配置文件设置网络属性_41

使用这个nmcli connection modify eth0 +ipv4.addresses 172.16.100.12/16命令增加地址

这个时候还不会生效,需要把接口断开再连接就可以了

Linux网络属性的管理_CentOS中nmcli的使用_42


断开重启,使用nmcli con down eth0;nmcli con up eth0

添加网关和DNS

Linux网络属性的管理_ifcfg家族命令和ip _43