引 入


网络,是一个很大的话题。这篇文章不是介绍OSI七层模型的,也不涉及网桥,路由器等网络设备,仅仅描述的是在CentOS下一些网络相关常用命令的用法以及配置文件的配置。其他方面的知识,后面再聊,好了,开始这繁多选项的网络命令了···


ifcfg家族:  net-tools


这是一个古老的家族,通过procfs(/proc)和ioctl系统调用,访问和更改内核网络配置。centos6之后就推荐用iproute2家族来取代它,不过作为一个经典的网络系列,还是值得我们花点时间去了解的。

ifconfig:接口及地址查看和管理

ifconfig  [INTERFACE]
    ifconfig interface [aftype] options | address ...
        # ifconfig:显示激活状态的网卡接口; 
        # ifconfig -a:显示所有接口,包括未激活状态的接口;
        # ifconfig  IFACE  IP/MASK  [up|down]
            例:  启用eth0这块网卡:
                    ifconfig  eth0  up 
        # ifconfig  IFACE  IP  netmask  NETMASK  
            例: 给eth0这块网卡设置ip为1.1.1.1,子网掩码为255.0.0.0:
                    ifconfig eth0 1.1.1.1 netmask 255.0.0.

route: 路由表管理

    路由条目类型:
        主机路由:目标地址为单个IP;
        网络路由:目标地址为IP网络;
        默认路由:目标为任意网络,0.0.0.0/0.0.0.0
    查看:# route  -n
    添加:route  add  [-net|-host]  target  [netmask  Nm]  [gw GW]  [[dev] If]
        示例:
            1.新添一条通往10.0.0.0/8的路由,网关为192.168.234.1,对应网卡为eth1;
                route add -net  10.0.0.0/8  gw  192.168.234.1  dev  eth1
                或
                route add  -net  10.0.0.0/255.0.0.0  gw 192.168.234.1  
            2. 新添一条默认路由,网关为192.168.234.1
                route add  default  gw 192.168.234.1 
        删除:
        route  del  [-net|-host] target  [gw Gw]  [netmask Nm]  [[dev] If]
        示例: route  del  -net  10.0.0.0/8  gw 192.168.10.1
               route  del  default

   注意:添加路由条目时,网关必须要跟相关网卡IP在同一个网段,否则会出现Network is unreachable错误。


arp: 管理arp缓存表

查看arp表:  arp -en
添加静态arp项:  arp -s 192.168.234.100 00:0c:29:c0:5a:ef 
删除静态arp项:  arp -d 192.168.234.100

netstat:  状态及统计数据查看

显示路由表:
    netstat  -rn
        -r:显示内核路由表
        -n:数字格式
显示网络连接:
    netstat  [options]
    options:
        -t:TCP协议的相关连接,连接均有其状态;FSM(Finate State Machine);
        -u:UDP相关的连接
        -w:raw socket相关的连接
        -l:处于监听状态的连接
        -a:所有状态
        -n:以数字格式显示IP和Port;
        -e:扩展格式
        -p:显示相关的进程及PID;
常用组合:
    -tan,  -uan,  -tnl,  -unl,  -tunlp

ifup/ifdown命令:

通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;
例:ifdown eth0 + ifup eth0  <==> 读取配置文件重启eth0


iproute2家族:


这是通过网络链路套接字接口与内核进行联系。网络链路接口比/proc接口轻盈,更重要的是,例如基于源的路由、服务质量等绑定操作必须要用iproute2才能完成。所以你仍在使用net-tools,是时候改用iproute2了

ip命令:设备属性与路由管理等,功能强大--》取代ifconfig跟route

