天天看點

linux 網絡指令linux 網絡指令1、ping指令2、netstat指令3、traceroute指令4、arp指令5、ifconfig指令6、route指令7、hostname指令8、iptstate指令

linux 網絡指令

文章目錄

  • linux 網絡指令
  • 1、ping指令
      • 文法
      • 選項
      • 參數
      • 執行個體
  • 2、netstat指令
      • 文法
      • 選項
      • 執行個體
  • 3、traceroute指令
      • 文法
      • 選項
      • 參數
      • 執行個體
  • 4、arp指令
      • 文法
      • 選項
      • 參數
      • 執行個體
  • 5、ifconfig指令
      • 文法
      • 參數
      • 執行個體
  • 6、route指令
      • 文法
      • 選項
      • 參數
      • 執行個體
  • 7、hostname指令
      • 文法
      • 選項
      • 參數
      • 執行個體
  • 8、iptstate指令
      • 文法
      • 選項

linux 網絡指令-------參考: https://man.linuxde.net/ping

1、ping指令

ping指令用來測試主機之間網絡的連通性。執行ping指令會使用ICMP傳輸協定,發出要求回應的資訊,若遠端主機的網絡功能沒有問題,就會回應該資訊,因而得知該主機運作正常。

文法

ping(選項)(參數)
           

選項

-d:使用Socket的SO_DEBUG功能;
-c<完成次數>:設定完成要求回應的次數;
-f:極限檢測;
-i<間隔秒數>:指定收發資訊的間隔時間;
-I<網絡界面>:使用指定的網絡界面送出資料包;
-l<前置載入>:設定在送出要求資訊之前,先行發出的資料包;
-n:隻輸出數值;
-p<範本樣式>:設定填滿資料包的範本樣式;
-q:不顯示指令執行過程,開頭和結尾的相關資訊除外;
-r:忽略普通的Routing Table,直接将資料包送到遠端主機上;
-R:記錄路由過程;
-s<資料包大小>:設定資料包的大小;
-t<存活數值>:設定存活數值TTL的大小;
-v:詳細顯示指令的執行過程。
           

參數

目的主機:指定發送ICMP封包的目的主機。

執行個體

[[email protected] ~]# ping www.linuxde.net
PING host.1.linuxde.net (100.42.212.8) 56(84) bytes of data.
64 bytes from 100-42-212-8.static.webnx.com (100.42.212.8): icmp_seq=1 ttl=50 time=177 ms
64 bytes from 100-42-212-8.static.webnx.com (100.42.212.8): icmp_seq=2 ttl=50 time=178 ms
64 bytes from 100-42-212-8.static.webnx.com (100.42.212.8): icmp_seq=3 ttl=50 time=174 ms
64 bytes from 100-42-212-8.static.webnx.com (100.42.212.8): icmp_seq=4 ttl=50 time=177 ms
...按Ctrl+C結束

--- host.1.linuxde.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 174.068/176.916/178.182/1.683 ms
           

2、netstat指令

網絡測試

netstat指令用來列印Linux中網絡系統的狀态資訊,可讓你得知整個Linux系統的網絡情況。

文法

netstat(選項)
           

選項

-a或--all:顯示所有連線中的Socket;
-A<網絡類型>或--<網絡類型>:列出該網絡類型連線中的相關位址;
-c或--continuous:持續列出網絡狀态;
-C或--cache:顯示路由器配置的快取資訊;
-e或--extend:顯示網絡其他相關資訊;
-F或--fib:顯示FIB;
-g或--groups:顯示多重廣播功能群組組員名單;
-h或--help:線上幫助;
-i或--interfaces:顯示網絡界面資訊表單;
-l或--listening:顯示監控中的伺服器的Socket;
-M或--masquerade:顯示僞裝的網絡連線;
-n或--numeric:直接使用ip位址,而不通過域名伺服器;
-N或--netlink或--symbolic:顯示網絡硬體外圍裝置的符号連接配接名稱;
-o或--timers:顯示計時器;
-p或--programs:顯示正在使用Socket的程式識别碼和程式名稱;
-r或--route:顯示Routing Table;
-s或--statistice:顯示網絡工作資訊統計表;
-t或--tcp:顯示TCP傳輸協定的連線狀況;
-u或--udp:顯示UDP傳輸協定的連線狀況;
-v或--verbose:顯示指令執行過程;
-V或--version:顯示版本資訊;
-w或--raw:顯示RAW傳輸協定的連線狀況;
-x或--unix:此參數的效果和指定"-A unix"參數相同;
--ip或--inet:此參數的效果和指定"-A inet"參數相同。
           

