1. 程式人生 > >11-ip命令與網路配置檔案

11-ip命令與網路配置檔案

在我們配置linux網路屬性的時候,有一個非常常用的命令,就是ip命令。如何瞭解這個命令?通過rpm -qf 'which ip',檢視ip命令由哪個包安裝,通過rpm -ql iproute,檢視iproute安裝生成的檔案。

ip命令常用的形式和引數
        ip - show / manipulate routing, devices, policy routing and tunnels

        ip [ OPTIONS ] OBJECT { COMMAND | help }

            OBJECT := { link | addr | route }

        link OBJECT

            ip link - network device configuration
                set 
                    dev IFACE
                    可設定屬性
                        up and down:啟用或禁用指定介面
                    ip link set dev eth0 down
                show 當前物理介面的狀態 mtu最大傳輸單元
                    [dev IFACE]:指定介面
                    [up]:僅顯示處於啟用狀態的介面

            ip addr

                ip addr { add | del } IFADDR dev STRING
                    [label LABEL]:新增地址時指明網絡卡別名
                    [scope {global|link|host}]:指明作用域
                        global:全域性有效
                        link:僅連結可用
                        host:本機可用
                    [broadcast ADDRESS]:指明廣播地址
                ip addr show dev eth0
                例項:ip addr add 172.16.100.13/16 dev eth0,在原來的基礎上新增

                例項:ip addr replace 172.16.100.14/16 dev eth0,沒有指定替換會變成新增

                例項:ip addr del 172.16.100.14/16 dev eth0,刪除地址

                例項:ip addr add 172.16.100.13/16 dev eth0 label 'eth0:0'
                ip addr show顯示在eth0中
                ifconfig會單獨顯示別名介面資訊
                例項:ip addr del 172.16.100.13/16 dev eth0 label eth0:0

                ip addr show - look at protocol addresses
                    [dev DEVICE]
                    [label PATTERN]
                    [primary secondary]
                例項:ip addr show dev eth0 to 172.16
                例項:ip addr add 172.16.100.13 dev eth0 label eth0:0
                例項:ip addr show dev eth0
                例項:ip addr show dev eth0 primary
                例項:ip addr show dev eth0 secondary

                ip addr flush - flush protocol addresses
                    使用格式同show
                ip addr flush dev eth0 label eth0:0

        ip route - routing table management
            ip route add
                例項:ip route add 192.168.1.3 via 172.16.0.1 dev eth0
                通過ip route show檢視效果
                例項:ip route add 192.168.0.0/24 via 172.16.0.1
                通過ip route show檢視效果


                新增路由: ip route add TARGET via GW dev IFACE src SOURCE_IP
                    TARGET:
                        主機路由:IP
                        網路路由:NETWORK/MASK

                    新增閘道器:ip route add default via GW dev IFACE


            ip route delete
                刪除路由:ip route del TARGET
                    例項:ip route del 192.168.1.3
                    通過ip route show檢視
                    或者ip route list檢視
                    例項:ip route del 192.168.0.0/24
                    通過ip route list檢視
                    例項:ip route add default via 172.16.0.1
                    通過ip route list檢視
                    或者route -n檢視
                    例項:ip route del default
                    通過route -n檢視


            ip route show,主要用於檢視路由的相關資訊。

            
            ip route flush
                [dev IFACE]
                [via PREFIX]

    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]

            TCP的常見狀態
                tcp finite state machine
                tcp的有限狀態機
                LISTEN:監聽
                ESTABLISHED:已建立的連線,正在通訊中的連線
                FIN_WAIT_1
                FIN_WAIT_2
                SYN_SENT
                SYN_RECV

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

            常用組合
                -tan -tanl -tanlp -uan

            ss -tan
            ss -tan state ESTABLISHED
            ss -tan state LISTEN


修改配置檔案進行網路配置的方式

    IP MASK GW DNS相關配置檔案:/etc/sysconfig/network-scripts/ifcfg-IFACE
    路由相關的配置檔案:/etc/sysconfig/network-scripts/route-IFACE

    /etc/sysconfig/network-scripts/ifcfg-IFACE支援的指令和引數
        DEVICE:此配置檔案應用到的裝置
        HWADDR:對應裝置的MAC地址
        BOOTPROTO:啟用此裝置時使用的地址配置協議,常用的dhcp,static,none,bootp
        NM_CONTROLLED:NM是networkmanager的簡寫,此網絡卡是否接受NM控制,centos6建議為no
            /etc/rc.d/init.d/network(不支援橋接和多播) /etc/rc.d/init.d/NetworkManager
        ONBOOT:在系統引導時是否啟用此裝置
        TYPE:介面型別:常見的有Ethernet,Bridge
        UUID:裝置的唯一標識
        IPADDR:指明IP地址
        NETMASK:子網掩碼
        GATEWAY:預設閘道器
        DNS1:第一個DNS伺服器指向
            此處優先於/etc/resolov
        DNS2:第二個DNS伺服器指向

        USERCTL:普通使用者是否可控制此裝置
        PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns伺服器指向資訊直接覆蓋至/etc/resolov.conf檔案中的內容

            通過route -n檢視,會發現配置檔案修改後, 沒有立即生效
            通過ifconfig eth0 down,然後 ifconfig eth0 up發現生效
            或者service network restart也可以生效
            /etc/rc.d/init.d/network restart和上面的命令效果是一樣的

路由的配置檔案

            通過修改在/etc/sysconfig/network-scripts/route-IFACE
            兩種風格:
            (1)TARGET via GW
            例項:vim route-eth0
                      192.168.0.0/24 via 172.16.0.1
                      route -n檢視發現並沒有生效
                      service network restart,發現正式生效
                (2)每三行定義一條路由
                ADDRESS#=TARGET
                NETMASK#=mask
                GATEWAY#=GW
                例項:vim route-eth0
                    ADDRESS0=192.16.20.0
                    NETMASK0=255.255.255.0
                    GATEWAY0=172.16.0.1
                    ADDRESS1=192.16.30.0
                    NETMASK1=255.255.255.0
                    GATEWAY1=172.16.0.1

給網絡卡配置多地址
        ifconfig
            ifconfig IFACE_ALIAS
            例項:ifconfig eth0:0 192.168.0.22/24 up
            ping 192.168.0.22,發現生效
            但是service network restart 就沒了
        ip
            ip addr add
        配置檔案
            ifcfg-IFACE_ALIAS
                DEVICE=IFACE_ALIAS

        注意:閘道器別名不能使用dhcp協議引導

網路屬性配置tui(text user interface)
    system-config-network-tui
    不會立即生效,重啟網路才會生效
    也可以使用setup找到
    注意:記得重啟網路服務方能生效

配置當前主機的主機名
    hostname [HOSTNAME]
    /etc/sysconfig/network
    HOSTNAME=
    不會立即生效,重啟後才會生效
    NETWORKING引數,整個系統接入網路的總開關

網路介面識別並命名相關的udev配置檔案
    /etc/udev/rules.d/70-persistent-net.rules

    解除安裝網絡卡驅動
        modprobe -r e1000
    裝載網絡卡驅動
        modprobe e1000

例項:將eth0,eth1兩個配置互換
        在70-persistent-net.rules中有相關資訊
        可以通過lsmod檢視資訊
        發現網絡卡驅動,然後將網絡卡驅動拆掉, modprobe -r e1000
        重新裝上,modprobe e1000