ip [ OPTIONS ] OBJECT { COMMAND | help }
     OBJECT := { link | addr | route  }
     注意: OBJECT可简写,各OBJECT的子命令也可简写;
         OBJECT:
             link:两层设备管理(物理层+链路层) 
                ip  link  set-->修改设备属性
                    dev NAME (default):指明要管理的设备,dev关键字可省略;
                    up和down:
                    multicast on或multicast off:启用或禁用多播功能;
                    name NAME:重命名接口
                    mtu NUMBER:设置MTU的大小,默认为1500;
                ip  link  show  - 显示设备属性
                ip  link  help -  显示简要使用帮助;
                
             address -->三层设备管理(物理层+链路层+ip层)
                ip address add - 添加ip
                    例:给eth1添加ip为1.1.1.1,掩码为255.0.0.0:
                        ip  addr  add  1.1.1.1/8  dev  eth1
                [label NAME]:为额外添加的地址指明接口别名;
                [broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;
                [scope SCOPE_VALUE]:
                    global:全局可用;
                    link:接口可用;
                    host:仅本机可用;
                ip addr delete - 删除ip地址
                ip addr show - 查看ip协议信息
                ip addr list  [IFACE]:显示接口的地址;
                ip addr flush 清空ip地址
                    例:清空eth0的ip
                        ip addr flush  dev  eth0
 
             route --> 路由表管理
                 ip route add - 新添路由条目
                 ip route change - 修改路由条目
                 ip route del - 删除路由条目
                 ip route replace - 修改或新添路由条目
                 ip route show - 查看路由条目
                 ip route flush dev IFACE - 清空IFACE相关的路由条目 
                 ip route get TYPE PRIFIX - 详细查看具体一条路由条目
                 ip route add  TYPE PREFIX(路由类型)  via GW  [dev  IFACE]  
                     示例:
                        新添路由条目,到192.168.0.0/24网段,通过10.0.0.1网关
                        # ip route add 192.168.0.0/24  via 10.0.0.1  dev eth1 
                        查看 192.168.0.0/24网段的详细路由条目
                        # ip route  get  192.168.0.0/24
                        
             arp -->  arp缓存表管理
                 ip neigh -- 查看arp缓存表
                 ip neigh add IP lladdr MAC dev IFACE -- 静态添加arp缓存  
                 ip neigh del IP dev IFACE --  删除静态arp项

ss:状态及统计数据查看,取代netstat

ss  [选项]  [ 过滤器 ]
    选项:
        -t:TCP协议的相关连接
        -u:UDP相关的连接
        -w:raw socket相关的连接
        -l:监听状态的连接
        -a:所有状态的连接
        -n:数字格式
        -p:相关的程序及其PID
        -e:扩展格式信息
        -m:内存用量
        -o:计时器信息
        
    过滤器 := [ state TCP-STATE ]  [ EXPRESSION ]
        TCP的常见状态 FSM:
            LISTEN:监听
            ESTABLISEHD:建立的连接
            CLOSED:关闭
        	
	EXPRESSION:
	    dport = :目标端口
	    sport = :源端口
	示例:
	    查看源端口或目标端口为22的socket连接状态
	        ~]# ss   -tan    '(  dport = :22 or sport = :22  )'
	    查看连接状态为建立的socket连接    
	        ~]# ss  -tan  state  ESTABLISHED

注:上述命令行的修改,是通过内核直接调用执行的,其效果可以立马显示出来,但它只是临时生效,当网络重启的时候就会失效,想要永久生效,就要修改配置文件,下面,我们就来说一下网络相关的配置文件。


配置文件


主机名配置文件:

/etc/sysconfig/network

Linux网络常用命令及配置文件_常用命令

配置DNS服务器指向:

/etc/resolv.conf

Linux网络常用命令及配置文件_网络_02

网卡配置文件:

/etc/sysconfig/network-scripts/ifcfg-eth2

Linux网络常用命令及配置文件_配置文件_03

注:当/etc/resolv.conf跟ifcfg-eth2都有配置DNS服务器时,会选择网卡配置的DNS服务器。

路由器配置文件:

配置方式:目的  via  网关

Linux网络常用命令及配置文件_网络_04

注:修改配置文件可以使IP,路由等相关信息永久有效,不过却要重启网络服务才能第一次生效。


重启网络命令:

CentOS6: service network restart
CentOS7: systemctl restart  network.service


后  记


Centos系的网络配置命令还是不复杂的,但如果想架构一套安全,有效的网络体系,这还得多多去学习网络相关原理,也需要一定的工作经验。网络,值得每个人去学习!


附:如对上面描述有疑问,期待与朋友您共同探讨。本人QQ:1084569767