面試官問(wèn)我Linux下常見(jiàn)網(wǎng)絡(luò)命令
?一起學(xué)習(xí)、成長(zhǎng)、溫情的熱愛(ài)生活???

前言
今天來(lái)講一講Linux命令相關(guān)內(nèi)容,在全球超級(jí)計(jì)算機(jī)TOP500強(qiáng)操作系統(tǒng)排行榜中,Linux的占比最近十幾年長(zhǎng)期保持在85%以上,且一直呈現(xiàn)快速上升趨勢(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ì)被問(wèn)到,我們根據(jù)面經(jīng)來(lái)進(jìn)行補(bǔ)短板,查漏補(bǔ)缺。下面開(kāi)始今天的干貨內(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ò)功能沒(méi)有問(wèn)題,就會(huì)回應(yīng)該信息,因而得知該主機(jī)運(yùn)作正常。用法(1)命令格式
ping?( 選項(xiàng))目的地址
目的地址指的是被測(cè)計(jì)算機(jī)的IP 地址、主機(jī)名或者是域名。ping 命令包含12 個(gè)參數(shù),所有參數(shù)都可以通過(guò)執(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í)行過(guò)程,開(kāi)頭和結(jié)尾的相關(guān)信息除外;
-r:忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠(yuǎn)端主機(jī)上;
-R:記錄路由過(guò)程;
-s<數(shù)據(jù)包大小>:設(shè)置數(shù)據(jù)包的大小;
-v:詳細(xì)顯示指令的執(zhí)行過(guò)程。
-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ù)器都不開(kāi)放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地址,而不通過(guò)域名服務(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í)行過(guò)程;
-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)聽(tīng)端口
netstat -lt?//只列出所有監(jiān)聽(tīng) tcp 端口
netstat -lu?//只列出所有監(jiān)聽(tīng) udp 端口
和上面的圖相比,可以看到只顯示出了監(jiān)聽(tīng)狀態(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),單位為MB
window:指定通過(guò)路由表的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?-a
arp -v

7、traceroute?
traceroute命令用于追蹤數(shù)據(jù)包在網(wǎng)絡(luò)上傳輸時(shí)的全部路徑
,它默認(rèn)發(fā)送的數(shù)據(jù)包大小是40字節(jié)通過(guò)traceroute我們可以知道信息從你的計(jì)算機(jī)到互聯(lián)網(wǎng)另一端的主機(jī)是走的什么路徑
。當(dāng)然每次數(shù)據(jù)包由某一同樣的出發(fā)點(diǎn)(source)到達(dá)某一同樣的目的地(destination)走的路徑可能會(huì)不一樣,但基本上來(lái)說(shuō)大部分時(shí)候所走的路由是相同的。traceroute通過(guò)發(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í)行過(guò)程
-w<超時(shí)秒數(shù)>:設(shè)置等待遠(yuǎn)端主機(jī)回報(bào)的時(shí)間
-x:開(kāi)啟或關(guān)閉數(shù)據(jù)包的正確性檢驗(yàn)
(3)參數(shù)
主機(jī):指定目的主機(jī)IP地址或主機(jī)名
(4)實(shí)例
traceroute?www.baidu.com

從圖中可以看出記錄按序列號(hào)從1開(kāi)始,每個(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ù)器沒(méi)有給出應(yīng)答信息,則一直等待,直到域名服務(wù)器給出應(yīng)答
-W<時(shí)間>:指定域名查詢的最長(zhǎng)時(shí)間,如果在指定時(shí)間內(nèi)域名服務(wù)器沒(méi)有給出應(yīng)答信息,則退出指令
-4:使用IPv4
-6:使用IPv6
(3)參數(shù)
主機(jī):要查詢的主機(jī)信息
9、tcpdump
tcpdump命令是一款抓取數(shù)據(jù)包的工具,它可以打印所有經(jīng)過(guò)網(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:把編譯過(guò)的數(shù)據(jù)包編碼轉(zhuǎn)換成可閱讀的格式,并傾倒到標(biāo)準(zhǔn)輸出;
-dd:把編譯過(guò)的數(shù)據(jù)包編碼轉(zhuǎn)換成C語(yǔ)言的格式,并傾倒到標(biāo)準(zhǔn)輸出;
-ddd:把編譯過(guò)的數(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í)行過(guò)程;
-vv:更詳細(xì)顯示指令執(zhí)行過(guò)程;
-x:用十六進(jìn)制字碼列出數(shù)據(jù)包資料;
-w<數(shù)據(jù)包文件>:把數(shù)據(jù)包數(shù)據(jù)寫入指定的文件。

面試官問(wèn)我Linux下常見(jiàn)網(wǎng)絡(luò)命令的評(píng)論 (共 條)
