淺談Linux下常見網(wǎng)絡(luò)命令
今天,我將繼續(xù)談?wù)撁嬖嚒?美團網(wǎng)站上幾乎有十個真正的Java問題。 今天,我將討論Linux命令。 Linux在超級計算機的TOP500操作系統(tǒng)的世界排名中代表了十幾個。 長期保持在85%以上,并呈快速上升趨勢。 根據(jù)2016年的排名。
Linux的占比已經(jīng)高達98.80%。其實在各種大、中小型企業(yè)的服務(wù)器應(yīng)用領(lǐng)域,Linux系統(tǒng)的市場份額也越來越接近這個比例,這足以說明Linux的表現(xiàn)是多么出色。
所以面試的時候卻經(jīng)常會被問到,我們根據(jù)面經(jīng)來進行補短板,查漏補缺。下面開始今天的干貨內(nèi)容吧,走起。
1.ping命令
ping命令用來測試主機之間網(wǎng)絡(luò)的連通性。執(zhí)行ping指令會使用ICMP傳輸協(xié)議,發(fā)出要求回應(yīng)的信息,若遠端主機的網(wǎng)絡(luò)功能沒有問題,就會回應(yīng)該信息,因而得知該主機運作正常。
用法
(1)命令格式
ping ( 選項)目的地址
目的地址指的是被測計算機的IP 地址、主機名或者是域名。ping 命令包含12 個參數(shù),所有參數(shù)都可以通過執(zhí)行ping來查看
(2)實例
ping www.baidu.com
注:
Linux下的ping命令和Windows下的ping命令不同
,需要Ctrl+C來終止
(3)選項
-d:使用Socket的SO_DEBUG功能;-c<完成次數(shù)>:設(shè)置完成要求回應(yīng)的次數(shù);-f:極限檢測;-i<間隔秒數(shù)>:指定收發(fā)信息的間隔時間;-L<網(wǎng)絡(luò)界面>:使用指定的網(wǎng)絡(luò)界面送出數(shù)據(jù)包;-l<前置載入>:設(shè)置在送出要求信息之前,先行發(fā)出的數(shù)據(jù)包;-n:只輸出數(shù)值;-p<范本樣式>:設(shè)置填滿數(shù)據(jù)包的范本樣式;-q:不顯示指令執(zhí)行過程,開頭和結(jié)尾的相關(guān)信息除外;-r:忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠端主機上;-R:記錄路由過程;-s<數(shù)據(jù)包大小>:設(shè)置數(shù)據(jù)包的大小;-v:詳細顯示指令的執(zhí)行過程。-t<存活數(shù)值>:設(shè)置存活數(shù)值TTL的大小
說一下其中的
-c、 -i
參數(shù)其中 –c count 次數(shù),也就是ping的次數(shù);-i interval 間隔 ,每次ping之間的時間空格
ping www.baidu.com -c 6-i 0.6
2、telnet
telnet命令用于登錄遠程主機,對遠程主機進行管理。telnet因為采用明文傳送報文,安全性不好,很多
Linux服務(wù)器都不開放telnet服務(wù),而改用更安全的ssh方式了。
3、netstat
netstat命令用來打印Linux中網(wǎng)絡(luò)系統(tǒng)的狀態(tài)信息,可讓你得知整個Linux系統(tǒng)的網(wǎng)絡(luò)情況。
用法:
(1)命令格式:
netstat(選項)
(2)選項
-a或–all:顯示所有連線中的Socket;-A<網(wǎng)絡(luò)類型>或–<網(wǎng)絡(luò)類型>:列出該網(wǎng)絡(luò)類型連線中的相關(guān)地址;-c或–continuous:持續(xù)列出網(wǎng)絡(luò)狀態(tài);-C或–cache:顯示路由器配置的快取信息;-e或–extend:顯示網(wǎng)絡(luò)其他相關(guān)信息;-F或–fib:顯示FIB;-g或–groups:顯示多重廣播功能群組組員名單;-h或–help:在線幫助;-i或–interfaces:顯示網(wǎng)絡(luò)界面信息表單;-l或–listening:顯示監(jiān)控中的服務(wù)器的Socket;-M或–masquerade:顯示偽裝的網(wǎng)絡(luò)連線;-n或–numeric:直接使用ip地址,而不通過域名服務(wù)器;-N或–netlink或–symbolic:顯示網(wǎng)絡(luò)硬件外圍設(shè)備的符號連接名稱;-o或–timers:顯示計時器;-p或–programs:顯示正在使用Socket的程序識別碼和程序名稱;-r或–route:顯示Routing Table;-s或–statistice:顯示網(wǎng)絡(luò)工作信息統(tǒng)計表;-t或–tcp:顯示TCP傳輸協(xié)議的連線狀況;-u或–udp:顯示UDP傳輸協(xié)議的連線狀況;-v或–verbose:顯示指令執(zhí)行過程;-V或–version:顯示版本信息;-w或–raw:顯示RAW傳輸協(xié)議的連線狀況;-x或–unix:此參數(shù)的效果和指定”-A unix”參數(shù)相同;–ip或–inet:此參數(shù)的效果和指定”-A inet”參數(shù)相同
(3)實例
netstat -a //列出所有端口netstat -at//列出所有tcp端口netstat -au//列出所有udp端口
在這里顯示所有的TCP端口
netstat -l//只顯示監(jiān)聽端口netstat -lt//只列出所有監(jiān)聽 tcp 端口netstat -lu//只列出所有監(jiān)聽 udp 端口
和上面的圖相比,可以看到只顯示出了監(jiān)聽狀態(tài)的TCP端口
4、ifconfig
ifconfig命令被用于配置和顯示Linux內(nèi)核中網(wǎng)絡(luò)接口的網(wǎng)絡(luò)參數(shù)。用ifconfig命令配置的網(wǎng)卡信息,在網(wǎng)卡重啟后機器重啟后,配置就不存在。要想將上述的配置信息永遠的存的電腦里,那就要修改網(wǎng)卡的配置文件了。
用法:(1)命令格式
ifconfig(參數(shù))
(2)實例
inet 用來表示網(wǎng)卡的IP地址,此網(wǎng)卡的IP地址是:192.168.1.106
廣播地址Bcast:192.168.1.255
掩碼地址Mask:255.255.255.0
lo是表示主機的回環(huán)地址
,這個一般是用來測試一個網(wǎng)絡(luò)程序,但又不想讓局域網(wǎng)或外網(wǎng)的用戶能夠查看,只能在此臺主機上運行和查看所用的網(wǎng)絡(luò)接口。
(3)參數(shù)
add<地址>:設(shè)置網(wǎng)絡(luò)設(shè)備IPv6的ip地址del<地址>:刪除網(wǎng)絡(luò)設(shè)備IPv6的IP地址down:關(guān)閉指定的網(wǎng)絡(luò)設(shè)備io_addr< I/O地址>:設(shè)置網(wǎng)絡(luò)設(shè)備的I/O地址irq< IRQ地址>:設(shè)置網(wǎng)絡(luò)設(shè)備的IRQ;media<網(wǎng)絡(luò)媒介類型>:設(shè)置網(wǎng)絡(luò)設(shè)備的媒介類型;mem_start<內(nèi)存地址>:設(shè)置網(wǎng)絡(luò)設(shè)備在主內(nèi)存所占用的起始地址;metric<數(shù)目>:指定在計算數(shù)據(jù)包的轉(zhuǎn)送次數(shù)時,所要加上的數(shù)目;mtu<字節(jié)>:設(shè)置網(wǎng)絡(luò)設(shè)備的MTU;netmask<子網(wǎng)掩碼>:設(shè)置網(wǎng)絡(luò)設(shè)備的子網(wǎng)掩碼;tunnel<地址>:建立IPv4與IPv6之間的隧道通信地址;up:啟動指定的網(wǎng)絡(luò)設(shè)備;-broadcast<地址>:將要送往指定地址的數(shù)據(jù)包當(dāng)成廣播數(shù)據(jù)包來處理;-pointopoint<地址>:與指定地址的網(wǎng)絡(luò)設(shè)備建立直接連線,此模式具有保密功能;-promisc:關(guān)閉或啟動指定網(wǎng)絡(luò)設(shè)備的promiscuous模式;IP地址:指定網(wǎng)絡(luò)設(shè)備的IP地址;網(wǎng)絡(luò)設(shè)備:指定網(wǎng)絡(luò)設(shè)備的名稱。
5、route
route命令用來
顯示并設(shè)置Linux內(nèi)核中的網(wǎng)絡(luò)路由表
,route命令設(shè)置的路由主要是靜態(tài)路由。要注意的是,直接在命令行下執(zhí)行route命令來添加路由,不會永久保存,當(dāng)網(wǎng)卡重啟或者機器重啟之后,該路由就失效了;可以在
*/etc/rc.local
中添加route命令來保證該路由設(shè)置永久有效。
用法:(1)命令格式
route(選項)(參數(shù))
(2)選項
-A:設(shè)置地址類型;-C:打印將Linux核心的路由緩存;-v:詳細信息模式;-n:不執(zhí)行DNS反向查找,直接顯示數(shù)字形式的IP地址;-e:netstat格式顯示路由表;-net:到一個網(wǎng)絡(luò)的路由表;-host:到一個主機的路由表。
(3)參數(shù)
Add:增加指定的路由記錄Del:刪除指定的路由記錄Target:目的網(wǎng)絡(luò)或目的主機gw:設(shè)置默認(rèn)網(wǎng)關(guān)mss:設(shè)置TCP的最大區(qū)塊長度(MSS),單位為MBwindow:指定通過路由表的TCP連接的TCP窗口大小dev:路由記錄所表示的網(wǎng)絡(luò)接口
(4)實例
顯示當(dāng)前路由,從圖中可以看出加了選項-n的變化
刪除和添加設(shè)置默認(rèn)網(wǎng)關(guān)(這里就不演示了)
6、arp
arp命令用于操作主機arp緩沖區(qū),可以顯示arp緩沖區(qū)的所有條目、刪除指定條目或增加靜態(tài)IP地址與MAC地址的對應(yīng)關(guān)系
用法:(1)命令格式
arp(選項)(參數(shù))
(2)選項
-a<主機>:顯示arp緩沖區(qū)的所有條目-H<地址類型>:指定arp指令使用的地址類型-d<主機>:從arp緩沖區(qū)中刪除指定主機的arp條目-D:使用指定接口的硬件地址-e:以Linux的顯示風(fēng)格顯示arp緩沖區(qū)中的條目-i<接口>:指定要操作arp緩沖區(qū)的網(wǎng)絡(luò)接口-s<主機><硬件地址>:設(shè)置指定主機的IP地址與MAC地址的靜態(tài)映射-n:以數(shù)字方式顯示arp緩沖區(qū)中的條目-v:顯示詳細的arp緩沖區(qū)條目,包括緩沖區(qū)條目的統(tǒng)計信息-f<文件>:設(shè)置主機的IP地址與MAC地址的靜態(tài)映射
(3)參數(shù)
主機:查詢arp緩沖區(qū)中指定主機的arp條目。
(4)實例
arp -aarp -v
7、traceroute
traceroute命令用于追蹤數(shù)據(jù)包在網(wǎng)絡(luò)上傳輸時的全部路徑
,它默認(rèn)發(fā)送的數(shù)據(jù)包大小是40字節(jié)通過traceroute我們可以知道
信息從你的計算機到互聯(lián)網(wǎng)另一端的主機是走的什么路徑
。當(dāng)然每次數(shù)據(jù)包由某一同樣的出發(fā)點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。traceroute通過發(fā)送小的數(shù)據(jù)包到目的設(shè)備直到其返回,來測量其需要多長時間。一條路徑上的每個設(shè)備traceroute要測3次。輸出結(jié)果中包括每次測試的時間(ms)和設(shè)備的名稱(如有的話)及其ip地址
用法:(1)命令格式
traceroute(選項)(參數(shù))
(2)選項
-d:使用Socket層級的排錯功能-f<存活時間>:設(shè)置第一個檢測數(shù)據(jù)包的存活數(shù)值TTL的大小-F:設(shè)置勿離斷位-g<網(wǎng)關(guān)>:設(shè)置來源路由網(wǎng)關(guān),最多可設(shè)置8個-i<網(wǎng)絡(luò)界面>:使用指定的網(wǎng)絡(luò)界面送出數(shù)據(jù)包-l:使用ICMP回應(yīng)取代UDP資料信息-m<存活數(shù)值>:設(shè)置檢測數(shù)據(jù)包的最大存活數(shù)值TTL的大小-n:直接使用IP地址而非主機名-p<通信端口>:設(shè)置UDP傳輸協(xié)議的通信端口-r:忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠端主機上-s<來源地址>:設(shè)置本地主機送出數(shù)據(jù)包的TOS數(shù)值-v:詳細顯示指令的執(zhí)行過程-w<超時秒數(shù)>:設(shè)置等待遠端主機回報的時間-x:開啟或關(guān)閉數(shù)據(jù)包的正確性檢驗
(3)參數(shù)
主機:指定目的主機IP地址或主機名
(4)實例
traceroute www.baidu.com
從圖中可以看出記錄按序列號從1開始,
每個紀(jì)錄就是一跳 ,每跳表示一個網(wǎng)關(guān),
我們看到每行有三個時間,單位是ms,其實就是-q的默認(rèn)參數(shù)。探測數(shù)據(jù)包向每個網(wǎng)關(guān)發(fā)送三個數(shù)據(jù)包后,網(wǎng)關(guān)響應(yīng)后返回的時間;在后面一部分我們會看到有一些行是以星號表示的。出現(xiàn)這樣的情況,可能是防火墻封掉了ICMP的返回信息,所以我們得不到什么相關(guān)的數(shù)據(jù)包返回數(shù)據(jù)。
8、host
host命令是常用的分析域名查詢工具,可以檢測域名系統(tǒng)工作是否正常
用法:(1)命令格式
host(選項)(參數(shù))
(2)選項
-a:顯示詳細的DNS信息-c<類型>:指定查詢類型,默認(rèn)值為“IN”-C:查詢指定主機的完整SOA記錄-r:在查詢域名時,不使用遞歸的查詢方式-t<類型>:指定查詢第域名信息類型-v:顯示指令執(zhí)行的詳細信息-a:顯示詳細的DNS信息;-w:如果域名服務(wù)器沒有給出應(yīng)答信息,則一直等待,直到域名服務(wù)器給出應(yīng)答-W<時間>:指定域名查詢的最長時間,如果在指定時間內(nèi)域名服務(wù)器沒有給出應(yīng)答信息,則退出指令-4:使用IPv4-6:使用IPv6
(3)參數(shù)
主機:要查詢的主機信息
9、tcpdump
tcpdump命令是一款抓取數(shù)據(jù)包的工具,它可以打印所有經(jīng)過網(wǎng)絡(luò)接口的數(shù)據(jù)包的頭信息,也可以使用-w選項將數(shù)據(jù)包保存到文件中,方便以后分析。
用法:
(1)命令格式
tcpdump(選項)
(2)選項
-a:嘗試將網(wǎng)絡(luò)和廣播地址轉(zhuǎn)換成名稱;-c<數(shù)據(jù)包數(shù)目>:收到指定的數(shù)據(jù)包數(shù)目后,就停止進行傾倒操作;-d:把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成可閱讀的格式,并傾倒到標(biāo)準(zhǔn)輸出;-dd:把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成C語言的格式,并傾倒到標(biāo)準(zhǔn)輸出;-ddd:把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成十進制數(shù)字的格式,并傾倒到標(biāo)準(zhǔn)輸出;-e:在每列傾倒資料上顯示連接層級的文件頭;-f:用數(shù)字顯示網(wǎng)際網(wǎng)絡(luò)地址;-F<表達文件>:指定內(nèi)含表達方式的文件;-i<網(wǎng)絡(luò)界面>:使用指定的網(wǎng)絡(luò)截面送出數(shù)據(jù)包;-l:使用標(biāo)準(zhǔn)輸出列的緩沖區(qū);-n:不把主機的網(wǎng)絡(luò)地址轉(zhuǎn)換成名字;-N:不列出域名;-O:不將數(shù)據(jù)包編碼最佳化;-p:不讓網(wǎng)絡(luò)界面進入混雜模式;-q :快速輸出,僅列出少數(shù)的傳輸協(xié)議信息;-r<數(shù)據(jù)包文件>:從指定的文件讀取數(shù)據(jù)包數(shù)據(jù);-s<數(shù)據(jù)包大小>:設(shè)置每個數(shù)據(jù)包的大小;-S:用絕對而非相對數(shù)值列出TCP關(guān)聯(lián)數(shù);-t:在每列傾倒資料上不顯示時間戳記;-tt:在每列傾倒資料上顯示未經(jīng)格式化的時間戳記;-T<數(shù)據(jù)包類型>:強制將表達方式所指定的數(shù)據(jù)包轉(zhuǎn)譯成設(shè)置的數(shù)據(jù)包類型;-v:詳細顯示指令執(zhí)行過程;-vv:更詳細顯示指令執(zhí)行過程;-x:用十六進制字碼列出數(shù)據(jù)包資料;-w<數(shù)據(jù)包文件>:把數(shù)據(jù)包數(shù)據(jù)寫入指定的文件。