首頁 > 軟體

Linux網路屬性設定詳解

2020-06-16 17:18:56

一、網路屬性概述

    在計算機網路中,某台主機要想接入網路實現通訊的話,一般要設定IP地址、子網掩碼、閘道器、DNS伺服器地址等屬性。其中IP地址是主機在網際網路上的邏輯地址,通過IP地址可定位網際網路上的某一台主機以實現網路的三層通訊;而子網掩碼與IP地址按位元進行“與”運算得到主機所在網段地址,可快速確定使用者主機所在網路(網段)。設定了IP地址和子網掩碼,就可以實現本地通訊了,此外實現本地通訊還需要主機的MAC地址,因為IP地址之間的通訊最終要對映到MAC地址才能完成,而MAC地址一般在廠商生產時就提供了,且不可改變。能夠實現本地通訊之後,如果要跨網路與網際網路上的其他主機通訊,則需要(預設)閘道器,通過閘道器可以將本地主機的資料包文傳送出去並將外網的封包接收返回本地區域網的某台主機。在此基礎上,指向DNS伺服器地址可實現基於主機名通訊,例如,使用者要存取網站只要鍵入主機名(例如:www.baidu.com)即可,而不需要知道網際網路上各個伺服器的IP地址。

    以下介紹在Linux上設定網路屬性以實現將Linux主機接入網路中。

二、網路介面的命名方式:

(1)傳統命名:

乙太網:ethX,例如:eth0, eth1, ...
PPP網路:pppX,例如:ppp0, ppp1, ...

(2)可預測的命名方案(CentOS 7):

基於Fireware、拓撲結構支援多種不同的命名方案:

①如果Fireware或BIOS為主機板上整合的裝置提供索引資訊可用,則根據此索引進行命名,如:eno1,
 eno2, ...
②如果Fireware或BIOS為PCI-E擴充套件槽所提供的索引資訊可用,且可預測,則根據此索引進行命名,
如ens1, ens2, ...
③如果硬體介面的物理位置資訊可用,則根據此資訊命名,如enp2s0, ...
④如果使用者顯示定義,也可根據MAC地址命名,例如:enx122161ab212
#上述均不可用時,則仍使用傳統方式命名;

命名格式的組成:

en:ethernet
wl:wlan    #無線區域網
ww:wwan    #無線廣域網

名稱型別:

o<index>    #整合裝置的裝置索引號;
s<slot>     #擴充套件槽對的索引號;
x<MAC>          #基於MAC地址的命名;
p<bus>s<slot>   #基於匯流排及槽的拓撲結構進行命名;

二、網路屬性設定

實現網路屬性設定的兩種方式:

  1. 命令列設定(ifcfg家族,iproute家族,nm家族)

  2. 組態檔

  3. 文字圖形化設定

命令列設定:

ifcfg家族相關命令:ifconfig, iproute, netstat

iproute家族相關命令:ip, ss

nm家族相關命令:nmcli, nmtui

這裡先介紹ifcfg家族相關命令。

ifconfig命令:

    ifconfig可用於檢視和設定網路介面的屬性。

ifconfig命令用法:

    ifconfig [-v] [-a] [-s] [interface]

    ifconfig [-v] interface [aftype] options | address ...

常用選項:

    [-]promisc:開啟或關閉混雜模式;

範例:

檢視當前處於啟用狀態的網路介面資訊:

