通過traceroute我們可以知道信息從你的計算機到互聯(lián)網(wǎng)另一端的主機是走的什么路徑。
成都創(chuàng)新互聯(lián)公司2013年至今,先為清河等服務(wù)建站,清河等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為清河企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
當然每次數(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地址,三個包每次來回所花時間。
一、查看網(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ù)包大?。涸O(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 查詢過程,從而加快訪問速度
tracert
tracert是路由跟蹤實用程序,用于確定
IP
數(shù)據(jù)報訪問目標所采取的路徑。tracert
命令用
IP
生存時間
(TTL)
字段和
ICMP
錯誤消息來確定從一個主機到網(wǎng)絡(luò)上其他主機的路由。
一、下載測試法
下載測試法主要是將一個大型的文件放置在服務(wù)器上,然后通過下載的方法來對帶寬的下載速度和穩(wěn)定性進行測試,這種方法比較適用,特別是對于搭建下載網(wǎng)站或者在線視頻這種需要大帶寬支持的用戶來說。不過通常這種方法也需要服務(wù)商的配合。一般情況下:
1Mbps的帶寬下載速度:100K-150K/S
2Mbps是200-280K/S
4Mbps是400K-500K/S
8Mbps是800-950K/S
10Mbps光纖共享能達到1M-1.5M/S
注:(1Mbps寬帶理論下載速度128K/s,2Mbps寬帶理論256K/s,4Mbps是512K/s)
2、使用Ping測試網(wǎng)速
通過ping
服務(wù)商所提供的IP地址來對網(wǎng)絡(luò)的當前情況進行測試。但是需要注意的是這種方法只是對帶寬的一個估算,而不是直觀地將數(shù)值表現(xiàn)出來,這種方法最重要的測試服務(wù)器的訪問速度穩(wěn)定性。
3、使用測試網(wǎng)站
只要用戶在搜索引擎上一搜,其實有很多網(wǎng)速測試網(wǎng)站可以進行網(wǎng)速測試,是最常用的網(wǎng)速測試方法,而且用戶根據(jù)網(wǎng)絡(luò)使用情況選擇測試線路,測試點遍及全國各省、美國、澳大利亞、日本等海外國家,用戶可選擇任意測試點進行測試,網(wǎng)站采用flash實現(xiàn)測速功能,可視化的測試過程,測試結(jié)果能準確反映本地網(wǎng)絡(luò)速率,無需下載安裝插件或添加額外設(shè)備,使用簡單,操作方便。
4、使用路由跟蹤
常見的路由跟蹤命令行 windows有Tracert和winmtr, Linux下有traceroute和mtr,
windows的winmtr是帶gui的使用比較簡單。根據(jù)以上帶寬的速度,然后除頁面文件大小,乘以打開頁面的時間(秒為單位)。這樣就可以算出1M帶寬能同時承受多少人訪問了。