Linux下的網絡配置方法(一)

    Linux的網絡配置方法有多種,而且隨發行版及版本而略微不同。我目前的測試環境為CentOS6和CentOS7。

    常用的網絡配置命令或方法有:ifconfig,route,netstat,ip,ss,nmcli,配置文件。

一、簡介

    ifconfig:是個比較傳統的命令,可以配置網絡接口的啟用及關閉,IP地址等等,但此命令已不被推薦使用;

    route:主要用于配置路由,已不被推薦使用;

    netstat:主要用于查看網絡狀態,也已不被推薦使用;

    ip:是個功能更全面的命令,可以管理網絡接口以及路由,可以取代ifconfig和route命令;

    ss:同netstat一樣主要用于查看網絡狀態,但能提供更多的信息;

    修改配置文件:從根本上配置網絡的方法;

    nmcli:NetworkManager command line,功能不斷得到完善的命令,主要用于管理網絡接口,WIFI,藍牙等等。

二、詳細用法

    1. ifconfig

        直接輸入ifconfig或者ifconfig -a會查看所有網絡接口的信息:

        

        開啟或關閉某個網絡接口:

[root@localhost ~]# ifconfig eno16777736 down
[root@localhost ~]# ifconfig eno16777736 up

        

        設置IP地址:ifconfig INTERFACE IP/MASK

[root@localhost ~]# ifconfig eno16777736 192.168.1.108/24

        注意:這個操作會覆蓋舊的IP;

        啟用或關閉混雜模式,用于網絡監控:

        ifconfig INTERFACE -promisc

        ifconfig INTERFACE promisc

        注意:使用ifconfig修改的內容會立即生效,但不會永久生效,若想永久生效,須修改配置文件。

    2. route 路由管理命令

        直接在shell中輸入route命令,會顯示所有路由信息:

[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.33    0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736

        使用route添加主機路由:

[root@localhost ~]# route add -host 192.168.1.3 gw 192.168.1.33 dev eno16777736
    # -host:添加主機路由;gw:gatway;eno16777736:網絡接口名;
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.33    0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736
192.168.1.3     192.168.1.33    255.255.255.255 UGH   0      0        0 eno16777736
    # 最后一條為新加的路由;

    使用route添加網絡路由:

[root@localhost ~]# route add -net 198.162.2.0/24 gw 192.168.1.33 dev eno16777736
    # -net:網絡路由;198.162.2.0/24:IP/MASK;注意添加網絡路由需要附帶子網掩碼MASK;
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.33    0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736
192.168.1.3     192.168.1.33    255.255.255.255 UGH   0      0        0 eno16777736
198.162.2.0     192.168.1.33    255.255.255.0   UG    0      0        0 eno16777736
    # 最后一條為新加;

    添加默認路由:

[root@localhost ~]# route add default gw 192.168.1.1 dev eno16777736
    # 注意使用default選項;最后應加上dev名;
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 eno16777736
    # 上一條為新加;
default         192.168.1.33    0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736
192.168.1.3     192.168.1.33    255.255.255.255 UGH   0      0        0 eno16777736
198.162.2.0     192.168.1.33    255.255.255.0   UG    0      0        0 eno16777736

    刪除一條路由:

[root@localhost ~]# route del -host 192.168.1.3
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.33    0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736
198.162.2.0     192.168.1.33    255.255.255.0   UG    0      0        0 eno16777736

    注意: route命令修改的內容也是臨時有效,重啟失效。

    3. netstat命令

        netstat命令用于查看網絡狀態,常用選項有:

            -t: 查看tcp連接

            -u:查看udp連接

            -n:以數字方式查看端口和IP

            -a:顯示所有狀態

            -l:查看處于監聽狀態的連接

            常用選項組合:

[root@localhost ~]# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 192.168.1.105:22        192.168.1.104:49415     ESTABLISHED
tcp        0     52 192.168.1.105:22        192.168.1.104:54643     ESTABLISHED
tcp        0      0 192.168.1.105:22        192.168.1.104:54637     ESTABLISHED
tcp        0      0 192.168.1.105:22        192.168.1.104:54499     ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN         
[root@localhost ~]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN     
[root@localhost ~]# netstat -uan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:68              0.0.0.0:*                          
udp        0      0 0.0.0.0:123             0.0.0.0:*                          
udp        0      0 127.0.0.1:323           0.0.0.0:*                          
udp        0      0 0.0.0.0:35178           0.0.0.0:*                          
udp6       0      0 :::123                  :::*                               
udp6       0      0 :::21826                :::*                               
udp6       0      0 ::1:323                 :::*                               
[root@localhost ~]# netstat -unl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:68              0.0.0.0:*                          
udp        0      0 0.0.0.0:123             0.0.0.0:*                          
udp        0      0 127.0.0.1:323           0.0.0.0:*                          
udp        0      0 0.0.0.0:35178           0.0.0.0:*                          
udp6       0      0 :::123                  :::*                               
udp6       0      0 :::21826                :::*                               
udp6       0      0 ::1:323                 :::*

    4. ip命令的使用方法:

        ip [ OPTIONS ] OBJECT { COMMAND | help }

            常用的OBJECT有:link,addr,route;

            每個OBJECT對應不同的COMMAND;

            可以對每個OBJECT查看其man手冊,也可以查看其幫助:

              eg:man ip link;

                 ip link help;

        ip link常用于開啟或關閉某個網絡接口,及顯示其信息:

[root@localhost ~]# ip link set dev eno16777736 up
[root@localhost ~]# ip link show dev eno16777736 
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT 
qlen 1000    link/ether 00:0c:29:df:39:4e brd ff:ff:ff:ff:ff:ff

        ip addr常用于查看IP地址,增加IP地址,刪除IP地址

[root@localhost ~]# ip addr add 192.168.1.108/24 dev eno16777736
    # 為eno16777736增加一個IP;
    # 注意使用了ip addr下的次級命令add,add后面是IP/MASK,最后是dev+網絡接口號;
[root@localhost ~]# ip addr show dev eno16777736 
    # ip addr show dev INTERFACE命令用于查看特定INTERFACE的信息;
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:df:39:4e brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.105/24 brd 192.168.1.255 scope global dynamic eno16777736
       valid_lft 4694sec preferred_lft 4694sec
    inet 192.168.1.108/24 scope global secondary eno16777736
        # 注意此條IP是新加的;
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fedf:394e/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]# ip addr del 192.168.1.108/24
    # 刪除IP,后面不帶INTERFACE參數是不能刪除IP的,因為沒有操作對象;
