Linux/Unix-like 網路檢測工具 Command Line

本篇將講解與介紹 Unix-like 上常用與方便的 command line 工具,讓你在檢測網路問題時,能夠更簡單的排除萬難

我們今天要介紹的 Unix-like 指令有

  • ping
  • traceroute
  • nslookup
  • nmap

ping

ping 是一個方便的指令讓我們能夠測試與目標伺服器傳送一個封包的來回時間

我們透過指令 $man ping 可以看到

1
2
NAME
ping -- send ICMP ECHO_REQUEST packets to network hosts

由此可知 ping 是將 ICMP(Internet Control Message Protocol) 的 ECHO_REQUEST 封包傳送到我們目標的伺服器,當目標伺服器收到封包後會回傳封包給原來發送的電腦,我們可以用 ping 來測量封包在原始電腦傳送到目標伺服器再回到原始電腦的延遲時間,英文稱之為 RTT(Round-Trip Time)。

下面我們測試 ping ptt.cc 5 次

1
2
3
4
5
6
7
8
9
10
11
$ ping ptt.cc -t 5
PING ptt.cc (140.112.172.11): 56 data bytes
64 bytes from 140.112.172.11: icmp_seq=0 ttl=53 time=29.484 ms
64 bytes from 140.112.172.11: icmp_seq=1 ttl=53 time=28.149 ms
64 bytes from 140.112.172.11: icmp_seq=2 ttl=53 time=40.087 ms
64 bytes from 140.112.172.11: icmp_seq=3 ttl=53 time=40.083 ms
64 bytes from 140.112.172.11: icmp_seq=4 ttl=53 time=27.993 ms

--- ptt.cc ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 27.993/33.159/40.087/5.679 ms

可以看得出來測試 5 次的結果,在最後面她幫我們計算平均與最大最少所耗費的時間
在網路不穩,或是想要測試對伺服器連線延遲的時候 ping 將會是很方便的工具。

traceroute

tracetoure 能夠讓我們查詢我們的電腦與目標伺服器中間網路連線所經過的節點,在連線出現不穩時我們也能夠透過他追蹤與目標伺服器中間結點所耗費的時間
以及路途中所經過的節點。

我們可以透過下列指令來使用 traceroute 來測試 ptt.cc 中間經過的節點

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ traceroute ptt.cc
traceroute: Warning: ptt.cc has multiple addresses; using 140.112.172.11
traceroute to ptt.cc (140.112.172.11), 64 hops max, 52 byte packets
1 h254.s98.ts.hinet.net (168.95.98.254) 18.052 ms 17.399 ms 22.979 ms
2 nkn1-3311.hinet.net (168.95.220.222) 14.384 ms 18.350 ms 18.664 ms
3 tne1-3011.hinet.net (220.128.26.54) 27.039 ms
tne1-3011.hinet.net (220.128.26.58) 24.878 ms
tne1-3011.hinet.net (220.128.26.50) 20.979 ms
4 220-128-26-62.hinet-ip.hinet.net (220.128.26.62) 20.432 ms
220-128-24-10.hinet-ip.hinet.net (220.128.24.10) 34.886 ms
220-128-26-62.hinet-ip.hinet.net (220.128.26.62) 20.343 ms
5 tpdt-3011.hinet.net (220.128.24.181) 19.962 ms
tpdt-3011.hinet.net (220.128.13.89) 22.678 ms
skc1-3316.hinet.net (220.128.24.89) 20.093 ms
6 tpdt-3301.hinet.net (220.128.1.97) 24.488 ms 23.240 ms 20.475 ms
7 211-22-226-201.hinet-ip.hinet.net (211.22.226.201) 25.781 ms 24.216 ms 20.356 ms
8 140.112.0.194 (140.112.0.194) 29.741 ms 21.139 ms 36.160 ms
9 140.112.0.189 (140.112.0.189) 28.453 ms 21.221 ms 31.266 ms
10 140.112.0.173 (140.112.0.173) 20.645 ms 20.324 ms 20.998 ms
11 ptt.cc (140.112.172.11) 22.423 ms 20.953 ms 20.944 ms

nslookup

nslookup 可以讓我們查詢 domain 指向的的 ip 位置

我們用下面的指令來查詢 ptt.cc 的 ip 位置
可以看到他透過 8.8.8.8 的 DNS server 查詢,得到了 6 台主機的 ip 位置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ nslookup ptt.cc
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
Name: ptt.cc
Address: 140.112.172.3
Name: ptt.cc
Address: 140.112.172.2
Name: ptt.cc
Address: 140.112.172.1
Name: ptt.cc
Address: 140.112.172.11
Name: ptt.cc
Address: 140.112.172.5
Name: ptt.cc
Address: 140.112.172.4

我們也可以透過 ip 位置來反查被綁定的 domain

1
2
3
4
5
6
7
8
9
10
$ nslookup 140.112.172.11
;; Got SERVFAIL reply from 8.8.8.8, trying next server
Server: 168.95.192.1
Address: 168.95.192.1#53

Non-authoritative answer:
11.172.112.140.in-addr.arpa canonical name = 11.0-31.172.112.140.in-addr.arpa.
11.0-31.172.112.140.in-addr.arpa name = ptt.cc.

Authoritative answers can be found from:

nmap

常見的 http 服務慣例使用的是 TCP/IP 的 80 port,https 使用的是 443 port, ssh 則是 22 port, 我們可以透 過 nmap 指令掃描目標伺服器查看他開啟的 port 有哪些,很多駭客也用相同的手法初步的檢查伺服器是否存在有機可趁的地方。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$ sudo nmap ptt.cc
Password:

Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-20 15:14 CST
Nmap scan report for ptt.cc (140.112.172.5)
Host is up (0.023s latency).
Other addresses for ptt.cc (not scanned): 140.112.172.3 140.112.172.4 140.112.172.2 140.112.172.11 140.112.172.1
rDNS record for 140.112.172.5: e.ptt.cc
Not shown: 981 closed ports
PORT STATE SERVICE
22/tcp open ssh
23/tcp open telnet
80/tcp open http
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
443/tcp open https
445/tcp filtered microsoft-ds
3000/tcp open ppp
3001/tcp open nessus
3003/tcp open cgms
3005/tcp open deslogin
3006/tcp open deslogind
3007/tcp open lotusmtap
5959/tcp filtered unknown
5960/tcp filtered unknown
5961/tcp filtered unknown
5962/tcp filtered unknown
8888/tcp open sun-answerbook
9111/tcp open DragonIDSConsole

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

我們可以看到 ptt 不只是開放我們經常使用的 http 80, https 443, telnet 23, ssh 22 服務而已
還開放了不同的 port 提供其他服務,我們就可以再利用其他工具測試這些 port 開放出來做什麼的進而找尋有機可趁的機會。

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×