執行個體

列出所有端口 (包括監聽和未監聽的)

netstat -a     #列出所有端口
netstat -at    #列出所有tcp端口
netstat -au    #列出所有udp端口                             
           

列出所有處于監聽狀态的 Sockets

netstat -l        #隻顯示監聽端口
netstat -lt       #隻列出所有監聽 tcp 端口
netstat -lu       #隻列出所有監聽 udp 端口
netstat -lx       #隻列出所有監聽 UNIX 端口
           

顯示每個協定的統計資訊

netstat -s   顯示所有端口的統計資訊
netstat -st   顯示TCP端口的統計資訊
netstat -su   顯示UDP端口的統計資訊
           

在netstat輸出中顯示 PID 和程序名稱

netstat -pt
           

netstat -p

可以與其它開關一起使用,就可以添加“PID/程序名稱”到netstat輸出中,這樣debugging的時候可以很友善的發現特定端口運作的程式。

在netstat輸出中不顯示主機,端口和使用者名(host, port or user)

當你不想讓主機,端口和使用者名顯示,使用

netstat -n

。将會使用數字代替那些名稱。同樣可以加速輸出,因為不用進行比對查詢。

netstat -an
           

如果隻是不想讓這三個名稱中的一個被顯示,使用以下指令:

netsat -a --numeric-ports
netsat -a --numeric-hosts
netsat -a --numeric-users
           

持續輸出netstat資訊

netstat -c   #每隔一秒輸出網絡資訊
           

顯示系統不支援的位址族(Address Families)

netstat --verbose
           

在輸出的末尾,會有如下的資訊:

netstat: no support for `AF IPX' on this system.
netstat: no support for `AF AX25' on this system.
netstat: no support for `AF X25' on this system.
netstat: no support for `AF NETROM' on this system.
           

顯示核心路由資訊

netstat -r
           

使用

netstat -rn

顯示數字格式,不查詢主機名稱。

找出程式運作的端口

并不是所有的程序都能找到,沒有權限的會不顯示,使用 root 權限檢視所有的資訊。

netstat -ap | grep ssh
           

找出運作在指定端口的程序:

netstat -an | grep ':80'
           

顯示網絡接口清單

netstat -i
           

顯示詳細資訊,像是ifconfig使用

netstat -ie

IP和TCP分析

檢視連接配接某服務端口最多的的IP位址:

netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
           

TCP各種狀态清單:

netstat -nt | grep -e 127.0.0.1 -e 0.0.0.0 -e ::: -v | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'
           

檢視phpcgi程序數,如果接近預設值,說明不夠用,需要增加:

netstat -anpo | grep "php-cgi" | wc -l
           

3、traceroute指令

網絡測試

traceroute指令用于追蹤資料包在網絡上的傳輸時的全部路徑,它預設發送的資料包大小是40位元組。

通過traceroute我們可以知道資訊從你的計算機到網際網路另一端的主機是走的什麼路徑。當然每次資料包由某一同樣的出發點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。

traceroute通過發送小的資料包到目的裝置直到其傳回,來測量其需要多長時間。一條路徑上的每個裝置traceroute要測3次。輸出結果中包括每次測試的時間(ms)和裝置的名稱(如有的話)及其ip位址。

文法

traceroute(選項)(參數)
           

選項

-d:使用Socket層級的排錯功能;
-f<存活數值>:設定第一個檢測資料包的存活數值TTL的大小;
-F:設定勿離斷位;
-g<網關>:設定來源路由網關,最多可設定8個;
-i<網絡界面>:使用指定的網絡界面送出資料包;
-I:使用ICMP回應取代UDP資料資訊;
-m<存活數值>:設定檢測資料包的最大存活數值TTL的大小;
-n:直接使用IP位址而非主機名稱;
-p<通信端口>:設定UDP傳輸協定的通信端口;
-r:忽略普通的Routing Table,直接将資料包送到遠端主機上。
-s<來源位址>:設定本地主機送出資料包的IP位址;
-t<服務類型>:設定檢測資料包的TOS數值;
-v:詳細顯示指令的執行過程;
-w<逾時秒數>:設定等待遠端主機回報的時間;
-x:開啟或關閉資料包的正确性檢驗。
           

參數

主機:指定目的主機IP位址或主機名。

執行個體