Not enough information: "dev" argument is required.
[root@localhost ~]# ip addr del 192.168.1.108/24 dev eno16777736
    # 此為刪除IP的正確操作;
[root@localhost ~]# ip addr show
    # 這條命令最后不帶INTERFACE參數,默認顯示所有INTERFACE的信息;
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:df:39:4e brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.105/24 brd 192.168.1.255 scope global dynamic eno16777736
       valid_lft 4599sec preferred_lft 4599sec
    inet6 fe80::20c:29ff:fedf:394e/64 scope link 
       valid_lft forever preferred_lft forever

        ip route 是路由管理命令:

[root@localhost ~]# ip route add 192.168.1.109 via 192.168.1.33
    # 使用格式1:ip route add 主機路由IP via 網關
[root@localhost ~]# ip route show
    # 查看路由;
default via 192.168.1.33 dev eno16777736  proto static  metric 100 
192.168.1.0/24 dev eno16777736  proto kernel  scope link  src 192.168.1.105  metric 100 
192.168.1.109 via 192.168.1.33 dev eno16777736 
[root@localhost ~]# ip addr add 192.168.1.108/24 dev eno16777736.
    # 添加一個IP用于測試;添加完成后本機有2個IP地址;
[root@localhost ~]# ip route add 192.168.1.111 via 192.168.1.33 src 192.168.1.108
    # 指定新加的主機路由的源IP是本機新加的IP;
    # 此為ip route add的第二種格式,最后加上了src參數;
[root@localhost ~]# ip route replace 192.168.1.109 via 192.168.1.33 src 192.168.1.105
    # 修改一個路由信息;
[root@localhost ~]# ip route add 192.168.2.0/24 via 192.168.1.33
    # 添加網絡路由;
[root@localhost ~]# ip route delete 192.168.1.111
    # 刪除一條主機路由;
[root@localhost ~]# ip route delete 192.168.2.0/24
    # 刪除一條網絡路由;

    IP命令的修改同樣也非永久有效。

    5. ss

        ss與netstat用法差不多,請自行測試吧。

(后面超過字數限制,轉接Linux下的網絡配置方法(二)。)

原創文章,作者:Jacen,如若轉載,請注明出處:http://www.www58058.com/9928

(1)
JacenJacen
上一篇 2015-12-15 22:46
下一篇 2015-12-15 22:52

相關推薦

  • 如何實現在命令行輸入pwd時顯示出ifconfig的效果

    1、使用type ifconfig 查看   2、使用type pwd 查看 如果還沒有使用過pwd則顯示如下,表示pwd屬于內部命令,然后輸入enable -n pwd 禁用這個內部命令   如果已經使用過,就會顯示hash,已經緩存過   此時就不僅需要禁用內部命令,還需要使用hash -d pwd 清除pwd的緩存,使其在…

    2017-07-13
  • 第一周作業

    一、計算機的基本組成和功能   cpu包括運算器、控制器、寄存器、緩存       運算器:計算功能,對數據進行加工處理的的部件;       控制器:負責從存儲器取出指令,控制cpu計算器之間的運行結果和狀態;       寄存器:暫存指令和數據的地方,存儲…

    Linux干貨 2016-12-04
  • 馬哥教育網絡班21期+第一周課程練習

    1、描述計算機的組成及其功能。 計算機由五大組件組成包括:計算器,控制器,存儲,輸入設備,輸出設備。 運算器:做運算,且只能做二進制運算,包括算術運算和邏輯運算,如加減乘除,移位,取模。運算器的核心是加法器。 控制器:控制整個計算機部件之間協調。比如做計算,運算器先從存儲器取數,運算器作運算,再回存存儲器。這整個過程都由控制器做協調。  &nbsp…

    Linux干貨 2016-07-12
  • bash的特性總結

    什么是bash:       shell作為用戶與計算機內核交互的接口,是用戶與計算機溝通的橋梁,而bash(borne again shell)是眾多shell里面最為流行一種,bash作為眾多shell里面的一種有著眾多的特性,掌握bash的眾多特性將會是我們今后學習linux必經之路。&nbs…

    Linux干貨 2015-10-27
  • N22-妙手 第4天視頻課程練習

    一、Globbing文件名通配練習 練習1:顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現任意一位字符的目錄 [root@localhost ~]# ls -d /var/l?[[:lower:]] /var/lib  /var/log 練習2:顯示/etc目錄下,以任意一位數字開頭…

    Linux干貨 2016-08-22
  • AB測試命令

    [root@chuangyuegou ~]# ab -n 10000 -c 49 http://192.168.0.99/index.html This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd,…

    Linux干貨 2016-12-05

評論列表(1條)

  • stanley
    stanley 2015-12-15 22:52

    介紹的很詳細,專業,贊

欧美性久久久久