国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux中netstat命令的使用方法

2020-02-25 21:06:19
字體:
來源:轉載
供稿:網友

netstat是一個命令行工具,它可在類Unix操作系統,包括OS X,Linux,Solaris和BSD提供對基于Windows NT的操作系統,那么你知道在linux中如何使用netstat嗎?現在我們去看看Linux中netstat命令的使用方法。

在計算中,netstat(網絡統計數據)是一個命令行工具,它顯示傳輸控制協議的網絡連接(傳入和傳出),路由表,和一個數字網絡接口 (網絡接口控制器或者軟件定義的網絡接口)和網絡協議的統計數據。它可在類Unix操作系統,包括OS X,Linux,Solaris和BSD,并提供對基于Windows NT的操作系統,包括Windows XP,Windows Vista中,Windows 7和Windows8。

本文主要介紹netstat在Linux的使用
netstat man的幫助手冊會有提示信息:

NOTE
This? program? is? obsolete.? Replacement for netstat is ss.? Replacement for netstat -r is ip route.
Replacement for netstat -i is ip -s link.? Replacement for netstat -g is ip maddr.
在Linux系統作,netstat命令已廢棄不建議使用,已經被ss命令替代,netstat已經是明日黃花了,官方已經不再更新了。它已經被ss命令和ip命令所取代,或許在不久的將來在Linux發行版中就將見不到netstat的身影了。所以,如果還有人在用netstat,你要建議他使用ss和ip。

netstat命令是一個監控TCP/IP網絡的非常有用的工具,它可以顯示路由表、實際的網絡連接以及每一個網絡接口設備的狀態信息,
?語  法:netstat [-acCeFghilMnNoprstuvVwx][-A網絡類型>][--ip]
?補充說明:利用netstat指令可讓你得知整個Linux系統的網絡情況。
?參  數:
?-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"參數相同。
?
1)

復制代碼
代碼如下:
netstat -tl    -nltp


?查看當前tcp監聽端口
?Active Internet connections (only servers)
?Proto Recv-Q Send-Q Local Address?????????? Foreign Address???????? State?????
tcp??????? 0????? 0 *:rrac????????????????? *:*???????????????????? LISTEN?????
tcp??????? 0????? 0 *:34006???????????????? *:*???????????????????? LISTEN?????
......
?
2)

?

復制代碼
代碼如下:

?

netstat -tlp


?查看當前tcp監聽端口, 需要顯示監聽的程序名,當不清楚mysql的監聽端口時比較好用
?Active Internet connections (only servers)
?Proto Recv-Q Send-Q Local Address?????????? Foreign Address???????? State?????? PID/Program name??
tcp??????? 0????? 0 *:rrac????????????????? *:*???????????????????? LISTEN????? -?????????????????????????
tcp??????? 0????? 0 *:34006???????????????? *:*???????????????????? LISTEN????? 23425/mysqld??
......
?

3)

?

復制代碼
代碼如下:

?

netstat -tl | grep 34006


???? 只查看mysql的監聽端口,當前啟動的mysql端口為34006,明確知道mysql監聽端口時使用
?
4)

?

復制代碼
代碼如下:

?

netstat -ta | grep 34006


?tcp??????? 0????? 0 *:34006???????????????? *:*???????????????????? LISTEN?????
tcp??????? 0????? 0 linux.local:34006?????? linux.local:41485?????? ESTABLISHED
tcp??????? 0????? 0 linux.local:34006?????? linux.local:41486?????? ESTABLISHED
...
?tcp??????? 0????? 0 10.3.2.35:41488???????? 10.3.2.35:34006???????? ESTABLISHED
tcp??????? 0????? 0 10.3.2.35:41489???????? 10.3.2.35:34006???????? ESTABLISHED
tcp??????? 0????? 0 10.3.2.35:41490???????? 10.3.2.35:34006???????? ESTABLISHED

由于數據庫和運用程序都放在同一臺機器了,因此這里連接被顯示了兩次. 可以使用-p參數來顯示PID,然后grep PID.
?

5)

?

復制代碼
代碼如下:

?

netstat -tap | grep 34006 | grep 23425


???? 23425是當前mysql的PID
?tcp??????? 0????? 0 *:34006???????????????? *:*???????????????????? LISTEN????? 23425/mysqld???????
tcp??????? 0????? 0 linux.local:34006?????? linux.local:41510?????? ESTABLISHED 23425/mysqld???????
tcp??????? 0????? 0 linux.local:34006?????? linux.local:41511?????? ESTABLISHED 23425/mysqld???????
tcp??????? 0????? 0 linux.local:34006?????? linux.local:41516?????? ESTABLISHED 23425/mysqld 從 整體上看,netstat的輸出結果可以分為兩個部分,一個是Active Internet connections,稱為有源TCP連接,另一個是Active UNIX domain sockets,稱為有源Unix域套接口。在上面的輸出結果中,第一部分有5個輸出結果,顯示有源TCP連接的情況,而第二部分的輸出結果顯示的是 Unix域套接口的連接情況。Proto顯示連接使用的協議;RefCnt表示連接到本套接口上的進程號;Types顯示套接口的類型;State顯示套 接口當前的狀態;Path表示連接到套接口的其它進程使用的路徑名。
?事實上,netstat是若干個工具的匯總。
?
顯示路由表
?在隨- r標記一起調用n e t s t a t時,將顯示內核路由表,就像我們利用r o u t e命令一樣。產生的輸出如下:
?