traceroute www.58.com
traceroute to www.58.com (211.151.111.30), 30 hops max, 40 byte packets
 1  unknown (192.168.2.1)  3.453 ms  3.801 ms  3.937 ms
 2  221.6.45.33 (221.6.45.33)  7.768 ms  7.816 ms  7.840 ms
 3  221.6.0.233 (221.6.0.233)  13.784 ms  13.827 ms 221.6.9.81 (221.6.9.81)  9.758 ms
 4  221.6.2.169 (221.6.2.169)  11.777 ms 122.96.66.13 (122.96.66.13)  34.952 ms 221.6.2.53 (221.6.2.53)  41.372 ms
 5  219.158.96.149 (219.158.96.149)  39.167 ms  39.210 ms  39.238 ms
 6  123.126.0.194 (123.126.0.194)  37.270 ms 123.126.0.66 (123.126.0.66)  37.163 ms  37.441 ms
 7  124.65.57.26 (124.65.57.26)  42.787 ms  42.799 ms  42.809 ms
 8  61.148.146.210 (61.148.146.210)  30.176 ms 61.148.154.98 (61.148.154.98)  32.613 ms  32.675 ms
 9  202.106.42.102 (202.106.42.102)  44.563 ms  44.600 ms  44.627 ms
10  210.77.139.150 (210.77.139.150)  53.302 ms  53.233 ms  53.032 ms
11  211.151.104.6 (211.151.104.6)  39.585 ms  39.502 ms  39.598 ms
12  211.151.111.30 (211.151.111.30)  35.161 ms  35.938 ms  36.005 ms
           

記錄按序列号從1開始,每個紀錄就是一跳 ,每跳表示一個網關,我們看到每行有三個時間,機關是ms,其實就是

-q

的預設參數。探測資料包向每個網關發送三個資料包後,網關響應後傳回的時間;如果用

traceroute -q 4 www.58.com

,表示向每個網關發送4個資料包。

有時我們traceroute一台主機時,會看到有一些行是以星号表示的。出現這樣的情況,可能是防火牆封掉了ICMP的傳回資訊,是以我們得不到什麼相關的資料包傳回資料。

有時我們在某一網關處延時比較長,有可能是某台網關比較阻塞,也可能是實體裝置本身的原因。當然如果某台DNS出現問題時,不能解析主機名、域名時,也會 有延時長的現象;您可以加

-n

參數來避免DNS解析,以IP格式輸出資料。

如果在區域網路中的不同網段之間,我們可以通過traceroute 來排查問題所在,是主機的問題還是網關的問題。如果我們通過遠端來通路某台伺服器遇到問題時,我們用到traceroute 追蹤資料包所經過的網關,送出IDC服務商,也有助于解決問題;但目前看來在國内解決這樣的問題是比較困難的,就是我們發現問題所在,IDC服務商也不可能幫助我們解決。

4、arp指令

網絡測試

arp指令用于操作主機的arp緩沖區,它可以顯示arp緩沖區中的所有條目、删除指定的條目或者添加靜态的ip位址與MAC位址對應關系。

文法

arp(選項)(參數)
           

選項

-a<主機>:顯示arp緩沖區的所有條目;
-H<位址類型>:指定arp指令使用的位址類型;
-d<主機>:從arp緩沖區中删除指定主機的arp條目;
-D:使用指定接口的硬體位址;
-e:以Linux的顯示風格顯示arp緩沖區中的條目;
-i<接口>:指定要操作arp緩沖區的網絡接口;
-s<主機><MAC位址>:設定指定的主機的IP位址與MAC位址的靜态映射;
-n:以數字方式顯示arp緩沖區中的條目;
-v:顯示詳細的arp緩沖區條目,包括緩沖區條目的統計資訊;
-f<檔案>:設定主機的IP位址與MAC位址的靜态映射。
           

參數

主機:查詢arp緩沖區中指定主機的arp條目。

執行個體

[[email protected] ~]# arp -v
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.0.134            ether   00:21:5E:C7:4D:88   C                     eth1
115.238.144.129          ether   38:22:D6:2F:B2:F1   C                     eth0
Entries: 2      Skipped: 0      Found: 2
           

5、ifconfig指令

網絡配置

ifconfig指令被用于配置和顯示Linux核心中網絡接口的網絡參數。用ifconfig指令配置的網卡資訊,在網卡重新開機後機器重新開機後,配置就不存在。要想将上述的配置資訊永遠的存的電腦裡,那就要修改網卡的配置檔案了。

文法

ifconfig(參數)
           

參數

