网络配置的常用工具

一、网络配置的常用工具

    例如:

               ifcfg:ifconfig、route、netstat

                ip:object [link、addr、route]、ss、tc

                system-config-network-tui(图形界面)

    centos 7:独有的网络配置工具

                nmcli、nmtui、nm-connection-editor

    下面来对上面所述的常见命令进行详细讲解:

    ifconfig命令:

         ifconfig interface [options]

        功能:可用于修改IP地址、掩码、mtu、广播地址等信息,也可禁用或启用网卡

        常用组合:

                ifconfig:仅显示启用的网卡

                ifconfig -a:显示所有网卡,包括不启用的

                ifconfig eth0 192.168.1.100:修改eth0的IP地址

                    注意:此处后面不加任何参数,则系统会依照IP所在的范围自动计算出掩码及广播地址等IP参数

                ifconfig eth0:0 192.168.1.200:在网卡上面再添加设备别名,多加一个IP地址

                    注意:ifconfig 添加IP地址只能使用别名,不能直接添加,但IP命令可以

                        必须使用静态联网,也可更改配置文件:

                        DEVICE=eth0:0

                        IPADDR=10.10.10.10

                        NETMASK=255.0.0.0

                        ONPARENT=yes 物理网卡启动就启动                    

                ifconfig eth0 up:启用网卡

                ifconfig eth0 down:禁用网卡

                ifconfig eth0 192.168.1.100 netmask 255.255.255.0 mtu 1500

                ifconfig eth0 192.168.1.100/24.0 mtu 1500   

             注意:上述命令执行完,立即生效,但不会永久有效,如果想永久有效可以配置etc/sysconfig/network-scripts/ifcfg-ethx文件,配置完重启服务即可。

    

    route命令:

            功能:配置路由表,增加删除路由路由表中的条目。

            常用组合:

                route -n:以数字格式显示路由信息,不用反解

                route add [-net|host] target [netmask 掩码][gw 网关][dev 接口名]

                route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1

                    添加一个路由条目到达10.0.0.0/8

                route add -net default gw 192.168.1.1 dev eth1

                route add -net 0.0.0.0/0.0.0.0 gw 192.168.1.1 dev eth1

                    添加默认网关

                route del -net 10.0.0.0/8 :删除网络

                route del -net default gw 192.168.1.1:删除网关

                route del defalut :删除网关

        root@cenots6.8  ~ # route -n
        Kernel IP routing table
        Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
        10.1.0.0        0.0.0.0         255.255.0.0     U     0      0        0 eth1
        169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth1
        0.0.0.0         10.1.0.1        0.0.0.0         UG    0      0        0 eth1
        
        目标网络        网关            子网掩码   U:已启用 G:网关             经过的网卡

                注意:如果gw处显示是0.0.0.0表示该路由是直接本机传送,也就是说通过局域网的mac直接发送,若果显示ip的话,表示该路由需要经过路由器(网关)的帮忙发送出去 

            配置文件:/etc/sysconfig/network-scripts/route-IFACE

                上述配置过程也是临时生效,不会永久有效,可通过配置使其永久有效,路由配置文件默认是不存在的,需要手动创建,具体格式如下:

                (1) TARGET via GW
                    10.0.0.0/8 via 172.16.0.1
                (2) 每三行定义一条路由
                    ADDRESS#=TARGET
                    NETMASK#=mask
                    GATEWAY#=GW

    ip命令:

            ip object :{ link | addr | route | netns }

             ip link set [dev] eth0

            功能:显示设备信息、启用或禁用网卡和多播、更改网卡名称等

                ip link set [dev] eth1 down:禁用网卡

                ip link set [dev] eth1 up:启用网卡

                ip link set eth1 name eno1234567:更改网卡名称

                ip link eth1 multicast on|off:启用或禁用多播功能

                ip link show [ethX]:显示设备信息

        

        ip addr {add|del|show|flush}   

        功能:添加、删除、显示IP地址

         增:

                  ip addr add 192.168.1.102/24 dev eth1

                  ip addr list eth1可以看到是secondary eth1

                  ip addr add 10.0.10.100/8 dev eth1  在添加一个地址

                  ip addr list eth1 可以看到不是third 而是global eth1 (因为不在同一个网络)

            删:

               ip daddr del 192.168.1.102/24 dev eth1

               ip addr flush dev ethXXX :清空IP地址

         查:

                  ip addr show [ethXXX]

        

        ip route {add|chage|replace}

        功能:

         增:

               ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1 

                    要想到达192,168.0.0这个网络地址要经由10.0.0.1这个网关

                  ip route add 192.168.1.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100

                  ip route add default via 172.16.0.1 dev eth0 添加默认路由

         删:

                  ip route delete 192.168.1.0/24

               ip route flush dev eth0

         查:

               ip route show|list

               ip route show src 192.168.1.100

                  ip route get 192.168.1.0/24

    nmcli命令:

         NetworkManager是管理和监控网络设置的守护进程

          设备即网络接口,连接是对网络接口的配置,一个网络接口可以有多个连接配置,但同时只有一个连接配置生效。

         显示所有包括不活动的连接:

                nmcli con show

         显示所有活动连接

                nmcli con show –active

         显示网络连接配置

                nmcli con show "System eth0"

         显示设备状态

                nmcli dev status

         显示网络接口属性

                nmcli dev show eno16777736

         创建新连接default,IP自动通过dhcp获取

                nmcli con add con-name default type Ethernet ifanme eth0

         删除连接

                nmcli con del default

         创建新的static,指定静态IP,不自动连接

                nmcli con add con-name static ifname eth0 autoconnect no type Ethernet ip4 172.25.X.10/24 gw

