1.兩臺(tái)主機(jī)的兩點(diǎn)溝通:ping
(主要通過(guò)ICMP數(shù)據(jù)包來(lái)進(jìn)行整個(gè)網(wǎng)絡(luò)的狀態(tài)報(bào)告)
ping [參數(shù)與選項(xiàng)] IP
參數(shù)與選項(xiàng):
-c 數(shù)值:后面接執(zhí)行ping次數(shù)搀愧,eg:-c 5
-n :直接使用IP輸出
-s 數(shù)值:發(fā)出去的ICMP數(shù)據(jù)包大小
-t 數(shù)值:TTL數(shù)值,默認(rèn)為255疆偿,每經(jīng)過(guò)一個(gè)節(jié)點(diǎn)就會(huì)少1
-M [do|dont]:主要檢測(cè)網(wǎng)絡(luò)的MTU數(shù)值大小
do : 代表傳送一個(gè)DF(Don't Fragment)標(biāo)志咱筛,讓數(shù)據(jù)包不能重新拆包與打包
dont:代表不要傳送DF(Don't Fragment)標(biāo)志,表示數(shù)據(jù)包在其他主機(jī)上拆包與打包
64 bytes :表示這次發(fā)送的ICMP數(shù)據(jù)包為 64 bytes杆故,這是默認(rèn)值迅箩,可以用-s更改
icmp_seq=1:ICMP檢測(cè)的次數(shù),第一次編號(hào)為1
ttl=64:生存周期处铛,每經(jīng)過(guò)一個(gè)帶有MAC節(jié)點(diǎn)就會(huì)減1饲趋,-t可以指定
如果你的主機(jī)和待測(cè)主機(jī)不在同一個(gè)網(wǎng)絡(luò)內(nèi),那么TTL默認(rèn)使用255撤蟆,
如果是在同一個(gè)網(wǎng)絡(luò)內(nèi)奕塑,默認(rèn)為64
time:響應(yīng)時(shí)間,越小的響應(yīng)時(shí)間家肯,表示兩個(gè)主機(jī)的連接越良好
eg:
# ping -c 2 -s 1000 -M do 192.168.1.254
2.兩主機(jī)間各節(jié)點(diǎn)分析:traceroute
traceroute [options] IP
options:
-n:不必進(jìn)行主機(jī)的名稱解析龄砰,單純用IP,速度快
-U:使用UDP檢測(cè),默認(rèn)的檢測(cè)協(xié)議
-I:使用ICMP方式進(jìn)行檢測(cè)
-T:使用TCP檢測(cè)换棚,一般使用port 80檢測(cè)
-w:若對(duì)方主機(jī)在幾秒內(nèi)沒(méi)回應(yīng)則證明不通式镐,默認(rèn)為5s
-p 端口號(hào):若不行用UDP和TCP默認(rèn)端口檢測(cè),可以在此改變端口號(hào)
-i: 用在復(fù)雜的網(wǎng)絡(luò)環(huán)境 固蚤,如果網(wǎng)絡(luò)接口很復(fù)雜時(shí)娘汞,才會(huì)用到這個(gè)參數(shù)
# traceroute -w 3 -n -T www.baidu.com
3.查看本機(jī)的網(wǎng)絡(luò)連接與后門netstat
(1)顯示網(wǎng)絡(luò)連接:
netstat - [rn] <==與路由有關(guān)的參數(shù)
-r:列出路由表,如同route
-n: 數(shù)字格式颇蜡,不使用主機(jī)名與服務(wù)名稱,如同route -n
netstat -[antulpc] <==與網(wǎng)絡(luò)接口有關(guān)的參數(shù)
-t: tcp協(xié)議相關(guān)
-u: udp協(xié)議相關(guān)
-w: raw socket相關(guān)
-l: 處于監(jiān)聽(tīng)狀態(tài)
-a: 所有狀態(tài)
-n: 以數(shù)字顯示IP和端口价说;
-e:擴(kuò)展格式
-p: 顯示相關(guān)進(jìn)程及PID
-c:可以設(shè)置幾秒自動(dòng)更新一次
(2)常用組合:
-tan, -uan, -tnl, -unl
(3)顯示接口統(tǒng)計(jì)數(shù)據(jù):
netstat -i
netstat –I=IFACE
ifconfig -s eth0
eg:
# netstat -tulnp 顯示目前已啟動(dòng)的網(wǎng)絡(luò)服務(wù)
# netstat -atunp 查看本機(jī)上所有的網(wǎng)絡(luò)連接狀態(tài)
Proto:該鏈接的數(shù)據(jù)包協(xié)議
Recv-Q:由非用戶程序連接所復(fù)制而來(lái)的總bytes數(shù)
Send-Q:由遠(yuǎn)程主機(jī)發(fā)送而來(lái),但不具有ACK標(biāo)志的總bytes數(shù)风秤,亦指主動(dòng)連接SYN或其它標(biāo)志的數(shù)據(jù)包所占的bytes數(shù)
Local Address:本地端的地址
Foreign Adress:遠(yuǎn)程的主機(jī)IP與port number
Stat:狀態(tài)欄鳖目,主要的狀態(tài)有:
ESTABLISHED:已建立連接的狀態(tài)
SYN_SENT:發(fā)出主動(dòng)連接(SYN標(biāo)志)的連接數(shù)據(jù)包
SYN_RECV:接收到一個(gè)要求連接的主動(dòng)連接的數(shù)據(jù)包
FIN_WAIT1:該套接字服務(wù)(socket)已中斷,該鏈接正在斷線當(dāng)中
FIN_WAIT2:該鏈接已掛斷缤弦,但正在等待對(duì)方主機(jī)響應(yīng)斷線確認(rèn)的數(shù)據(jù)包
TIME_WAIT:該鏈接已掛斷领迈,但socket還在網(wǎng)絡(luò)上等待結(jié)束
LISTEN:通常用在服務(wù)的監(jiān)聽(tīng)port,可使用“-l”參數(shù)查閱
PID:進(jìn)程號(hào)client端是隨機(jī)開(kāi)放一個(gè)大于1024port進(jìn)行連接碍沐,
此外只有root可以啟動(dòng)小于1024port
4.ss命令
ss [OPTION]... [FILTER]
- (netstat通過(guò)遍歷proc來(lái)獲取socket信息狸捅,ss使用netlink與內(nèi)核tcp_diag
模塊通信獲取socket信息)
-t: tcp協(xié)議相關(guān)
-u: udp協(xié)議相關(guān)
-w: 裸套接字相關(guān)
-x:unix sock相關(guān)
-l: listen狀態(tài)的連接
-a: 所有
-n: 數(shù)字格式
-p: 相關(guān)的程序及PID
-e: 擴(kuò)展的信息
-m:內(nèi)存用量
-o:計(jì)時(shí)器信息
? FILTER : [ state TCP-STATE ] [ EXPRESSION ]
? TCP的常見(jiàn)狀態(tài):
tcp finite state machine:
LISTEN: 監(jiān)聽(tīng)
ESTABLISHED:已建立的連接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
? EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’
- 常用組合:-tan, -tanl, -tanlp, -uan
? ss -l 顯示本地打開(kāi)的所有端口
? ss -pl 顯示每個(gè)進(jìn)程具體打開(kāi)的socket
? ss -t -a 顯示所有tcp socket
? ss -u -a 顯示所有的UDP Socekt
? ss -o state established '( dport = :ssh or sport = :ssh)' 顯示所有已建立的ssh連接
? ss -o state established '( dport = :http or sport =:http )' 顯示所有已建立的HTTP連接
? ss -s 列出當(dāng)前socket詳細(xì)信息
5.檢測(cè)主機(jī)名與IP的對(duì)應(yīng):host、nslookup
(1)host 查處某個(gè)主機(jī)名的IP
host [-a] hostname [server]
-a 列出該主機(jī)詳細(xì)的各項(xiàng)主機(jī)名設(shè)置數(shù)據(jù)
[server] 可以使用不是由/etc/resolv.conf文件定義的DNS服務(wù)器IP來(lái)查詢
dig命令更詳細(xì)累提,如有需要可以查詢
eg:
# host www.baidu.com
# host www.baidu.com 211.161.46.84(指定DNS)
(2)配置當(dāng)前主機(jī)的主機(jī)名:
/etc/sysconfig/network
HOSTNAME=
(3)解析器執(zhí)行正向和逆向查詢
(4)/etc/hosts
? 本地主機(jī)名數(shù)據(jù)庫(kù)和IP地址的映像
? 對(duì)小型獨(dú)立網(wǎng)絡(luò)有用
? 通常尘喝,在使用DNS前檢查
? getent hosts 查看/etc/hosts 內(nèi)容
(2)nslookup
IP<======>主機(jī)名
nslookup [-query=[type]] [hostname|IP]
-query=type:查詢的類型
eg:
# nslookup www.gooogle.com
# nslookup 172.18.252.101