add<位址>:設定網絡裝置IPv6的ip位址;
del<位址>:删除網絡裝置IPv6的IP位址;
down:關閉指定的網絡裝置;
<hw<網絡裝置類型><硬體位址>:設定網絡裝置的類型與硬體位址;
io_addr<I/O位址>:設定網絡裝置的I/O位址;
irq<IRQ位址>:設定網絡裝置的IRQ;
media<網絡媒介類型>:設定網絡裝置的媒介類型;
mem_start<記憶體位址>:設定網絡裝置在主記憶體所占用的起始位址;
metric<數目>:指定在計算資料包的轉送次數時,所要加上的數目;
mtu<位元組>:設定網絡裝置的MTU;
netmask<子網路遮罩>:設定網絡裝置的子網路遮罩;
tunnel<位址>:建立IPv4與IPv6之間的隧道通信位址;
up:啟動指定的網絡裝置;
-broadcast<位址>:将要送往指定位址的資料包當成廣播資料包來處理;
-pointopoint<位址>:與指定位址的網絡裝置建立直接連線,此模式具有保密功能;
-promisc:關閉或啟動指定網絡裝置的promiscuous模式;
IP位址:指定網絡裝置的IP位址;
網絡裝置:指定網絡裝置的名稱。
           

執行個體

