天天看點

《循序漸進Linux(第2版) 基礎知識 伺服器搭建 系統管理 性能調優 虛拟化與叢集應用》——4.6 網絡設定與維護

本節書摘來自異步社群《循序漸進linux(第2版) 基礎知識 伺服器搭建 系統管理 性能調優 虛拟化與叢集應用》一書中的第4章,第4.6節,作者:高俊峰著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

4.6.1 ifconfig指令

1.功能說明

ifconfig指令用來配置網絡或顯示目前網絡接口狀态。它類似于windows下的ipconfig指令,同時ifconfig指令必須以root使用者來執行。其格式如下。

<code>ifconfig [選項] [interface] [inet|up|down|netmask|addr|broadcast]</code>

ifconfig指令的選項及其說明如表4.39所示。

《循序漸進Linux(第2版) 基礎知識 伺服器搭建 系統管理 性能調優 虛拟化與叢集應用》——4.6 網絡設定與維護

interface:網絡接口名,linux下的網絡接口名類似于eth0、eth1和lo等(在centos 7.x版本中,網絡接口名變為類似enp0s1、enp0s2這樣的辨別),分别表示第1塊網卡、第2塊網卡和回環接口。這是個可選項,如果不添加此選項,則顯示系統中所有的網卡資訊;如果添加此選項,則顯示指定網卡資訊。

up:激活一個網絡接口。

down:與up相反,使指定的網絡接口無效。

netmask:為一個指定的網絡接口指定子網路遮罩。

addr:這裡的“addr”為網絡接口指定的ip位址。

broadcast:為指定的接口設定廣播位址。

2.舉例

1)顯示目前系統所有網絡接口資訊,使用以下指令。

從上面可以看出以下幾點。

第1行:“up”代表網卡開啟狀态,“running”代表網卡上的網線處于連接配接狀态,“multicast”代表支援多點傳播,“mtu:1500”表示最大傳輸單元為1500位元組。

第2行:依次顯示網卡的ip位址、子網路遮罩和廣播位址。

第3行:ipv6位址的配置資訊。

第4行:ether後面表示硬體網卡的mac位址。ethernet表示連接配接類型為以太網。

第5、6行:顯示網卡接收資料包的統計資訊和接收錯誤的統計資訊。

第7、8行:顯示網卡發送資料包的統計資訊和發送錯誤的統計資訊。

2)在網卡enp0s3上配置兩個ip位址,分别為192.168.60.136、192.168.66.138,子網路遮罩為255.255.255.0,使用以下指令。

此時用ifconfig指令檢視,就可以看到兩個網卡的資訊了,分别是“enp0s3”和“enp0s3:0”。如果此時還想在enp0s3上增加ip位址,那麼網卡的命名依次是“enp0s3:1”、“enp0s3:2”等。

3)修改網卡的mac位址為新的mac位址,使用以下指令。

<code>[root@centos7 ~]#ifconfig enp0s3hw ether xx:xx:xx:xx:xx:xx</code>

其中,“xx:xx:xx:xx:xx:xx”為新的mac位址,此時用ifconfig檢視enp0s3的資訊,mac位址已經更改。

4)将網卡enp0s3禁用後再啟用,使用以下指令。

注意

 用ifconfig指令配置的網卡資訊,在網卡重新開機或者機器重新開機後,所有的配置都失效了,如果要讓網卡配置永久生效,就需要修改網卡的配置檔案了,這将在下面講述。

4.6.2 scp指令

scp就是secure copy,用于将檔案或者目錄從一個linux系統複制到另一個linux系統下。scp傳輸資料用的是ssh協定,保證了資料傳輸的安全。其格式如下。

scp使用第1種格式将遠端linux系統上的某個檔案或者目錄複制到本地linux系統上,使用第2種格式是将本地的某個檔案或者目錄複制到遠端linux系統的某個路徑下。

1)目前我們處在ip為“192.168.60.133”的linux系統下,計劃将此系統下的/home/ixdba/etc.tar.gz檔案複制到ip為“192.168.60.168”的遠端linux系統中root使用者下的/tmp目錄下,使用下面指令。

<code>[root@centos7 ~]#scp /home/ixdba/etc.tar.gz [email protected]:/tmp</code>

指令輸入完畢,會要求輸入“192.168.60.168”伺服器root的密碼,然後開始遠端複制資料。如果目前我們處在“192.168.60.168”伺服器上,也可以使用下面的指令傳輸資料。

<code>[root@centos7 ~]#scp [email protected]:/home/ixdba/etc.tar.gz /tmp</code>

指令輸入完畢,此時會要求輸入“192.168.60.133”伺服器root的密碼,然後開始遠端複制資料。

2)将本地/etc目錄中所有檔案和子目錄複制到ip為“192.168.60.135”的遠端linux系統的root使用者下的/opt目錄中,使用以下指令。

<code>[root@centos7 ~]#scp –r /etc [email protected]:/opt</code>

這裡的選項“r”與cp指令中的“r”選項含義相同。

4.6.3 netstat指令

netstat指令用來顯示本機網絡連接配接、運作端口和路由表等資訊。其格式如下。

<code>netstat [選項]</code>

1)顯示目前系統的路由資訊。

從上面可以看出,目前系統的預設網關是“192.168.81.250”,而對應的網絡接口為enp0s3。

2)顯示目前系統中所有有效的tcp連接配接,使用以下指令。

