面試官問我Linux下常見網路命令總結

2020-08-10 16:26:46

在这里插入图片描述

前言

今天繼續來講面試,已經出了將近十個美團java一面真題系列文章了,今天來講一講Linux命令相關內容,在全球超級計算機TOP500強操作系統排行榜中,Linux的佔比最近十幾年長期保持在85%以上,且一直呈現快速上升趨勢。根據2016年的排行榜,Linux的佔比已經高達98.80%。其實在各種大、中小型企業的伺服器應用領域,Linux系統的市場份額也越來越接近這個比例,這足以說明Linux的表現是多麼出色。所以面試的時候卻經常會被問到,我們根據面經來進行補短板,查漏補缺。下面 下麪開始今天的乾貨內容吧,走起,記得點贊,點選在看哦。

在这里插入图片描述

1.ping命令

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

用法

(1)命令格式

ping ( 選項)目的地址

目的地址指的是被測計算機的IP 地址、主機名或者是域名。ping 命令包含12 個參數,所有參數都可以通過執行ping來檢視
在这里插入图片描述
(2)範例

ping www.baidu.com

在这里插入图片描述
注:Linux下的ping命令和Windows下的ping命令不同,需要Ctrl+C來終止

(3)選項

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

說一下其中的-c、 -i參數
其中 –c count 次數,也就是ping的次數;-i interval 間隔 ,每次ping之間的時間空格

ping www.baidu.com -c 6 -i 0.6

在这里插入图片描述

2、telnet

telnet命令用於登錄遠端主機,對遠端主機進行管理。telnet因爲採用明文傳送報文,安全性不好,很多Linux伺服器都不開放telnet服務,而改用更安全的ssh方式了

3、netstat

netstat命令用來列印Linux中網路系統的狀態資訊,可讓你得知整個Linux系統的網路情況

用法

1)命令格式

netstat(選項)
(2)選項

-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」參數相同

(3)範例

netstat -a     //列出所有埠
netstat -at    //列出所有tcp埠
netstat -au    //列出所有udp埠   

在這裏顯示所有的TCP埠
在这里插入图片描述

netstat -l        //只顯示監聽埠
netstat -lt       //只列出所有監聽 tcp 埠
netstat -lu       //只列出所有監聽 udp 埠

和上面的圖相比,可以看到只顯示出了監聽狀態的TCP埠
在这里插入图片描述

4、ifconfig

ifconfig命令被用於設定和顯示Linux內核中網路介面的網路參數。用ifconfig命令設定的網絡卡資訊,在網絡卡重新啓動後機器重新啓動後,設定就不存在。要想將上述的設定資訊永遠的存的電腦裡,那就要修改網絡卡的組態檔了。

用法
(1)命令格式

ifconfig(參數)

(2)範例

在这里插入图片描述

  • inet 用來表示網絡卡的IP地址,此網絡卡的IP地址是:192.168.1.106
  • 廣播地址Bcast:192.168.1.255
  • 掩碼地址Mask:255.255.255.0

lo是表示主機的迴環地址,這個一般是用來測試一個網路程式,但又不想讓區域網或外網的使用者能夠檢視,只能在此台主機上執行和檢視所用的網路介面。

(3)參數

add<地址>:設定網路裝置IPv6的ip地址
del<地址>:刪除網路裝置IPv6的IP地址
down:關閉指定的網路裝置
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地址;
網路裝置:指定網路裝置的名稱。

5、route

route命令用來顯示並設定Linux內核中的網路路由表,route命令設定的路由主要是靜態路由。要注意的是,直接在命令列下執行route命令來新增路由,不會永久儲存,當網絡卡重新啓動或者機器重新啓動之後,該路由就失效了;可以在*/etc/rc.local中新增route命令來保證該路由設定永久有效。

用法
(1)命令格式

route(選項)(參數)
(2)選項

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

(3)參數

Add:增加指定的路由記錄
Del:刪除指定的路由記錄
Target:目的網路或目的主機
gw:設定預設閘道器
mss:設定TCP的最大區塊長度(MSS),單位爲MB
window:指定通過路由表的TCP連線的TCP視窗大小
dev:路由記錄所表示的網路介面

(4)範例

顯示當前路由,從圖中可以看出加了選項-n的變化
在这里插入图片描述

刪除和新增設定預設閘道器(這裏就不演示了)

6、arp

arp命令用於操作主機arp緩衝區,可以顯示arp緩衝區的所有條目、刪除指定條目或增加靜態IP地址與MAC地址的對應關係

用法
(1)命令格式

arp(選項)(參數)

(2)選項