172.25.X.254

         启用static连接配置

                nmcli con up static

         启用default连接配置

                nmcli con up default

         查看帮助

                nmcli con add help

        修改连接设置

                nmcli con mod“static” connection.autoconnect no

                nmcli con mod “static” ipv4.dns 172.25.X.254

                nmcli con mod “static” +ipv4.dns 8.8.8.8

                nmcli con mod “static” -ipv4.dns 8.8.8.8

                nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”

                nmcli con mod “static” +ipv4.addresses 10.10.10.10/16

        nmcli与配置文件的对应关系

            

1.png

         修改连接配置后,需要重新加载配置

                nmcli con reload

                nmcli con down "system eth0"可被自动激活

                nmcli con up "system eth0"

                nmcli dev dis eth0 禁止网卡,防止为自动激活 

    

    网络组Network Teaming:

        网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量

        网络组不同于旧版中bonding技术,提供更好的性能和扩展性

        网络组由内核驱动和teamd守护进程实现.

            但实践证明,没有bonding稳定。

        

        多种方式    

                runner

                broadcast

                roundrobin

                activebackup

                loadbalance

                lacp (implements the 802.3ad Link Aggregation Control Protocol)

        注意:

          启动网络组接口不会自动启动网络组中的port接口

           启动网络组接口中的port接口不会自动启动网络组接口

           禁用网络组接口会自动禁用网络组中的port接口

           没有port接口的网络组接口可以启动静态IP连接

           启用DHCP连接时,没有port接口的网络组会等待port接口的加入


        创建网络组接口:

                nmcli con add type team con-name CNAME ifname INAME [config JSON]

                    CNAME 连接名, INAME 接口名,JSON 

                    指定runner方式

                    格式: '{"runner": {"name": "METHOD"}}'

                    METHOD 可以是broadcast, roundrobin,activebackup, loadbalance, lacp

        创建port接口:

                nmcli con add type team-slave con-name CNAME ifname INAME master TEAM

                    CNAME 连接名

                    INAME 网络接口名

                    TEAM 网络组接口名

                连接名若不指定,默认为team-slave-IFACE

                nmcli dev dis INAME

                nmcli con up CNAME

I                    NAME 设备名 CNAME 网络组接口名或port接口

        应用实例:            

                nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name"activebackup}}'

                     cd /etc/sysconfig/network/ 目录下可以看到ifcfg-team0文件

                nmcli connection modify team0 ipv4.addresses 10.1.252.213/16

                nmcli connection modify team0 ipv4.method manual 指定BOOTPROTO=none

                nmcli connection modify team0 ipv4.dns 8.8.8.8 ipv4.gateway 10.1.0.1

                nmcli connection add con-name team0-eth0 type team-slave ifname eth0 master team0

                nmcli connection add con-name team0-eth1 type team-slave ifname eth1 master team0

                nmcli connection up team0-eth0

                nmcli connection show

                teamdctl team0 state


二、显示网络连接状态

    常用命令:netstat、ss

    

    netstat:

        显示路由信息:netstat -rn = route -n

                -r:显示内核路由表

                -n:数字格式

        显示网络连接:

               选项:

                  -t:查看tcp协议的连接

                   -u:显示udp协议的连接

                   -l:显示正在监听的连接,不加l是显示已建立的连接

                   -n:以数字的格式显示

                   -a:显示所有的

                   -w:裸套接字相关的连接

                   -e:扩展格式

                   -p:显示PID

        显示接口信息:

                netstat -i

                netstat -I=ethXXX

                ifconfig -s ethXXX

                    例如:watch -n1 'netstat -I=eth1' 一秒钟刷新一次,网络接收和发送数据包的状态

                   可配合ping -f IPaddr 查看状态(ping -a ipaddr 可以解析到主机名)

    ss命令:

        netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息,因此ss性能要优netstat命令。

                格式:ss [option]…[filter]

                选项:

                      -t:tcp相关的连接

                      -u:udp相关的连接

                      -w:raw socket 相关的连接    

                       -l:监听状态的连接

                       -a:所有状态的连接

                      -p:先关的程序及其PID号

                      -e:扩展格式信息

                      -m:内存用量

                      -o:计时器信息

                filter:[state TCP-state][expression]

                     listen

                     established

                     fin_wait_1

                     fin_wait_2

                     syn_sent

                     syn_recv

                     closed

                 表达式:

                     dprot =

                     sport =   

                 例如:'( dport = :22 or sport = :22  )'        

                 应用举例:

                    ss -l 显示本地打开的所有端口

                    ss -pl 显示每个进程具体打开的socket

                    ss -t -a 显示所有tcp socket

                    ss -u -a 显示所有的UDP Socekt

                    ss -o state established '( dport = :ssh or sport = :ssh )' 显示所有已建立的ssh连接

                    ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接

                    ss -s 列出当前socket详细信

三、配置主机名

            centos 6 :

                 显示主机名:hostname

                 修改主机名:hostname Name 临时生效

                        修改配置文件:/etc/sysconfig/network

            centos 7 :

                  显示主机名:hostname、hostnamectl、hostname status

                  修改主机名:hostname set-hostname Name 永久有效

                        修改配置文件:/etc/hostname

            

四、网卡名称:

            centos 6:

                 配置文件:/etc/udev/rules.d/70-persistent-net.rules 

                    注意:这个文件中的网卡名要与网卡配置文件中保持一致,否则会报错

            centos 7:

                可以将en######的命名方式还原为ethX,方法如下:

                     1、编辑/etc/default/grub配置文件GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"或修改/boot/grub2/grub.cfg

                     2、为grub2生成其配置文件grub2-mkconfig -o /etc/grub2.cfg

                     3、重启系统

    

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

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-10 11:34

    对网络管理工具用法总结的很完善,建议多操作,熟练运用。