?

?

復制代碼
代碼如下:

?

?

[root@machine1 /]$ netstat -nr


?Kernel IP routing table
?Destination Gateway Genmask Flags MSS Window irtt Iface
?210.34.6.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0
?192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
?127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
?0.0.0.0 210.34.6.2 0.0.0.0 UG 0 0 0 eth0
?
- n 選項令netstat以點分四段式的形式輸出IP地址,而不是象征性的主機名和網絡名。如果想避免通過網絡查找地址(比如避開DNS或NIS服務器),這一點是特別有用的。
?netstat 輸出結果中,第二列展示的是路由條目所指的網關,如果沒有使用網關,就會出現一個星號(*)或者0.0.0.0;第三列展示路由的概述,在為具體的I P地址找出最恰當的路由時,內核將查看路由表內的所有條目,在對找到的路由與目標路由比較之前,將對I P地址和genmask進行按位“與”計算;第四列顯示了不同的標記,這些標記的說明如下:
?
G 路由將采用網關。
U 準備使用的接口處于“活動”狀態。
H 通過該路由,只能抵達一臺主機。
D 如果路由表的條目是由ICMP重定向消息生成的,就會設置這個標記。
M 如果路由表條目已被ICMP重定向消息修改,就會設置這個標記。
?
netstat輸出結果的Iface顯示該連接所用的物理網卡,如eth0表示用第一張,eth1表示用第二張。
?
顯示接口特性

?
在隨- i標記一起調用時, netstat將顯示網絡接口的當前配置特性。除此以外,如果調用時還帶上-a選項,它還將輸出內核中所有接口,并不只是當前配置的接口。netstat-i的輸出結果是這樣的:
?

?

?

復制代碼
代碼如下:

?

?

[root@machine1 /]$ netstat -i


?Kernel Interface table
?Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
?eth0 1500 0 787165 0 0 1 51655 0 0 0 BRU
?eth1 1500 0 520811 0 0 0 1986 0 0 0 BRU
?lo 3924 0 1943 0 0 0 43 0 0 0 LRU
?
MTU 和Met字段表示的是接口的MTU和度量值值;RX和TX這兩列表示的是已經準確無誤地收發了多少數據包( RX - OK / TX - OK)、產生了多少錯誤( RX-ERR/TX-ERR)、丟棄了多少包(RX-DRP/TX-DRP),由于誤差而遺失了多少包(RX-OVR/TX-OVR);最后一列展示的是 為這個接口設置的標記,在利用ifconfig顯示接口配置時,這些標記都采用一個字母。它們的說明如下:
?
B 已經設置了一個廣播地址。
L 該接口是一個回送設備。
M 接收所有數據包(混亂模式)。
N 避免跟蹤。
O 在該接口上,禁用A R P。
P 這是一個點到點鏈接。
R 接口正在運行。
U 接口處于“活動”狀態。
?
顯示鏈接
?netstat 支持用于顯示活動或被動套接字的選項集。選項- t、- u、- w和- x分別表示TCP、UDP、RAW和UNIX套接字連接。如果你另外還提供了一個- a標記,還會顯示出等待連接(也就是說處于監聽模式)的套接字。這樣就可以得到一份服務器清單,當前所有運行于系統中的所有服務器都會列入其中。
?
調用netstat -ta時,輸出結果如下:
?

?

?

復制代碼
代碼如下:

?

?

[root@machine1 /]$ netstat -ta


?Active Internet connections (servers and established)
?Proto Recv-Q Send-Q Local Address Foreign Address State
?tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED
?tcp 0 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED
?tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED
?tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED
?tcp 0 0 *:9001 *:* LISTEN
?tcp 0 0 *:6000 *:* LISTEN
?tcp 0 0 *:socks *:* LISTEN
?tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE

上 面的輸出表明部分服務器處于等待接入連接狀態。利用- a選項的話,netstat還會顯示出所有的套接字。注意根據端口號,可以判斷出一條連接是否是外出連接。對呼叫方主機來說,列出的端口號應該一直是一個 整數,而對眾所周知服務(well known service)端口正在使用中的被呼叫方來說,netstat采用的則是取自/etc/services文件的象征性服務名。

這篇文章主要介紹了Linux中netstat命令的使用方法,我們現在要注意netstat命令正逐漸遭到廢棄,所以我們應盡可能地使用ss命令等來替代其作用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扎囊县| 南投县| 双鸭山市| 宾阳县| 二手房| 句容市| 商河县| 南雄市| 彭泽县| 合肥市| 富阳市| 广东省| 吉林省| 疏附县| 瓮安县| 阳谷县| 家居| 怀安县| 泰宁县| 黑水县| 成都市| 富宁县| 凤凰县| 恩施市| 枣阳市| 临湘市| 鄂尔多斯市| 承德市| 阿图什市| 上高县| 鸡泽县| 光泽县| 灌阳县| 三门县| 禹州市| 大竹县| 道孚县| 凤阳县| 密云县| 邵阳县| 通榆县|