網(wǎng)絡(luò)相關(guān)的Linux常用命令

1. ping

簡介

ping屬于一個通信協(xié)議,是TCP/IP協(xié)議的一部分。它的原理是:利用網(wǎng)絡(luò)上機器IP地址的唯一性,給目標(biāo)IP地址發(fā)送一個數(shù)據(jù)包,通過對方回復(fù)的數(shù)據(jù)包來確定兩臺網(wǎng)絡(luò)機器是否連接相通,時延是多少。

示例
[root@192 ~]# ping www.baidu.com
PING www.baidu.com (36.152.44.95) 56(84) bytes of data.
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=1 ttl=128 time=11.2 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=2 ttl=128 time=12.5 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=3 ttl=128 time=12.2 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 11.284/12.017/12.501/0.534 ms
  • 返回內(nèi)容包括:

1)ping目標(biāo)主機的域名和IP(ping會自動將域名轉(zhuǎn)換為IP)

2)不帶包頭的包大小和帶包頭的包大小

3)icmp_seq:ping序列,從1開始;如果數(shù)字不是按順序遞增也就意味著丟包了;

ttl:剩余的ttl(Time To Live,TTL由IP數(shù)據(jù)包的發(fā)送者設(shè)置,在IP數(shù)據(jù)包從源到目的的整個轉(zhuǎn)發(fā)路徑上,每經(jīng)過一個路由器,則把該TTL的值減1,然后再將IP包轉(zhuǎn)發(fā)出去。如果在IP包到達目的IP之前,TTL減少為0,路由器將會丟棄收到的TTL=0的IP包,并向IP包的發(fā)送者發(fā)送 ICMP time exceeded消息,以防止數(shù)據(jù)包不斷在IP互聯(lián)網(wǎng)絡(luò)上永不終止地循環(huán)。);

time: 響應(yīng)時間,數(shù)值越小,聯(lián)通速度越快;

4)發(fā)出去的包數(shù),返回的包數(shù),丟包率,耗費時間;

5)最小/最大/平均響應(yīng)時間和本機硬件耗費時間;

原理
  • ping是應(yīng)用層直接使用網(wǎng)絡(luò)層ICMP的一個例子,它沒有通過運輸層的TCP或UDP。ping命令底層使用的是ICMP,ICMP報文封裝在ip包里,所以ICMP屬于網(wǎng)絡(luò)層協(xié)議。

  • ping 命令每秒發(fā)送一個ICMP ECHO_REQUEST數(shù)據(jù)報并且為每個接收到的響應(yīng)打印一行輸出。ping 命令計算信號往返時間和(信息)包丟失情況的統(tǒng)計信息,并且在完成之后顯示一個簡要總結(jié)。ping 命令在程序超時或當(dāng)接收到 SIGINT 信號時結(jié)束。

  • 有些服務(wù)器為了防止通過ping探測到,通過防火墻設(shè)置了禁止ping或者在內(nèi)核參數(shù)中禁止ping,這樣就不能通過ping確定該主機是否還處于開啟狀態(tài)。

fping

fping命令類似于ping(ping是通過ICMP(網(wǎng)絡(luò)控制信息協(xié)議InternetControl Message Protocol)協(xié)議回復(fù)請求以檢測主機是否存在)。Fping與ping不同的地方在于,fping可以在命令行中指定要ping的主機數(shù)量范圍,也可以指定含有要ping的主機列表文件。與ping要等待某一主機連接超時或發(fā)回反饋信息不同,fping給一個主機發(fā)送完數(shù)據(jù)包后,馬上給下一個主機發(fā)送數(shù)據(jù)包,實現(xiàn)多主機同時ping。如果某一主機ping通,則此主機將被打上標(biāo)記,并從等待列表中移除,如果沒ping通,說明主機無法到達,主機仍然留在等待列表中,等待后續(xù)操作。

2. telnet

簡介
  • Telnet協(xié)議是TCP/IP協(xié)議族中的一員,telnet是連接遠程計算機的連接協(xié)議。但由于其是明文傳輸,逐漸被ssh取代。但我們可以使用telnet 命令來測試遠程端口是否連通。
telnet IP port

3. traceroute

簡介
  • 應(yīng)用的數(shù)據(jù)包在發(fā)送到服務(wù)器之前都要經(jīng)過層層的路由轉(zhuǎn)發(fā)。而Traceroute是一種常規(guī)的網(wǎng)絡(luò)分析工具,用來定位到目標(biāo)主機之間的所有路由器。
  • 基于ICMP或UDP或TCP協(xié)議
示例
[root@192 ~]# traceroute www.baidu.com
traceroute to www.baidu.com (36.152.44.95), 30 hops max, 60 byte packets
 1  192.168.182.2  0.184 ms  0.143 ms  0.142 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