顯示網絡裝置資訊(激活狀态的):

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3E:00:1E:51  
          inet addr:10.160.7.81  Bcast:10.160.15.255  Mask:255.255.240.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:61430830 errors:0 dropped:0 overruns:0 frame:0
          TX packets:88534 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3607197869 (3.3 GiB)  TX bytes:6115042 (5.8 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:56103 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56103 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5079451 (4.8 MiB)  TX bytes:5079451 (4.8 MiB)
           

說明:

eth0表示第一塊網卡,其中

HWaddr

表示網卡的實體位址,可以看到目前這個網卡的實體位址(MAC位址)是

00:16:3E:00:1E:51

inet addr用來表示網卡的IP位址,此網卡的IP位址是

10.160.7.81

,廣播位址

Bcast:10.160.15.255

,掩碼位址

Mask:255.255.240.0

lo是表示主機的回環位址,這個一般是用來測試一個網絡程式,但又不想讓區域網路或外網的使用者能夠檢視,隻能在此台主機上運作和檢視所用的網絡接口。比如把 httpd伺服器的指定到回環位址,在浏覽器輸入127.0.0.1就能看到你所架WEB網站了。但隻是您能看得到,區域網路的其它主機或使用者無從知道。

  • 第一行:連接配接類型:Ethernet(以太網)HWaddr(硬體mac位址)。
  • 第二行:網卡的IP位址、子網、掩碼。
  • 第三行:UP(代表網卡開啟狀态)RUNNING(代表網卡的網線被接上)MULTICAST(支援多點傳播)MTU:1500(最大傳輸單元):1500位元組。
  • 第四、五行:接收、發送資料包情況統計。
  • 第七行:接收、發送資料位元組數統計資訊。

啟動關閉指定網卡:

ifconfig eth0 up
ifconfig eth0 down
           

ifconfig eth0 up

為啟動網卡eth0,

ifconfig eth0 down

為關閉網卡eth0。ssh登陸linux伺服器操作要小心,關閉了就不能開啟了,除非你有多網卡。

為網卡配置和删除IPv6位址:

ifconfig eth0 add 33ffe:3240:800:1005::2/64    #為網卡eth0配置IPv6位址
ifconfig eth0 del 33ffe:3240:800:1005::2/64    #為網卡eth0删除IPv6位址
           

用ifconfig修改MAC位址:

ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE
           

配置IP位址:

[[email protected] ~]# ifconfig eth0 192.168.2.10
[[email protected] ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[[email protected] ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255
           

啟用和關閉arp協定:

ifconfig eth0 arp    #開啟網卡eth0 的arp協定
ifconfig eth0 -arp   #關閉網卡eth0 的arp協定
           

設定最大傳輸單元:

ifconfig eth0 mtu 1500    #設定能通過的最大資料包大小為 1500 bytes
           

6、route指令

網絡配置

route指令用來顯示并設定Linux核心中的網絡路由表,route指令設定的路由主要是靜态路由。要實作兩個不同的子網之間的通信,需要一台連接配接兩個網絡的路由器,或者同時位于兩個網絡的網關來實作。

在Linux系統中設定路由通常是為了解決以下問題:該Linux系統在一個區域網路中,區域網路中有一個網關,能夠讓機器通路Internet,那麼就需要将這台機器的ip位址設定為Linux機器的預設路由。要注意的是,直接在指令行下執行route指令來添加路由,不會永久儲存,當網卡重新開機或者機器重新開機之後,該路由就失效了;可以在

/etc/rc.local

中添加route指令來保證該路由設定永久有效。

文法

route(選項)(參數)
           

選項

-A:設定位址類型;
-C:列印将Linux核心的路由緩存;
-v:詳細資訊模式;
-n:不執行DNS反向查找,直接顯示數字形式的IP位址;
-e:netstat格式顯示路由表;
-net:到一個網絡的路由表;
-host:到一個主機的路由表。
           

參數

Add:增加指定的路由記錄;
Del:删除指定的路由記錄;
Target:目的網絡或目的主機;
gw:設定預設網關;
mss:設定TCP的最大區塊長度(MSS),機關MB;
window:指定通過路由表的TCP連接配接的TCP視窗大小;
dev:路由記錄所表示的網絡接口。
           

執行個體

顯示目前路由:

[[email protected] ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
112.124.12.0    *               255.255.252.0   U     0      0        0 eth1
10.160.0.0      *               255.255.240.0   U     0      0        0 eth0
192.168.0.0     10.160.15.247   255.255.0.0     UG    0      0        0 eth0
172.16.0.0      10.160.15.247   255.240.0.0     UG    0      0        0 eth0
10.0.0.0        10.160.15.247   255.0.0.0       UG    0      0        0 eth0
default         112.124.15.247  0.0.0.0         UG    0      0        0 eth1

[[email protected] ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
112.124.12.0    0.0.0.0         255.255.252.0   U     0      0        0 eth1
10.160.0.0      0.0.0.0         255.255.240.0   U     0      0        0 eth0
192.168.0.0     10.160.15.247   255.255.0.0     UG    0      0        0 eth0
172.16.0.0      10.160.15.247   255.240.0.0     UG    0      0        0 eth0
10.0.0.0        10.160.15.247   255.0.0.0       UG    0      0        0 eth0
0.0.0.0         112.124.15.247  0.0.0.0         UG    0      0        0 eth1
           

其中Flags為路由标志,标記目前網絡節點的狀态,Flags标志說明:

  • U Up表示此路由目前為啟動狀态。
  • H Host,表示此網關為一主機。
  • G Gateway,表示此網關為一路由器。
  • R Reinstate Route,使用動态路由重新初始化的路由。
  • D Dynamically,此路由是動态性地寫入。
  • M Modified,此路由是由路由守護程式或導向器動态修改。
  • ! 表示此路由目前為關閉狀态。

添加網關/設定網關:

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0    #增加一條到達244.0.0.0的路由。
           

屏蔽一條路由:

route add -net 224.0.0.0 netmask 240.0.0.0 reject     #增加一條屏蔽的路由,目的位址為224.x.x.x将被拒絕。
           

删除路由記錄:

route del -net 224.0.0.0 netmask 240.0.0.0
route del -net 224.0.0.0 netmask 240.0.0.0 reject
           

删除和添加設定預設網關:

route del default gw 192.168.120.240
route add default gw 192.168.120.240
           

7、hostname指令

網絡配置

hostname指令用于顯示和設定系統的主機名稱。環境變量HOSTNAME也儲存了目前的主機名。在使用hostname指令設定主機名後,系統并不會永久儲存新的主機名,重新啟動機器之後還是原來的主機名。如果需要永久修改主機名,需要同時修改

/etc/hosts

/etc/sysconfig/network

的相關内容。

文法

hostname(選項)(參數)
           

選項

-v:詳細資訊模式;
-a:顯示主機名稱;
-d:顯示DNS域名;
-f:顯示FQDN名稱;
-i:顯示主機的ip位址;
-s:顯示短主機名稱,在第一個點處截斷;
-y:顯示NIS域名。
           

參數

主機名:指定要設定的主機名。

執行個體

[[email protected] ~]# hostname
AY1307311912260196fcZ
           

8、iptstate指令

網絡安全

iptstate指令以top指令類似的風格時顯示Linux核心中iptables的工作狀态。

文法

iptstate(選項)
           

選項

-b:指定輸出資訊的排序規則;
-d:不動态地改變視窗大小;
-f:過濾本地回送資訊;
-l:将ip位址解析為域名;
-L:隐藏于DNS查詢相關狀态;
-r:指定重新整理螢幕的頻率;
-R:反序排列;
-s:單次運作模式;
-t:顯示彙總資訊。
           

繼續閱讀