[root@localhost ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        從flags可知該介面已啟用,支援廣播、組播,mtu值
        inet 10.10.10.140  netmask 255.255.255.0  broadcast 10.10.10.255
        IPv4地址           子網掩碼               廣播地址
        inet6 fe80::20c:29ff:fec8:ff4e  prefixlen 64  scopeid 0x20<link>
        IPv6地址                        掩碼長度      作用域,link表示僅該介面有效
        ether 00:0c:29:c8:ff:4e  txqueuelen 1000  (Ethernet)
        網絡卡介面的MAC地址        傳輸佇列長度     介面型別為Ethernet
        RX packets 266  bytes 26083 (25.4 KiB)
        上行表示此介面接收的報文個數,總位元組數
        RX errors 0  dropped 0  overruns 0  frame 0
        接收報文錯誤數,丟棄數,溢位數,衝突的幀數
        TX packets 141  bytes 20086 (19.6 KiB)
        上行表示此介面傳送的報文個數,總位元組數
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        傳送報文錯誤數,丟棄數,溢位數,載荷數,衝突數
         
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

如果要顯示所有網絡卡介面的資訊(包括未啟用的網絡卡介面),則可加上-a選項:

[root@localhost ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.10.140  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fe80::20c:29ff:fec8:ff4e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c8:ff:4e  txqueuelen 1000  (Ethernet)
        RX packets 318  bytes 30857 (30.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 192  bytes 24612 (24.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
ens38: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 00:0c:29:c8:ff:58  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 

可以顯示指定網絡卡介面的資訊:

[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.10.140  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fe80::20c:29ff:fec8:ff4e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c8:ff:4e  txqueuelen 1000  (Ethernet)
        RX packets 341  bytes 32973 (32.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 214  bytes 28076 (27.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

給未啟用的網絡卡ens38設定IP地址,設定後即可啟用:

[root@localhost ~]# ifconfig ens38 192.168.10.1/24 up
[root@localhost ~]# ifconfig ens38
ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500    #UP表示已啟用
        inet 192.168.10.1  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::20c:29ff:fec8:ff58  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c8:ff:58  txqueuelen 1000  (Ethernet)
        RX packets 1  bytes 60 (60.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 648 (648.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

需要注意的是,上述設定IP地址是以掩碼長度進行設定的,也可直接寫出掩碼設定IP地址:

[root@localhost ~]# ifconfig ens38 192.168.10.1 netmask 255.255.255.0 up

可開啟混雜模式:

[root@localhost ~]# ifconfig ens33 promisc
[root@localhost ~]# ifconfig ens33
ens33: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
                                       混雜模式已開啟
        inet 10.10.10.140  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fe80::20c:29ff:fec8:ff4e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c8:ff:4e  txqueuelen 1000  (Ethernet)
        RX packets 762  bytes 71714 (70.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 538  bytes 65928 (64.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

關閉混雜模式:

[root@localhost ~]# ifconfig ens33 -promisc
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500    #混雜模式已關閉
        inet 10.10.10.140  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fe80::20c:29ff:fec8:ff4e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c8:ff:4e  txqueuelen 1000  (Ethernet)
        RX packets 836  bytes 78408 (76.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 593  bytes 72218 (70.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 

ifup/ifdown命令:開啟/禁用指定介面(適用於CentOS系統)

關閉ens38介面:

[root@localhost ~]# ifdown ens38
Could not load file '/etc/sysconfig/network-scripts/ifcfg-ens38'
Could not load file '/etc/sysconfig/network-scripts/ifcfg-ens38'
Could not load file '/etc/sysconfig/network-scripts/ifcfg-ens38'
Could not load file '/etc/sysconfig/network-scripts/ifcfg-ens38'

開啟ens38介面:

[root@localhost ~]# ifup ens38
Could not load file '/etc/sysconfig/network-scripts/ifcfg-ens38'
Could not load file '/etc/sysconfig/network-scripts/ifcfg-ens38'
Could not load file '/etc/sysconfig/network-scripts/ifcfg-ens38'
Could not load file '/etc/sysconfig/network-scripts/ifcfg-ens38'
RTNETLINK answers: File exists

注意:ifup/ifdown命令是通過讀取介面組態檔/etc/sysconfig/network-scripts/ifcfg-IFACE來識別的。

route命令:

    用於檢視和管理路由

路由條目型別:

    主機路由:目標地址為單個IP地址;

    網路路由:目標地址為IP網路/網段;

    預設路由:目標地址為任意主機/網段;

範例:

檢視路由表資訊:

[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 ens33
link-local      0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 ens38
default         gateway         0.0.0.0         UG    0      0        0 ens33

可以感覺到在鍵入'route'後卡了一下才顯示出來,因為在顯示路由條目時route會自動嘗試解析路由條目;一般加上-n選項使route不自動解析:

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 ens38
0.0.0.0         10.10.10.2      0.0.0.0         UG    0      0        0 ens33
 
#Destination:目標路由;
#Gateway:閘道器;如果是預設路由的閘道器則可稱為預設閘道器;其中Gateway為0.0.0.0的路由條目為
無需閘道器之意,表示該目標路由為本地主機路由,又稱直連路由。
#Genmask:子網掩碼;
#Flags:路由的標誌位;U表示啟用狀態,G表示預設閘道器,H表示主機路由;
#Metric:度量值;表示到達該目標路由的開銷;
#Iface:使用哪個介面將報文傳送出去; 

新增路由條目的語法格式為:

    route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

範例:

新增到達6.6.6.6/32的主機路由,下一跳為192.168.10.1:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
6.6.6.6         192.168.10.1    255.255.255.255 UGH   0      0        0 ens38 #顯示已新增;
10.0.0.0        192.168.10.1    255.0.0.0       UG    0      0        0 ens38
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 ens38
0.0.0.0         10.10.10.2      0.0.0.0         UG    0      0        0 ens33 

新增主機到達10.0.0.0/8的網路路由,下一跳為192.168.10.1:

[root@localhost ~]# route add -net 10.0.0.0/8 gw 192.168.10.1
#注意:下一跳(閘道器)必須與本地網路上某個主機IP地址處在同一網段;介面會自動識別,可不指
定;
 
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        192.168.10.1    255.0.0.0       UG    0      0        0 ens38 #顯示已新增;
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 ens38
0.0.0.0         10.10.10.2      0.0.0.0         UG    0      0        0 ens33

新增預設閘道器路由:

方式一:
[root@localhost ~]# route add -net 0.0.0.0/0 gw 10.10.10.2
 
方式二:
[root@localhost ~]# route add default gw 10.10.10.2

刪除路由條目的語法格式為:

    route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

範例:

刪除剛新增的路由條目10.0.0.0/8:

[root@localhost ~]# route del -net 10.0.0.0/8
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 ens38
0.0.0.0         10.10.10.2      0.0.0.0         UG    0      0        0 ens33

刪除預設閘道器:

方式一:
[root@localhost ~]# route del default
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 ens38
#預設路由已刪除;
 
方式二:
[root@localhost ~]# route del -net 0.0.0.0/0

netstat命令:

    用於顯示網路連線狀態、路由表資訊、介面的統計資料、偽裝連線、多播成員關係等。

常用選項:

    -t:顯示tcp協定相關的連線;tcp連線均有其連線狀態,而所有連線狀態在FSM內進行轉換;

    -u:顯示udp協定相關的連線,但無狀態之說;

    -l:顯示處於監聽狀態的連線;

    -a:顯示所有狀態的連線;

    -r:顯示路由表資訊;

    -n:以數位格式顯示IP和Port;

    -p:顯示相關進程和PID;

    -e:以擴充套件格式顯示;

    -w:顯示raw socket相關的連線;

    -numeric-hosts:以數位格式顯示主機IP地址;

    -numeric-ports:以數位格式顯示Port;

傳輸層協定:

    TCP:面向連線的協定;雙方通訊開始前要建立虛鏈路,通訊完成後還要拆除連線;

    UDP:面向無連線的協定;直接傳送資料包文而無需實現建立虛鏈路;

範例:

①顯示路由表資訊:

[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.10.10.0      0.0.0.0         255.255.255.0   U         0 0          0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U         0 0          0 ens38
0.0.0.0         10.10.10.2      0.0.0.0         UG        0 0          0 ens33

顯示結果類似'route -n'.

②顯示網路連線狀態:

語法格式:   

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

範例:

顯示所有狀態的連線(包括監聽和未監聽的):

[root@linuxidc ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
tcp        0      0 *:54569                     *:*                         LISTEN     
tcp        0      0 *:sunrpc                    *:*                         LISTEN     
tcp        0      0 *:ssh                       *:*                         LISTEN     
tcp        0      0 localhost:ipp               *:*                         LISTEN     
tcp        0      0 localhost:smtp              *:*                         LISTEN   
.....(省略).....
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  18     [ ]         DGRAM                    14606  /dev/log
unix  2      [ ACC ]     STREAM     LISTENING     15536  @/var/run/hald/dbus-Rat1Ns9j6z
unix  2      [ ACC ]     STREAM     LISTENING     16112  /var/run/pcscd.comm
unix  2      [ ACC ]     STREAM     LISTENING     14153  @ISCSID_UIP_ABSTRACT_NAMESPACE
.....(省略).....

顯示tcp協定相關的所有狀態的連線(socket):

[root@linuxidc ~]# netstat -ta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
tcp        0      0 *:54569                     *:*                         LISTEN     
tcp        0      0 *:sunrpc                    *:*                         LISTEN     
tcp        0      0 *:ssh                       *:*                         LISTEN     
tcp        0      0 localhost:ipp               *:*                         LISTEN     
tcp        0      0 localhost:smtp              *:*                         LISTEN     
tcp        0     64 10.10.10.139:ssh            10.10.10.1:52401            ESTABLISHED 
tcp        0      0 10.10.10.139:ssh            10.10.10.1:56538            ESTABLISHED 
tcp        0      0 *:sunrpc                    *:*                         LISTEN     
tcp        0      0 *:44980                     *:*                         LISTEN     
tcp        0      0 *:ssh                       *:*                         LISTEN     
tcp        0      0 localhost:ipp               *:*                         LISTEN     
tcp        0      0 localhost:smtp              *:*                         LISTEN

顯示tcp協定相關的所有狀態的連線(socket):

[root@linuxidc ~]# netstat -ua
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
udp        0      0 *:sunrpc                    *:*                                     
udp        0      0 *:756                       *:*                                     
udp        0      0 *:ipp                       *:*                                     
udp        0      0 *:ldaps                     *:*                                     
udp        0      0 *:36110                     *:*                                     
udp        0      0 localhost:814               *:*                                     
udp        0      0 *:sunrpc                    *:*                                     
udp        0      0 *:756                       *:*                                     
udp        0      0 *:55832                     *:*

以數位格式顯示tcp所有狀態的連線(socket):

[root@linuxidc ~]# 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:54569               0.0.0.0:*                   LISTEN     
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN     
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN     
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN     
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN     
tcp        0     64 10.10.10.139:22             10.10.10.1:52401            ESTABLISHED 
tcp        0      0 10.10.10.139:22             10.10.10.1:56538            ESTABLISHED 
tcp        0      0 :::111                      :::*                        LISTEN     
tcp        0      0 :::44980                    :::*                        LISTEN     
tcp        0      0 :::22                       :::*                        LISTEN     
tcp        0      0 ::1:631                     :::*                        LISTEN     
tcp        0      0 ::1:25                      :::*                        LISTEN

以數位格式顯示udp所有狀態的連線(socket):

[root@linuxidc ~]# 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:111                 0.0.0.0:*                               
udp        0      0 0.0.0.0:756                 0.0.0.0:*                               
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               
udp        0      0 0.0.0.0:636                 0.0.0.0:*                               
udp        0      0 0.0.0.0:36110               0.0.0.0:*                               
udp        0      0 127.0.0.1:814               0.0.0.0:*                               
udp        0      0 :::111                      :::*                                   
udp        0      0 :::756                      :::*                                   
udp        0      0 :::55832                    :::*

顯示處於監聽狀態的tcp連線(socket):

[root@linuxidc ~]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
tcp        0      0 0.0.0.0:54569               0.0.0.0:*                   LISTEN     
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN     
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN     
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN     
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN     
tcp        0      0 :::111                      :::*                        LISTEN     
tcp        0      0 :::44980                    :::*                        LISTEN     
tcp        0      0 :::22                       :::*                        LISTEN     
tcp        0      0 ::1:631                     :::*                        LISTEN     
tcp        0      0 ::1:25                      :::*                        LISTEN

示處於監聽狀態的udp連線(socket):

[root@linuxidc ~]# netstat -unl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               
udp        0      0 0.0.0.0:756                 0.0.0.0:*                               
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               
udp        0      0 0.0.0.0:636                 0.0.0.0:*                               
udp        0      0 0.0.0.0:36110               0.0.0.0:*                               
udp        0      0 127.0.0.1:814               0.0.0.0:*                               
udp        0      0 :::111                      :::*                                   
udp        0      0 :::756                      :::*                                   
udp        0      0 :::55832                    :::*

顯示處於監聽狀態的tcp/udp連線(socket):

[root@linuxidc ~]# netstat -tunl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
tcp        0      0 0.0.0.0:54569               0.0.0.0:*                   LISTEN     
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN     
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN     
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN     
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN     
tcp        0      0 :::111                      :::*                        LISTEN     
tcp        0      0 :::44980                    :::*                        LISTEN     
tcp        0      0 :::22                       :::*                        LISTEN     
tcp        0      0 ::1:631                     :::*                        LISTEN     
tcp        0      0 ::1:25                      :::*                        LISTEN     
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               
udp        0      0 0.0.0.0:756                 0.0.0.0:*                               
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               
udp        0      0 0.0.0.0:636                 0.0.0.0:*                               
udp        0      0 0.0.0.0:36110               0.0.0.0:*                               
udp        0      0 127.0.0.1:814               0.0.0.0:*                               
udp        0      0 :::111                      :::*                                   
udp        0      0 :::756                      :::*                                   
udp        0      0 :::55832                    :::*

顯示處於監聽狀態的所有連線(scoket),並顯示相應的進程及PID號:

[root@linuxidc ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address         Foreign Address      State       PID/Program name   
tcp        0      0 0.0.0.0:54569         0.0.0.0:*            LISTEN      1910/rpc.statd     
tcp        0      0 0.0.0.0:111           0.0.0.0:*            LISTEN      1853/rpcbind       
tcp        0      0 0.0.0.0:22            0.0.0.0:*            LISTEN      2223/sshd           
tcp        0      0 127.0.0.1:631         0.0.0.0:*            LISTEN      1985/cupsd         
tcp        0      0 127.0.0.1:25          0.0.0.0:*            LISTEN      2305/master         
tcp        0      0 :::111                :::*                 LISTEN      1853/rpcbind       
tcp        0      0 :::44980              :::*                 LISTEN      1910/rpc.statd     
tcp        0      0 :::22                 :::*                 LISTEN      2223/sshd           
tcp        0      0 ::1:631               :::*                 LISTEN      1985/cupsd         
tcp        0      0 ::1:25                :::*                 LISTEN      2305/master         
udp        0      0 0.0.0.0:111           0.0.0.0:*                        1853/rpcbind       
udp        0      0 0.0.0.0:756           0.0.0.0:*                        1853/rpcbind       
udp        0      0 0.0.0.0:631           0.0.0.0:*                        1985/cupsd         
udp        0      0 0.0.0.0:636           0.0.0.0:*                        1781/portreserve   
udp        0      0 0.0.0.0:36110         0.0.0.0:*                        1910/rpc.statd     
udp        0      0 127.0.0.1:814         0.0.0.0:*                        1910/rpc.statd     
udp        0      0 :::111                :::*                             1853/rpcbind       
udp        0      0 :::756                :::*                             1853/rpcbind       
udp        0      0 :::55832              :::*                             1910/rpc.statd

③檢視介面的統計資料:

語法格式:

    netstat {--interfaces|-I|-i} [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n] [--numeric-hosts] [--numeric-ports]

範例:

顯示所有介面的統計資料:

[root@localhost ~]# netstat -i
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33     1500     5128      0      0 0          3702      0      0      0 BMRU
ens38     1500      449      0      0 0             8      0      0      0 BMRU
lo       65536        3      0      0 0             3      0      0      0 LRU
 
或者:
[root@localhost ~]# netstat -I

顯示指定介面的統計資料:

[root@localhost ~]# netstat -Iens33    #注意-I選項和指定介面之間不能有空格;
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33     1500     5155      0      0 0          3720      0      0      0 BMRU

接下來介紹iproute2家族相關命令。因為iproute家族是與Linux內湖密切相關的程式包,因此iproute家族中的很多命令功能都是直接倒置到Linux核心上的,所以iproute家族的命令在執行起來相對效率較高。

ip命令:用於管理/檢視路由、介面、策略路由和隧道等。

    ip addr:用於管理IP地址;

    ip link:用於網路介面的設定;

    ip netns:用於管理網路名稱空間;

    ip route:用於管理路由表;

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2017-03/141974p2.htm


IT145.com E-mail:sddin#qq.com