...
  • 返回的記錄按序列號從1開始,每個紀錄就是一跳 ,每跳表示一個網(wǎng)關(guān),每行有三個時間,分別表示探測數(shù)據(jù)包向每個網(wǎng)關(guān)發(fā)送三個數(shù)據(jù)包后,網(wǎng)關(guān)響應(yīng)后返回的時間。
  • 常用參數(shù):
-n: 使用IP,不使用域名,速度更快
  • 基于TCP SYN:
# traceroute -T -p 80 -n www.jd.com
traceroute to www.jd.com (117.59.121.81), 30 hops max, 60 byte packets
 1  192.168.182.2  0.260 ms  0.178 ms  0.299 ms
 2  117.59.121.81  20.067 ms  20.017 ms  19.587 ms
原理
  • traceroute的實現(xiàn)借助了TTL,通過向目的地址發(fā)送一系列的探測包,設(shè)置探測包的TTL初始值分別為1,2,3…,根據(jù)返回的超時通知(ICMP Time Exceeded Message)得到源地址與目的地址之間的每一跳路由信息。
  • Linux和Mac OS等系統(tǒng)使用UDP包進行探測,目標(biāo)端口號默認為33434,每次探測目標(biāo)端口號加1。Traceroute故意使用了一個大于 30000 的目標(biāo)端口號,以保證目標(biāo)地址收到數(shù)據(jù)包后能夠返回一個“端口不可達”的 ICMP 報文,于是源地址就可將端口不可達報文當(dāng)作跟蹤結(jié)束的標(biāo)志。
  • Traceroute每跳默認發(fā)送3個探測包(發(fā)包的數(shù)量可通過-q進行設(shè)置),探測包的返回會受到網(wǎng)絡(luò)情況的影響。如果防火墻封掉了ICMP的返回信息,那么相應(yīng)的延時位置會以*顯示。如果某臺網(wǎng)關(guān)阻塞或者某臺DNS出現(xiàn)問題,那么相應(yīng)行的延時會變長??梢约?n 參數(shù)來避免DNS解析,以IP格式輸出數(shù)據(jù)。

4. ifconfig

簡介
  • Linux ifconfig命令用于顯示或設(shè)置網(wǎng)絡(luò)設(shè)備。
    ifconfig可設(shè)置網(wǎng)絡(luò)設(shè)備的狀態(tài),或是顯示目前的設(shè)置。用ifconfig命令配置的網(wǎng)卡信息,在網(wǎng)卡重啟后機器重啟后,配置就不存在。要想將上述的配置信息永遠的存的電腦里,那就要修改網(wǎng)卡的配置文件了。
  • ip addr命令也有相似功能。
