十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
Linux運維人員必會的120個命令
創(chuàng)新互聯(lián)是專業(yè)的無為網(wǎng)站建設(shè)公司,無為接單;提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行無為網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
來自《跟老男孩學(xué)Linux運維:核心系統(tǒng)命令實戰(zhàn)》一書
前言
第1章 Linux命令行簡介 / 1
1.1Linux命令行概述 / 1
1.2在Linux命令行下查看命令幫助 / 4
1.3Linux shutdown reboot halt / 9
關(guān)機:
shutdown -h now
halt
init 0
第2章 文件和目錄操作命令 / 13
2.1pwd:顯示當前所在的位置 / 13
2.2cd:切換目錄 / 16
2.3tree:以樹形結(jié)構(gòu)顯示目錄下的內(nèi)容 / 18
2.4mkdir:創(chuàng)建目錄 / 22
2.5touch:創(chuàng)建空文件或改變文件的時間戳屬性 / 27
2.6ls:顯示目錄下的內(nèi)容及相關(guān)屬性信息 / 30
2.7cp:復(fù)制文件或目錄 / 39
2.8mv:移動或重命名文件 / 42
2.9rm:刪除文件或目錄 / 45
2.10rmdir:刪除空目錄 / 48
2.11ln:硬鏈接與軟鏈接 / 49
2.12readlink:查看符號鏈接文件的內(nèi)容 / 54
2.13find:查找目錄下的文件 / 55
2.14xargs:將標準輸入轉(zhuǎn)換成命令行參數(shù) / 68
2.15rename:重命名文件 / 71
2.16basename:顯示文件名或目錄名 / 72
2.17dirname:顯示文件或目錄路徑 / 72
2.18chattr:改變文件的擴展屬性 / 73
2.19lsattr:查看文件擴展屬性 / 75
2.20file:顯示文件的類型 / 76
2.21md5sum:計算和校驗文件的MD5值 / 77
2.22chown:改變文件或目錄的用戶和用戶組 / 80
2.23chmod:改變文件或目錄權(quán)限 / 81
2.24chgrp:更改文件用戶組 / 85
2.25umask:顯示或設(shè)置權(quán)限掩碼 / 86
2.26老男孩從新手成為技術(shù)大牛的心法 / 90
第3章 文件過濾及內(nèi)容編輯處理命令 / 91
3.1cat:合并文件或查看文件內(nèi)容 / 91
3.2tac:反向顯示文件內(nèi)容 / 103
3.3more:分頁顯示文件內(nèi)容 / 104
3.4less:分頁顯示文件內(nèi)容 / 107
3.5head:顯示文件內(nèi)容頭部 / 109
3.6tail:顯示文件內(nèi)容尾部 / 111
3.7tailf:跟蹤日志文件 / 114
3.8cut:從文本中提取一段文字并輸出 / 115
3.9split:分割文件 / 117
3.10paste:合并文件 / 118
3.11sort:文本排序 / 123
3.12join:按兩個文件的相同字段合并 / 127
3.13uniq:去除重復(fù)行 / 129
3.14wc:統(tǒng)計文件的行數(shù)、單詞數(shù)或字節(jié)數(shù) / 131
3.15iconv:轉(zhuǎn)換文件的編碼格式 / 133
3.16dos2unix:將DOS格式文件轉(zhuǎn)換成UNIX格式 / 134
3.17diff:比較兩個文件的不同 / 135
3.18vimdiff:可視化比較工具 / 138
3.19rev:反向輸出文件內(nèi)容 / 139
3.20tr:替換或刪除字符 / 140
3.21od:按不同進制顯示文件 / 143
3.22tee:多重定向 / 145
3.23vi/vim:純文本編輯器 / 147
3.24老男孩逆襲思想:做Linux運維的多個好處 / 152
第4章 文本處理三劍客 / 153
4.1grep:文本過濾工具 / 153
4.2sed:字符流編輯器 / 159
4.3awk基礎(chǔ)入門 / 165
第5章 Linux信息顯示與搜索文件命令 / 176
5.1uname:顯示系統(tǒng)信息 / 176
5.2hostname:顯示或設(shè)置系統(tǒng)的主機名 / 178
5.3dmesg:系統(tǒng)啟動異常診斷 / 179
5.4stat:顯示文件或文件系統(tǒng)狀態(tài) / 181
5.5du:統(tǒng)計磁盤空間使用情況 / 183
5.6date:顯示與設(shè)置系統(tǒng)時間 / 186
5.7echo:顯示一行文本 / 190
5.8watch:監(jiān)視命令執(zhí)行情況 / 193
5.9which:顯示命令的全路徑 / 195
5.10whereis:顯示命令及其相關(guān)文件全路徑 / 196
5.11locate:快速定位文件路徑 / 197
5.12updatedb:更新mlocate數(shù)據(jù)庫 / 199
5.13老男孩逆襲思想:新手在工作中如何問問題不會被鄙視 / 200
第6章 文件備份與壓縮命令 / 201
6.1tar:打包備份 / 201
6.2gzip:壓縮或解壓文件 / 208
6.3zip:打包和壓縮文件 / 211
6.4unzip:解壓zip文件 / 212
6.5scp:遠程文件復(fù)制 / 214
6.6rsync:文件同步工具 / 216
6.7老男孩逆襲思想:新手如何高效地提問 / 220
第7章 Linux用戶管理及用戶信息查詢命令 / 222
7.1 useradd:創(chuàng)建用戶 / 222
7.2usermod:修改用戶信息 / 227
7.3userdel:刪除用戶 / 229
7.4groupadd:創(chuàng)建新的用戶組 / 230
7.5groupdel:刪除用戶組 / 231
7.6passwd:修改用戶密碼 / 232
7.7chage:修改用戶密碼有效期 / 237
7.8chpasswd:批量更新用戶密碼 / 238
7.9su:切換用戶 / 240
7.10visudo:編輯sudoers文件 / 242
7.11sudo:以另一個用戶身份執(zhí)行命令 / 244
7.12id:顯示用戶與用戶組的信息 / 248
7.13w:顯示已登錄用戶信息 / 249
7.14who:顯示已登錄用戶信息 / 250
7.15users:顯示已登錄用戶 / 252
7.16whoami:顯示當前登錄的用戶名 / 253
7.17last:顯示用戶登錄列表 / 253
7.18lastb:顯示用戶登錄失敗的記錄 / 254
7.19lastlog:顯示所有用戶的最近登錄記錄 / 255
第8章 Linux磁盤與文件系統(tǒng)管理命令 / 257
8.1fdisk:磁盤分區(qū)工具 / 257
8.2partprobe:更新內(nèi)核的硬盤分區(qū)表信息 / 265
8.3tune2fs:調(diào)整ext2/ext3/ext4文件系統(tǒng)參數(shù) / 266
8.4parted:磁盤分區(qū)工具 / 268
8.5mkfs:創(chuàng)建Linux文件系統(tǒng) / 272
8.6dumpe2fs:導(dǎo)出ext2/ext3/ext4文件系統(tǒng)信息 / 274
8.7resize2fs:調(diào)整ext2/ext3/ext4文件系統(tǒng)大小 / 275
8.8fsck:檢查并修復(fù)Linux文件系統(tǒng) / 278
8.9dd:轉(zhuǎn)換或復(fù)制文件 / 281
8.10mount:掛載文件系統(tǒng) / 284
8.11umount:卸載文件系統(tǒng) / 288
8.12df:報告文件系統(tǒng)磁盤空間的使用情況 / 289
8.13mkswap:創(chuàng)建交換分區(qū) / 293
8.14swapon:激活交換分區(qū) / 294
8.15swapoff:關(guān)閉交換分區(qū) / 295
8.16sync:刷新文件系統(tǒng)緩沖區(qū) / 296
第9章 Linux進程管理命令 / 298
9.1ps:查看進程 / 298
9.2pstree:顯示進程狀態(tài)樹 / 305
9.3pgrep:查找匹配條件的進程 / 306
9.4kill:終止進程 / 307
9.5killall:通過進程名終止進程 / 310
9.6pkill:通過進程名終止進程 / 311
9.7top:實時顯示系統(tǒng)中各個進程的資源占用狀況 / 313
9.8nice:調(diào)整程序運行時的優(yōu)先級 / 320
9.9renice:調(diào)整運行中的進程的優(yōu)先級 / 323
9.10nohup:用戶退出系統(tǒng)進程繼續(xù)工作 / 324
9.11strace:跟蹤進程的系統(tǒng)調(diào)用 / 325
9.12ltrace:跟蹤進程調(diào)用庫函數(shù) / 332
9.13runlevel:輸出當前運行級別 / 334
9.14init:初始化Linux進程 / 335
9.15service:管理系統(tǒng)服務(wù) / 335
第10章 Linux網(wǎng)絡(luò)管理命令 / 338
10.1ifconfig:配置或顯示網(wǎng)絡(luò)接口信息 / 338
10.2ifup:激活網(wǎng)絡(luò)接口 / 343
ifup eth0
10.3ifdown:禁用網(wǎng)絡(luò)接口 / 343
ifdown eth0
service network restart(/etc/init.d/network restart) 激活整個網(wǎng)絡(luò),所有網(wǎng)卡。
10.4route:顯示或管理路由表 / 344
10.5arp:管理系統(tǒng)的arp緩存 / 350
10.6ip:網(wǎng)絡(luò)配置工具 / 351
10.7netstat:查看網(wǎng)絡(luò)狀態(tài) / 358
10.8ss:查看網(wǎng)絡(luò)狀態(tài) / 362
10.9ping:測試主機之間網(wǎng)絡(luò)的連通性 / 363
10.10traceroute:追蹤數(shù)據(jù)傳輸路由狀況 / 366
10.11arping:發(fā)送arp請求 / 367
10.12telnet:遠程登錄主機 / 369
10.13nc:多功能網(wǎng)絡(luò)工具 / 370
10.14ssh:安全地遠程登錄主機 / 373
10.15wget:命令行下載工具 / 376
10.16mailq:顯示郵件傳輸隊列 / 379
10.17mail:發(fā)送和接收郵件 / 381
10.18nslookup:域名查詢工具 / 386
10.19dig:域名查詢工具 / 389
10.20host:域名查詢工具 / 393
10.21nmap:網(wǎng)絡(luò)探測工具和安全/端口掃描器 / 394
10.22tcpdump:監(jiān)聽網(wǎng)絡(luò)流量 / 398
第11章 Linux系統(tǒng)管理命令 / 407
11.1lsof:查看進程打開的文件 / 407
11.2uptime:顯示系統(tǒng)的運行時間及負載 / 411
11.3free:查看系統(tǒng)內(nèi)存信息 / 411
11.4iftop:動態(tài)顯示網(wǎng)絡(luò)接口流量信息 / 413
11.5vmstat:虛擬內(nèi)存統(tǒng)計 / 415
11.6mpstat:CPU信息統(tǒng)計 / 419
11.7iostat:I/O信息統(tǒng)計 / 420
11.8iotop:動態(tài)顯示磁盤I/O統(tǒng)計信息 / 423
11.9sar:收集系統(tǒng)信息 / 425
11.10chkconfig:管理開機服務(wù) / 430
11.11ntsysv:管理開機服務(wù) / 433
11.12 setup:系統(tǒng)管理工具 / 434
11.13ethtool:查詢網(wǎng)卡參數(shù) / 436
11.14mii-tool:管理網(wǎng)絡(luò)接口的狀態(tài) / 437
11.19rpm:RPM包管理器 / 443
11.20yum:自動化RPM包管理工具 / 446
top命令
第12章 Linux系統(tǒng)常用內(nèi)置命令 / 450
12.1Linux內(nèi)置命令概述 / 450
12.2Linux內(nèi)置命令簡介 / 450
12.3Linux常用內(nèi)置命令實例 / 452
tracert
tracert是路由跟蹤實用程序,用于確定
IP
數(shù)據(jù)報訪問目標所采取的路徑。tracert
命令用
IP
生存時間
(TTL)
字段和
ICMP
錯誤消息來確定從一個主機到網(wǎng)絡(luò)上其他主機的路由。
一、查看網(wǎng)絡(luò)配置
確保網(wǎng)絡(luò)配置的正確性及網(wǎng)絡(luò)連接的暢通是Linux系統(tǒng)作為服務(wù)器應(yīng)用的基礎(chǔ),查看及測試網(wǎng)絡(luò)配置是管理Linux網(wǎng)絡(luò)服務(wù)的第一步。
1.ifconfig——查看網(wǎng)絡(luò)配置
1) 查看所有活動網(wǎng)絡(luò)接口的信息
執(zhí)行 ifconfig 或ip addr或ip a命令,都可以顯示當前主機中已啟用(活動)的網(wǎng)絡(luò)接口信息。、
2) 查看指定網(wǎng)絡(luò)接口信息
格式:ifconfig 網(wǎng)絡(luò)接口名
可以通過TX、RX等信息了解到通過該網(wǎng)絡(luò)接口發(fā)送和接收的數(shù)據(jù)包個數(shù),流量等跟多屬性。
2.hostname命令
在Linux系統(tǒng)中,相當一部分網(wǎng)絡(luò)服務(wù)都會通過主機名來識別本機,如果主機名配置不當,可能會導(dǎo)致程序功能出現(xiàn)故障。
1) 查看主機名
使用hostname命令就可以查看當前主機的主機名,不添加任何選項參數(shù)。
2) 臨時更改主機名
hostname NewName
注:這種方法只是臨時的更改主機名,重啟后將失效。
3) 永久更改主機名
a. 修改配置文件
RHEL6和7的配置文件存放路徑不相同,修改配置文件中的主機名,重啟就可永久更改主機名。
RHEL6主機名配置文件路徑為:/etc/sysconfig/network
RHEL7主機名配置文件路徑為:/etc/hostname
示例
b. 使用命令修改(這種方法只適用于RHEL7或者CentOS7之后)
命令格式:
使用該命令更改后,更改后的主機名就自動寫入了配置文件中,所以可以永久更改主機名,其實就是修改了配置文件。
3.route命令
直接執(zhí)行route命令可以查看當前主機中的路由表信息,若結(jié)合“-n”選項使用,可以將路由記錄中的地址顯示為數(shù)字形式,這可以跳過解析主機名的過程,在路由表條目較多的情況下能夠加快執(zhí)行速度。
Destination列對應(yīng)的是目標網(wǎng)段的地址,Gateway列對應(yīng)的是嚇一跳路由器的地址,Iface列對應(yīng)的是發(fā)送數(shù)據(jù)的網(wǎng)絡(luò)接口。當目標網(wǎng)段為“default”是,表示此行是默認網(wǎng)關(guān)記錄,當嚇一跳為“*”是,表示目標網(wǎng)段是與本機直接相連的。
4.netstat命令——查看系統(tǒng)的網(wǎng)絡(luò)連接狀態(tài)等
netstat命令是了解網(wǎng)絡(luò)狀態(tài)及排除網(wǎng)絡(luò)服務(wù)故障的有效工具。
常用選項:
-a:顯示所有活動連接(包括監(jiān)聽、非監(jiān)聽狀態(tài)的服務(wù)端口)
-n:以數(shù)字形式顯示
-p:顯示相關(guān)的進程信息
-t:查看 TCP 協(xié)議相關(guān)信息
-u:查看UDP協(xié)議相關(guān)信息
-r:顯示路由表信息
-l:顯示處于監(jiān)聽(listening)狀態(tài)的網(wǎng)絡(luò)連接及端口信息
通常使用“-anput”組合選項,結(jié)合管道使用“grep”命令,來查看一些服務(wù)的端口是否開啟。
示例:
Tcp21為ftp服務(wù)的端口
二、測試網(wǎng)絡(luò)連接
1.ping命令——測試網(wǎng)絡(luò)連通性
常用選項:
-c完成次數(shù):設(shè)置完成要求回應(yīng)的次數(shù)
-i間隔秒數(shù):指定收發(fā)信息的間隔時間
-q:不顯示指令執(zhí)行過程,開頭和結(jié)尾的相關(guān)信息除外
-s數(shù)據(jù)包大小:設(shè)置數(shù)據(jù)包的大小
-t存活數(shù)值:設(shè)置存活數(shù)值TTL的大小
-v:詳細顯示指令的執(zhí)行過程
若返回“Destination Host Unreachable”的反饋信息,則表示目標主機不可達,可能目標地址不存在或主機已關(guān)閉;返回“Network is unreachable”的反饋信息,則表示沒有可用的路由記錄(如默認網(wǎng)關(guān)),無法到達目標主機所在的網(wǎng)絡(luò);返回“Request timeout”的反饋信息,表示與目標主機間的連接超時(數(shù)據(jù)包緩慢或丟失),若有嚴格的防火墻限制,也可能返回此信息。
2.traceroute命令——跟蹤數(shù)據(jù)包的路由途徑
使用traceroute命令可以測試從當前主機到目的主機之間經(jīng)過的網(wǎng)絡(luò)節(jié)點,并顯示各中間結(jié)點的連接狀態(tài)(響應(yīng)時間)。對于無法響應(yīng)的節(jié)點,連接狀態(tài)將顯示為“*”。
示例:traceroute IP_ADDR
在網(wǎng)絡(luò)測試與排錯的過程中,通常會先使用ping命令測試與主機的網(wǎng)絡(luò)連接,如果發(fā)現(xiàn)網(wǎng)絡(luò)有故障,再使用traceroute命令跟蹤查看是在哪個中間結(jié)點存在故障。
3.nslookup命令——測試DNS域名解析
nslookup是用來測試(DNS)域名解析的專用工具。(DNS服務(wù)后面再詳細講解,通俗的說就是將域名解析為ip地址的一個服務(wù))
示例:nslookup
若成功反饋要查詢域名的IP地址,則表示域名解析沒有問題;若出現(xiàn)“...... no servers could be reached”的信息,表示不能連接到指定的DNS服務(wù)器;若出現(xiàn)“...... cant’t find xxx.yyy.zzz:NXDOMAIN”的信息,表示要查詢的域名不存在。
三、設(shè)置網(wǎng)絡(luò)地址參數(shù)
設(shè)置網(wǎng)絡(luò)參數(shù)的方法:
? 臨時配置 —— 使用命令調(diào)整網(wǎng)絡(luò)參數(shù)簡單、快速,可直接修改運行中的網(wǎng)絡(luò)參數(shù)
一般只適合在調(diào)試網(wǎng)絡(luò)的過程中使用
系統(tǒng)重啟以后,所做的修改將會失效
? 永久配置 —— 通過配置文件修改網(wǎng)絡(luò)參數(shù)修改各項網(wǎng)絡(luò)參數(shù)的配置文件
適合對服務(wù)器設(shè)置固定參數(shù)時使用
需要重載網(wǎng)絡(luò)服務(wù)或者重啟以后才會生效
1.臨時配置——使用網(wǎng)絡(luò)配置命令(注:RHEL6中網(wǎng)絡(luò)接口的名稱為eth,RHEL7中為ens)
1)使用ifconfig命令修改網(wǎng)卡的地址、狀態(tài)
ifconfig命令不僅可以用于查看網(wǎng)卡配置,還可以修改網(wǎng)卡的ip地址,子網(wǎng)掩碼,也可以綁定網(wǎng)絡(luò)接口、激活或停用網(wǎng)絡(luò)接口
a. 修改網(wǎng)卡的ip地址(臨時修改)
命令格式:
示例:
b. 禁用或者重新激活網(wǎng)卡
命令格式:
示例:
c. 設(shè)置虛擬網(wǎng)絡(luò)接口(相當于一塊網(wǎng)卡配置多個IP地址)
命令格式:
示例:
可以根據(jù)需要添加更多的虛擬接口,如“eth0:1”“eth0:2”等
2)使用route命令添加、刪除靜態(tài)路由記錄
? 刪除路由表中的默認網(wǎng)關(guān)記錄命令格式:route del default gw IP地址
? 向路由表中添加默認網(wǎng)關(guān)記錄命令格式:route add default gw IP地址
? 添加到指定網(wǎng)段的路由記錄命令格式:route add -net 網(wǎng)段地址 gw IP地址
? 刪除到指定網(wǎng)段的路由記錄命令格式:router del -net 網(wǎng)段地址
2.永久配置——修改網(wǎng)絡(luò)配置文件
1)網(wǎng)絡(luò)接口配置文件
網(wǎng)絡(luò)接口的配置文件默認位于目錄“/etc/sysconfig/network-scripts/”中,文件名格式為:“ifcfg-XXX”,其中“XXX”是網(wǎng)絡(luò)接口的名稱。例如:RHEL6中網(wǎng)卡eth0的配置文件是“ifcfg-eth0”,而RHEL7中網(wǎng)卡ens33的配置文件是“ifcfg-ens33”。
在網(wǎng)卡的配置文件中,可以看到靜態(tài)IP地址的部分內(nèi)容如下圖所示:
上述個配置項的含義及作用:(圖示為RHEL6中的配置文件,7中也差不多,換湯不換藥,修改的都差不多)
? DEVICE:設(shè)置網(wǎng)絡(luò)接口的名稱ONBOOT:設(shè)置網(wǎng)絡(luò)接口是否在Linux系統(tǒng)啟動時激活BOOTPROTO:設(shè)置網(wǎng)絡(luò)接口的配置方式,值為static時表示使用靜態(tài)ip地址,為dhcp時表示通過dhcp的方式動態(tài)獲取ip地址IPADDR:設(shè)置網(wǎng)絡(luò)接口的ip地址NETMASK:設(shè)置網(wǎng)絡(luò)接口的子網(wǎng)掩碼GATEWAY:設(shè)置網(wǎng)絡(luò)接口的默認網(wǎng)關(guān)地址2)重啟 network 網(wǎng)絡(luò)服務(wù)
當修改了網(wǎng)絡(luò)接口的配置文件以后,若要使新的配置生效,可以重啟network服務(wù)或者重啟主機或者禁用、啟用網(wǎng)絡(luò)接口。
示例:
? RHEL6中重啟network服務(wù):service network restartRHEL7中重啟network服務(wù):systemctl restart network注:這是我在做實驗時候的一個經(jīng)驗:RHEL6修改完網(wǎng)卡配置重啟后,ip地址仍然沒有改過來,這時候我們經(jīng)常會刪除“/etc/udev/rules.d/70-persistent-net.rules”這個文件。RHEL7不用管,RHEL7特別好改,RHEL6改的時候特別難受。(個人提示,不求認同)
3)域名解析配置文件
a.指定為本機提供DNS解析的服務(wù)器地址
/etc/resolv.conf文件中記錄了本機默認使用的DNS服務(wù)器的地址信息,對該文件所做的修改將會立刻生效。Linux系統(tǒng)中最多可以指定3個(第3個以后將被忽略)不同的DNS服務(wù)器地址,優(yōu)先使用第1個DNS服務(wù)器。
示例:
其中“search localdomain”用來設(shè)置默認的搜索域(域名后綴)。例如,當訪問主機“l(fā)ocalhost”時,就相當于訪問“l(fā)ocalhost.localdomain”。
b.本地主機映射文件
/etc/hosts文件中記錄著一份主機名與ip地址的映射關(guān)系表,一般用來保存經(jīng)常訪問的主機信息。當訪問一個未知的域名時,先查找該文件中是否有相應(yīng)的映射記錄,如果找不到在去向DNS服務(wù)器查詢。
hosts 文件和 DNS 服務(wù)器的比較
? 默認情況下,系統(tǒng)首先從 hosts 文件查找解析記錄hosts 文件只對當前的主機有效hosts 文件可減少 DNS 查詢過程,從而加快訪問速度
通過traceroute我們可以知道信息從你的計算機到互聯(lián)網(wǎng)另一端的主機是走的什么路徑。
當然每次數(shù)據(jù)包由某一同樣的出發(fā)點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,
但基本上來說大部分時候所走的路由是相同的。
linux系統(tǒng)中,我們稱之為traceroute,在MS Windows中為tracert。
traceroute通過發(fā)送小的數(shù)據(jù)包到目的設(shè)備直到其返回,來測量其需要多長時間。
一條路徑上的每個設(shè)備traceroute要測3次。輸出結(jié)果中包括每次測試的時間(ms)和設(shè)備的名稱(如有的話)及其IP地址。
說明:
記錄按序列號從1開始,每個紀錄就是一跳 ,每跳表示一個網(wǎng)關(guān),我們看到每行有三個時間,單位是ms,其實就是-q的默認參數(shù)。
探測數(shù)據(jù)包向每個網(wǎng)關(guān)發(fā)送三個數(shù)據(jù)包后,網(wǎng)關(guān)響應(yīng)后返回的時間;如果您用 traceroute -q 4 ,表示向每個網(wǎng)關(guān)發(fā)送4個數(shù)據(jù)包。
有時我們traceroute 一臺主機時,會看到有一些行是以星號表示的。
出現(xiàn)這樣的情況,可能是防火墻封掉了ICMP的返回信息,所以我們得不到什么相關(guān)的數(shù)據(jù)包返回數(shù)據(jù)。
有時我們在某一網(wǎng)關(guān)處延時比較長,有可能是某臺網(wǎng)關(guān)比較阻塞,也可能是物理設(shè)備本身的原因。
當然如果某臺DNS出現(xiàn)問題時,不能解析主機名、域名時,也會 有延時長的現(xiàn)象;
您可以加-n 參數(shù)來避免DNS解析,以IP格式輸出數(shù)據(jù)。
如果在局域網(wǎng)中的不同網(wǎng)段之間,我們可以通過traceroute 來排查問題所在,是主機的問題還是網(wǎng)關(guān)的問題。
如果我們通過遠程來訪問某臺服務(wù)器遇到問題時,我們用到traceroute 追蹤數(shù)據(jù)包所經(jīng)過的網(wǎng)關(guān),提交IDC服務(wù)商,也有助于解決問題;
但目前看來在國內(nèi)解決這樣的問題是比較困難的,就是我們發(fā)現(xiàn)問題所在,IDC服務(wù)商也不可能幫助我們解決。
說明:
Traceroute的工作原理:
Traceroute最簡單的基本用法是:traceroute hostname
Traceroute程序的設(shè)計是利用ICMP及IP header的TTL(Time To Live)欄位(field)。
首先,traceroute送出一個TTL是1的IP datagram
(其實,每次送出的為3個40字節(jié)的包,包括源地址,目的地址和包發(fā)出的時間標簽)到目的地,
當路徑上的第一個路由器(router)收到這個datagram時,它將TTL減1。此時,TTL變?yōu)?了,
所以該路由器會將此datagram丟掉,并送回一個「ICMP time exceeded」消息
(包括發(fā)IP包的源地址,IP包的所有內(nèi)容及路由器的IP地址),traceroute 收到這個消息后,
便知道這個路由器存在于這個路徑上,接著traceroute 再送出另一個TTL是2 的datagram,
發(fā)現(xiàn)第2 個路由器...... traceroute 每次將送出的datagram的TTL 加1來發(fā)現(xiàn)另一個路由器,
這個重復(fù)的動作一直持續(xù)到某個datagram 抵達目的地。當datagram到達目的地后,
該主機并不會送回ICMP time exceeded消息,因為它已是目的地了,那么traceroute如何得知目的地到達了呢?
Traceroute在送出UDP datagrams到目的地時,它所選擇送達的port number 是一個一般應(yīng)用程序都不會用的號碼(30000 以上),
所以當此UDP datagram 到達目的地后該主機會送回一個「ICMP port unreachable」的消息,
而當traceroute 收到這個消息時,便知道目的地已經(jīng)到達了。所以traceroute 在Server端也是沒有所謂的Daemon 程式。
Traceroute提取發(fā) ICMP TTL到期消息設(shè)備的IP地址并作域名解析。
每次 ,Traceroute都打印出一系列數(shù)據(jù),包括所經(jīng)過的路由設(shè)備的域名及 IP地址,三個包每次來回所花時間。