在上面的顯示中,可以看出netstat的輸出分為兩部分,分别是tcp/ip網絡部分和unix socket部分,我們先來看看輸出的組成部分。

proto:連接配接協定的種類,主要是tcp/udp協定。

recv-q:不是由程式連接配接而産生的位元組數。

send-q:從遠端主機傳送而來的位元組數。

local address:本地端的ip位址,可以是ip,也可以是主機名。

foreign address:遠端主機的ip與端口。

state:顯示狀态列,主要有以下幾個狀态。

listen:一般用在服務的監聽端口。

syn_sent:在發送連接配接請求後等待比對的連接配接請求。

syn_received:收到一個連接配接請求後,等待對方對連接配接請求的确認。

time_wait:表示該連接配接已經中斷,但套接字還在等待網絡結束。

fin_wait1:表示該套接字已經中斷,而連接配接正在中斷之中。

fin_wait2:表示該連接配接已經中斷,正在等待對方主機響應中斷确認請求。

3)顯示目前系統中已經啟動的網絡連接配接和對應的端口資訊,使用如圖4.9所示指令。

《循序漸進Linux(第2版) 基礎知識 伺服器搭建 系統管理 性能調優 虛拟化與叢集應用》——4.6 網絡設定與維護

從圖4.9的輸出可以看出,系統中對外開放了80、22和23端口。為什麼這麼說呢?因為這些端口都是針對“0.0.0.0”開放的,而25、631端口僅僅針對内部127.0.0.1開放。最後一列顯示了每個端口對應的服務名(program name)和程序id(pvd),可以很友善地知道每個端口的用途。

4)檢視目前系統上處于連接配接狀态的資源資訊,可以使用如圖4.10所示指令。

《循序漸進Linux(第2版) 基礎知識 伺服器搭建 系統管理 性能調優 虛拟化與叢集應用》——4.6 網絡設定與維護

從上面的輸出看出,有四個線路處于連接配接狀态,分别是遠端主機192.168.81.30啟動的大于1024的兩個端口65409、64394向本地主機192.168.81.232的22端口建立的連接配接,以及遠端主機192.168.81.30啟動的大于1024的兩個端口49837、49848向本地主機192.168.81.232的23端口建立的連接配接。

4.6.4 traceroute指令

traceroute指令用來顯示網絡資料包傳輸到指定主機的路徑資訊,追蹤資料傳輸路由狀況。預設資料包大小是38位元組,使用者可另行設定。它與windows下的tracert指令類似,其格式如下。

<code>traceroute [選項] [遠端主機名或者ip位址] [資料包大小]</code>

traceroute指令的選項及其說明如表4.41所示。

《循序漸進Linux(第2版) 基礎知識 伺服器搭建 系統管理 性能調優 虛拟化與叢集應用》——4.6 網絡設定與維護

跟蹤從本機到網站www.ixdba.net的資料包發送過程,使用以下指令。

上面指定eth0網絡接口發送資料包,同時指定本地發送資料包的ip為192.168.60.251,并設定逾時時間為10秒,最後設定發送資料包的大小為100位元組。根據輸出可以看到,從本機到www.ixdba.net對應的ip位址經曆了18個路由的迂回。

traceroute指令會對這18個路由節點做icmp的回應時間測試,每個路由節點做3次時間測試,如上面顯示,基本上每個路由節點的回應時間都在100秒内,隻有在第15個路由節點,回應時間稍長。通過這種網絡跟蹤,可以測試資料傳輸在哪個部分出現問題,以便及時解決。

如果在指定的時間内(這裡設定的是10秒),traceroute檢測不到某個路由節點的回應資訊,就在螢幕輸出“*”,表示此節點無法通過。由于traceroute是利用icmp連接配接的,有些網絡裝置(如防火牆)可能會屏蔽icmp通過的權限,是以也會出現節點沒有回應的狀态,這些都是我們分析網絡問題需要知道的。

4.6.5 telnet指令

telnet指令通過telnet協定與遠端主機通信或者擷取遠端主機對應端口的資訊。它與windows下的telnet具有相同的功能。其格式如下。

<code>telnet 主機名或者ip位址端口</code>

1)要通過telnet協定登入到開啟了telnet服務的遠端主機上,使用以下指令。

當輸入使用者名ixdba和密碼後就登入到了“192.168.60.123”伺服器,這裡直接用“telnet 192.168.60.123”也是可以的,因為telnet預設尋找的就是“23”端口。

如果出現這個問題,就表示這個端口對應的服務沒有開啟,或者端口被屏蔽,無權通路。

2)要檢視某台linux系統的22和80端口是否打開以及分别開啟了什麼服務,使用以下指令。

從這裡可以看出,在“192.168.60.88”的22端口運作着ssh服務,對應的ssh版本為ssh-2.0-openssh_6.6.1。

當輸入“telnet www.ixdba.net 80”之後,如果“www.ixdba.net”對應ip的80端口開啟,就會給出歡迎資訊,類似于“escape character is '^]'”。此時通過鍵盤輸入“get”指令,将顯示80端口對應的應用伺服器類型,例如本例的80端口對應的應用服務為apache與php以及resin的組合。

4.6.6 wget指令

wget指令用來從網絡上下載下傳某個軟體,這個指令對于能夠連接配接到網際網路的linux系統作用非常大,可以直接從網絡下載下傳自己需要的軟體。其格式如下。

<code>wget [要下載下傳軟體的網址]</code>

下載下傳一個linux-4.0.2版本核心,可以使用以下指令。