示例
[root@192 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.182.130  netmask 255.255.255.0  broadcast 192.168.182.255
        inet6 fe80::a15c:47dd:2868:7170  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:8d:54:79  txqueuelen 1000  (Ethernet)
        RX packets 9287  bytes 728375 (711.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2378  bytes 213886 (208.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 448  bytes 37968 (37.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 448  bytes 37968 (37.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33是內(nèi)置的PCI-E網(wǎng)卡

第一行:

UP:代表此網(wǎng)絡(luò)接口為啟用狀態(tài)(down為關(guān)閉狀態(tài)) ;

RUNNING:代表網(wǎng)卡設(shè)備已連接

MULTICAST:表示支持組播

MTU:為數(shù)據(jù)包最大傳輸單元

第二行:網(wǎng)卡的IP地址、子網(wǎng)掩碼、廣播地址

第三行:IP v6地址

第四行:ether:表示為網(wǎng)卡的MAC地址,Ethernet(以太網(wǎng))表示連接類型;

第五行:接受數(shù)據(jù)包個數(shù)、大小統(tǒng)計信息

第六行:異常接受包的個數(shù)、如丟包量、錯誤等

第七行:發(fā)送數(shù)據(jù)包個數(shù)、大小統(tǒng)計信息

第八行:發(fā)送包的個數(shù)、如丟包量、錯誤等

lo 是表示主機的回壞地址,IP地址固定為127.0.0.1,子網(wǎng)掩碼為8位,表示本機。

還可以通過ifconfig add 命令來為網(wǎng)卡配置IP地址,但重啟后會失效。可以通過/etc/sysconfig/network-scripts/ifcfg-[網(wǎng)卡名]來配置永久的信息

5. netstat

簡介
  • 用于顯示網(wǎng)絡(luò)狀態(tài)。
  • 命令格式:netstat [-acCeFghilMnNoprstuvVwx][-A<網(wǎng)絡(luò)類型>][--ip]
  • 常用參數(shù)說明:
-a或--all 顯示所有連線中的Socket。。
-l或--listening 顯示監(jiān)控中的服務(wù)器的Socket。
-n或--numeric 直接使用IP地址,而不通過域名服務(wù)器。
-p或--programs 顯示正在使用Socket的程序識別碼和程序名稱。
-t或--tcp 顯示TCP傳輸協(xié)議的連線狀況。
-u或--udp 顯示UDP傳輸協(xié)議的連線狀況。
示例
[root@192 ~]# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN     
tcp6       0      0 :::111                  :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
udp        0      0 0.0.0.0:889             0.0.0.0:*                          
udp        0      0 192.168.122.1:53        0.0.0.0:*                          
udp        0      0 0.0.0.0:67              0.0.0.0:*                          
udp        0      0 0.0.0.0:68              0.0.0.0:*                          
udp        0      0 0.0.0.0:111             0.0.0.0:*                          
udp        0      0 0.0.0.0:50870           0.0.0.0:*                          
udp        0      0 0.0.0.0:5353            0.0.0.0:*                          
udp        0      0 127.0.0.1:323           0.0.0.0:*                          
udp6       0      0 :::889                  :::*                               
udp6       0      0 :::111                  :::*                               
udp6       0      0 ::1:323                 :::*                               
  • 可以通過該命令判斷計算機開啟了哪些服務(wù)
  • 只有tcp有l(wèi)isten狀態(tài),udp沒有
netstat -an
  • ESTABLISH代表連接已經(jīng)建立,兩臺機器正在通信。

6. nsloopup

簡介
  • nslookup用于查詢DNS的記錄,查詢域名解析是否正常,在網(wǎng)絡(luò)故障時用來診斷網(wǎng)絡(luò)問題
  • nslookup有“交互模式”和“非交互模式”兩種工作模式
示例
[root@192 ~]# nslookup www.baidu.com
Server:     192.168.182.2
Address:    192.168.182.2#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 36.152.44.95
Name:   www.a.shifen.com
Address: 36.152.44.96

Non-authoritative answer: 代表結(jié)果是從Server的緩存中得到的。
若個DNS server沒有某域名的記錄信息,當(dāng)有客戶端通過它請求獲取該域名信息,此DNS Server會通過多個層級迭代遞歸的方式最終從實際存儲此記錄信息的DNS server中獲取域名信息,反饋給發(fā)出請求的客戶端,同時會把域名的記錄信息放在自身緩存中放置一段時間,當(dāng)又有客戶端請求test.com域名解析時,此DNS server直接從自身緩存中提取返回給客戶端,這個回答叫“非權(quán)威回答”

通過

nslookup -debug www.baidu.com

可以查看域名的緩存時間

Name:指的是域名實際對應(yīng)的主機名記錄。

7. route

  • route命令是用于操作基于內(nèi)核ip路由表,它的主要作用是創(chuàng)建一個靜態(tài)路由讓指定一個主機或者一個網(wǎng)絡(luò)通過一個網(wǎng)絡(luò)接口,如eth0。當(dāng)使用"add"或者"del"參數(shù)時,路由表被修改,如果沒有參數(shù),則顯示路由表當(dāng)前的內(nèi)容。

  • 直接在命令行下執(zhí)行route命令來添加路由,不會永久保存,當(dāng)網(wǎng)卡重啟或者機器重啟之后,該路由就失效了;可以在/etc/rc.local中添加route命令來設(shè)置路由永久有效。

  • 查看路由信息:

[root@192 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.182.2   0.0.0.0         UG    100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.182.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

第一行表示去任何地方(0.0.0.0),都由接口ens33發(fā)給192.168.182.2,因為是默認網(wǎng)關(guān)。

第三行表示主機所在網(wǎng)絡(luò)的地址為192.168.182.0,若數(shù)據(jù)傳送目標(biāo)是在本局域網(wǎng)內(nèi)通信,則可直接通過ens33轉(zhuǎn)發(fā)數(shù)據(jù)包;

其中Flags為路由標(biāo)志,U表示此路由當(dāng)前為啟動狀態(tài);UG表示此路由為默認網(wǎng)關(guān)。

  • 增加路由條目: route add [-host|-net] IP -netmask 子網(wǎng)掩碼 gw 網(wǎng)關(guān)地址

添加一條路由,要訪問192.56.76.0這個網(wǎng)絡(luò)需要走ens33網(wǎng)卡

[root@192 ~]# route add -net 192.56.76.0 netmask 255.255.255.0 dev ens33
[root@192 ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.182.2   0.0.0.0         UG    100    0        0 ens33
192.56.76.0     0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.182.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

  • 刪除路由條目
route del -net 192.56.76.0 netmask 255.255.255.0 dev ens33
  • 添加一個默認網(wǎng)關(guān): (只有連外網(wǎng)的網(wǎng)卡可以設(shè)置網(wǎng)關(guān))
route add default gw 192.168.182.2
  • 刪除默認網(wǎng)關(guān):
route del default gw 192.168.182.2

8.arp

  • 用于操作主機的arp緩沖區(qū),它可以顯示arp緩沖區(qū)中的所有條目、刪除指定的條目或者添加靜態(tài)的IP地址與MAC地址對應(yīng)關(guān)系。
  • 查詢arp緩沖區(qū)中指定主機的arp條目:
[root@192 ~]# arp -v
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.182.2            ether   00:50:56:f4:ed:49   C                     ens33
192.168.182.254          ether   00:50:56:e9:cb:6c   C                     ens33
Entries: 2  Skipped: 0  Found: 2

  • 將目標(biāo)ip地址映射固定mac:arp -s IP地址 mac地址
  • 刪除映射:arp -d IP地址

9. hostname

  • 顯示主機名
[root@192 ~]# hostname
192.168.182.131
  • 更改主機名(重啟后失效)
[root@192 ~]# hostname localhost
[root@192 ~]# hostname
localhost
  • 永久更改主機名(重啟后生效): etc/sysconfig/network

10. nmap

  • nmap是一個網(wǎng)絡(luò)連接端掃描軟件,用來掃描網(wǎng)上電腦開放的網(wǎng)絡(luò)連接端。確定哪些服務(wù)運行在哪些連接端,并且推斷計算機運行哪個操作系統(tǒng)
# nmap www.baidu.com

Starting Nmap 6.40 ( http://nmap.org ) at 2020-06-31 18:10 CST
Nmap scan report for www.baidu.com (36.152.44.95)
Host is up (0.0023s latency).
Other addresses for www.baidu.com (not scanned): 36.152.44.96
Not shown: 998 filtered ports
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 51.19 seconds

  • 常用參數(shù)
-sT  TCP connect()掃描,這種方式會在目標(biāo)主機的日志中記錄大批的鏈接請求以及錯誤信息。
-sP   ping掃描,加上這個參數(shù)會使用ping掃描,只有主機存活,nmap才會繼續(xù)掃描,一般最好不加,因為有的主機會禁止ping,卻實際存在。
-sS   半開掃描,一般不會記入日志,不過需要root權(quán)限。
-sU   udp掃描,但是一般不可靠,
-sA   用來穿過防火墻的規(guī)則集,速度慢。
-sV   端口服務(wù)及版本
-A    包含了-sV,-O,全面系統(tǒng)檢測,啟動腳本檢測,掃描等。
-P0   掃描之前不使用ping,適用于防火墻禁止ping,比較有用。
-v    顯示掃描進程
-O    探測目標(biāo)系統(tǒng)的漏洞,容易誤報
-oN/-oX/-oG     將報告寫入文件,格式分別為正常(自定義.txt),XML,grepable.
-iL   掃描主機列表
-sC   –script=default   默認的腳本掃描,主要是搜集各種應(yīng)用服務(wù)的信息
-p    掃描指定端口或端口段

11. iptable

  • iptables是linux下的應(yīng)用層防火墻命令工具集。
  • iptables基于Netfilter。 Netfilter是Linux操作系統(tǒng)核心層內(nèi)部的一個數(shù)據(jù)包處理工具。
  • Netfilter對于網(wǎng)絡(luò)層IP包有5條鏈 (hook point),分別是:PRE_ROUTING, INPUT, OUTPUT, FORWARDPOST_ROUTING。

  • Netfilter包含了4張表(table):起過濾作用的filter表、起地址轉(zhuǎn)發(fā)作用的nat表,用于修改報文的mangle表,用于數(shù)據(jù)跟蹤的raw表。其中filter表nat表最常用。

  • 網(wǎng)絡(luò)層IP包通過每一個hook point都有機會通過各種表對IP包進行操作。

  • 當(dāng)一個數(shù)據(jù)包到達一個鏈時,iptables就會從鏈中第一條規(guī)則開始檢查,看該數(shù)據(jù)包是否滿足規(guī)則所定義的條件,如果滿足規(guī)則,系統(tǒng)就會根據(jù)該條規(guī)則所定義的方法處理該數(shù)據(jù)包,如果不滿足規(guī)則,繼續(xù)檢查下一條規(guī)則,如果該數(shù)據(jù)包不符合鏈中任一條規(guī)則,iptables就會根據(jù)該鏈預(yù)先定義的默認策略來處理數(shù)據(jù)包;

iptables -t 表名 <-A/I/D/R> 規(guī)則鏈名 [規(guī)則號] <-i/o 網(wǎng)卡名> -p 協(xié)議名 <-s 源IP/源子網(wǎng)> --sport 源端口 <-d 目標(biāo)IP/目標(biāo)子網(wǎng)> --dport 目標(biāo)端口 -j 動作
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容