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