-a<主機>:顯示arp緩衝區的所有條目
-H<地址型別>:指定arp指令使用的地址型別
-d<主機>:從arp緩衝區中刪除指定主機的arp條目
-D:使用指定介面的硬體地址
-e:以Linux的顯示風格顯示arp緩衝區中的條目
-i<介面>:指定要操作arp緩衝區的網路介面
-s<主機><硬體地址>:設定指定主機的IP地址與MAC地址的靜態對映
-n:以數位方式顯示arp緩衝區中的條目
-v:顯示詳細的arp緩衝區條目,包括緩衝區條目的統計資訊
-f<檔案>:設定主機的IP地址與MAC地址的靜態對映

(3)參數

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

(4)範例

arp -a
arp -v

在这里插入图片描述

7、traceroute

traceroute命令用於追蹤數據包在網路上傳輸時的全部路徑,它預設發送的數據包大小是40位元組通過traceroute我們可以知道資訊從你的計算機到網際網路另一端的主機是走的什麼路徑。當然每次數據包由某一同樣的出發點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。traceroute通過發送小的數據包到目的裝置直到其返回,來測量其需要多長時間。一條路徑上的每個裝置traceroute要測3次。輸出結果中包括每次測試的時間(ms)和裝置的名稱(如有的話)及其ip地址

用法
(1)命令格式

traceroute(選項)(參數)

(2)選項

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

(3)參數

主機:指定目的主機IP地址或主機名
(4)範例

traceroute www.baidu.com

在这里插入图片描述

從圖中可以看出記錄按序列號從1開始,每個紀錄就是一跳 ,每跳錶示一個閘道器,我們看到每行有三個時間,單位是ms,其實就是-q的預設參數。探測數據包向每個閘道器發送三個數據包後,閘道器響應後返回的時間;在後面一部分我們會看到有一些行是以星號表示的。出現這樣的情況,可能是防火牆封掉了ICMP的返回資訊,所以我們得不到什麼相關的數據包返回數據。

8、host

host命令是常用的分析域名查詢工具,可以檢測域名系統工作是否正常

用法
(1)命令格式

host(選項)(參數)

(2)選項

-a:顯示詳細的DNS資訊
-c<型別>:指定查詢型別,預設值爲「IN」
-C:查詢指定主機的完整SOA記錄
-r:在查詢域名時,不使用遞回的查詢方式
-t<型別>:指定查詢第域名資訊型別
-v:顯示指令執行的詳細資訊
-a:顯示詳細的DNS資訊;
-w:如果域名伺服器沒有給出應答資訊,則一直等待,直到域名伺服器給出應答
-W<時間>:指定域名查詢的最長時間,如果在指定時間內域名伺服器沒有給出應答資訊,則退出指令
-4:使用IPv4
-6:使用IPv6

(3)參數

主機:要查詢的主機資訊

9、tcpdump

tcpdump命令是一款抓取數據包的工具,它可以列印所有經過網路介面的數據包的頭資訊,也可以使用-w選項將數據包儲存到檔案中,方便以後分析。

用法
(1)命令格式

tcpdump(選項)

(2)選項

-a:嘗試將網路和廣播地址轉換成名稱;
-c<數據包數目>:收到指定的數據包數目後,就停止進行傾倒操作;
-d:把編譯過的數據包編碼轉換成可閱讀的格式,並傾倒到標準輸出;
-dd:把編譯過的數據包編碼轉換成C語言的格式,並傾倒到標準輸出;
-ddd:把編譯過的數據包編碼轉換成十進制數位的格式,並傾倒到標準輸出;
-e:在每列傾倒資料上顯示連線層級的檔案頭;
-f:用數位顯示網際網路地址;
-F<表達檔案>:指定內含表達方式的檔案;
-i<網路介面>:使用指定的網路截面送出數據包;
-l:使用標準輸出列的緩衝區;
-n:不把主機的網路地址轉換成名字;
-N:不列出域名;
-O:不將數據包編碼最佳化;
-p:不讓網路介面進入混雜模式;
-q :快速輸出,僅列出少數的傳輸協定資訊;
-r<數據包檔案>:從指定的檔案讀取數據包數據;
-s<數據包大小>:設定每個數據包的大小;
-S:用絕對而非相對數值列出TCP關聯數;
-t:在每列傾倒資料上不顯示時間戳記;
-tt:在每列傾倒資料上顯示未經格式化的時間戳記;
-T<數據包型別>:強制將表達方式所指定的數據包轉譯成設定的數據包型別;
-v:詳細顯示指令執行過程;
-vv:更詳細顯示指令執行過程;
-x:用十六進制字碼列出數據包資料;
-w<數據包檔案>:把數據包數據寫入指定的檔案。