1. 程式人生 > >Linux——網絡配置及命令

Linux——網絡配置及命令

解析 lin BE 路由跟蹤 efault ifconf 網絡連接狀態 ipad com

traceroute命令(unix)/tracert命令(windows)

tracert命令的格式為:tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name。

①、-d

表示不將地址解析成主機名。

②、-h maximum_hops

表示搜索目標的最大躍點數。

③、-j host-list

表示與主機列表一起的松散源路由(僅適用於IPv4)。

④、-w timeout

表示等待每個回復的超時間(以毫秒為單位)。

⑤、-R

表示跟蹤往返行程路徑(僅適用於IPv6)。

⑥、-S srcaddr

表示要使用的源地址(僅適用於IPv6)。

⑦、-4和-6

表示強制使用IPv4或者IPv6。

⑧、target_name

表示目標主機的名稱或者IP地址。

在Linux中配置IP地址的方法有以下這麽幾種:

  • 圖形界面配置IP地址(操作方式如Windows系統配置IP,但在實際生產中,我們並不建議在我們的服務器上安裝Linux的圖形界面,因為安裝了圖形界面將一定程度地影響了服務器的安全性和穩定性,因此,在這裏就不對該方式進行詳細的介紹了。)
  • ifconfig命令臨時配置IP地址(臨時配置IP地址,即當我們重啟計算機或重啟網絡服務後,配置將失效)
  • setup工具永久配置IP地址(setup
    工具是由Red Hat開發的,因此在正常情況下,該工具只能用於Red Hat系列的Linux系統)(setup工具——紅帽專有圖形化工具setup設置IP地址)(使用setup命令設置完網絡後需要使用service network restart重啟網絡)
  • 修改網絡配置文件

ifconfig命令

  ifconfig命令可以查看與配置網絡狀態。命令結果如下:

eth0      Link encap:Ethernet  HWaddr 00:0C:29:11:30:39  
          inet addr:192.168.134.129  Bcast:192.168.134.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe11:3039/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:19731 errors:0 dropped:0 overruns:0 frame:0
          TX packets:502 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1248492 (1.1 MiB)  TX bytes:58905 (57.5 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
  • lo表示本地回環網卡的信息)

  使用ifconfig命令還可以臨時設置某一網卡的IP地址和子網掩碼。如:

ifconfig eth0 192.168.0.200 netmask 255.255.255.0

Linux網絡配置文件

網卡信息文件

  查看第一張網卡的網卡信息:

vi /etc/sysconfig/network-scripts/ifcfg-eth0
  •   信息如下:
DEVICE=eth0
HWADDR=00:0C:29:11:30:39
TYPE=Ethernet
UUID=5ab36190-a5df-4bf1-94d8-6c126afd05f1
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
  •   更多信息說明,如下表格:
配置說明
DEVICE=eth0 網卡設備名,eth0表示第一張網卡
BOOTPROTO=none 是否自動獲取IP(none、static、dhcp),當值為dhcp時,只需配置上述例子中的那幾項就可以聯網
HWADDR=00:0C:29:11:30:39 MAC地址
NM_CONTROLLED=yes 是否可以由Network Manager圖形管理工具托管
ONBOOT=yes 是否隨網絡服務啟動當前網卡生效(在CentOS 6 以上的版本中ONBOOT是默認關閉的。)
TYPE=Ethernet 網絡類型,這裏為以太網
UUID=5ab36190-a5df-4bf1-94d8-6c126afd05f1 唯一識別碼
IPADDR=192.168.0.200 IP地址
NETMASK=255.255.255.0 子網掩碼
GATEWAY=192.168.0.1 網關
DNS1=202.106.0.20 DNS
IPV6INIT=no IPv6是否啟用,這裏設置為不啟用
USERCTL=no 是否允許非root用戶控制此網卡,這裏為不允許
說明:
1.自動獲取IP的條件是:必須在局域網內存在DHCP服務器。
2.相同UUID網絡配置的計算機會導致互相不能上網。

主機名文件

  查看主機名文件:

vi /etc/sysconfig/network
  •   內容如下:
NETWORKING=yes
HOSTNAME=localhost.localdomain

  其中:
1. /etc/sysconfig/network該文件中NETWORKING=no時主機將無法連接網絡。
2. Windows下,在同一局域網內相同主機名之間是不能進行傳遞的。要求在局域網內是不能有相同主機名的主機的。而在Linux中局域網內是可以有相同主機名的主機的,如默認主機名:localhost.localdomain
3. 修改/etc/sysconfig/network文件中的主機名後需要重啟計算機才能生效。使用hostname 主機名命令可以臨時更改主機名後,重啟計算機後將失效。通過hostname命令可以查看當前主機名。

DNS配置文件

  查看DNS配置文件:

vi /etc/resolv.conf
  •   內容如下:
; generated by /sbin/dhclient-script
search localdomain
nameserver 192.168.134.2

  其中最重要的是nameserver這一項,設置的是域名服務器的地址,多個域名服務器,則在後續添加空格繼續補充域名服務器的地址,或者另起一行做類似的nameserver配置。

VMWare中Linux的網絡參數配置

(以CentOS為例)
1. 配置Linux IP地址;
2. CentOS 6以上的系統修改修改網絡配置以啟動網卡vi /etc/sysconfig/network-scripts/ifcfg-eth0ONBOOT選項的值修改為yes,重啟網絡服務service network restart
3. 對於網絡配置文件中UUID出現相同的情況,需要修改UUID的值,修改方式如下:

1. `vi /etc/sysconfig/network-scripts/ifcfg-eth0`,刪除MAC地址行
2. `rm -rf /etc/udev/rules.d/70-persistent-net.rules`,刪除網卡和MAC地址綁定文件
3. 重啟當前系統
  • 4.設置VMWare虛擬機的網絡連接方式,選擇橋接模式(可不勾選“復制物理網絡連接狀態”這一選項)(其中橋接模式,允許虛擬機訪問外網,同時可以與局域網內的其他計算機進行通訊(包括本機);NAT模式,允許虛擬機訪問外網,能與本機進行數據通訊;Host Only模式,只能同本機進行通訊);

5. 修改橋接的網卡,在“虛擬網絡編輯器”窗口中選擇VMnet0,修改橋接模式下橋接的網卡,這裏選擇可以上網的網卡。

VMWare橋接模式下配置靜態IP

修改網卡配置文件,如下:

DEVICE=eth0
HWADDR=00:0C:29:FC:8D:E6
TYPE=Ethernet
#UUID=343b502d-2249-4e33-9187-9abc285b9292
UUID=31b6504c-7ddd-4b74-a51e-46cd34ed182d
ONBOOT=yes
NM_CONTROLLED=yes

#BOOTPROTO=dhcp
BOOTPROTO=static
IPADDR=11.10.1.192
NETMASK=255.255.255.0
GATEWAY=10.8.8.1
DNS1=114.114.114.114
DNS2=8.8.8.8
IPV6INIT=no
USERCTL=no

重啟網卡:

service network restart

這裏,ping外網地址會失敗。使用route命令發現,默認網關沒有設置成功。原因不明(DHCP模式下,動態獲取IP,默認網關10.8.8.1設置成功,可以正常上網。)
為配置靜態IP的情況下,解決默認網關未設置成功的問題,使用route命令臨時修改默認網關:
臨時修改默認網關(linux中配置網絡出現 SIOCADDRT: No such process):

sudo route add 10.8.8.1/32 dev eth0
sudo route add default gw 10.8.8.1

Linux網絡命令

網絡環境操作

  1. ifconfig命令
      ifconfig:查看網絡狀態(能查看IP地址和子網掩碼,但是不能查看網關和DNS地址),還可以臨時設置某一網卡的IP地址和子網掩碼。
  2. 關閉與啟動網卡
      ifdown 網卡設備名:禁用該網卡設備。
      ifup 網卡設備名:啟用該網卡設備。
  3. 查詢網絡狀態
      netstat 選項(可以用於查看當前計算機開放的端口,從而判斷當前計算機啟動了哪些服務)
    選項:
-t:列出TCP協議端口
-u:列出UPD協議端口
-n:不使用域名和服務名,而使用IP地址和端口號
-l:僅列出在監聽狀態網絡服務
-a:列出所有的網絡連接
-r:列出路由列表,功能和route命令一只
常用組合:-tuln、-an、-rn
查看某一狀態下的網絡連接情況,如:netstat -an | grep ESTABLISHED
查看某一網絡狀態下的行數(查看有多少臺計算機連接到當前服務器),如:netstat -an | grep ESTABLISHED | wc -l
netstat -rn 和 route -n 命令功能一樣,結果一致。通過這樣的命令查看當前計算機的網關地址。
  • (註:Linux中如何中止遠程連接?使用logout命令。在Windows中則操作菜單欄點擊註銷。)

4. route命令
  route -n:查看路由列表(可以看到當前計算機的網關)。
  route add default gw 192.168.1.1:臨時設定網關。
  route del default gw 192.168.1.1:刪除設定的網關。
5. 域名解析命令
  nslookup [主機名或IP]:進行域名或IP地址的解析。

nslookup
> server
# 查看本機DNS服務器
> exit
# 退出
  • (註:CentOS 6.x後nslookup已不存在,需要進行安裝,參考:CentOS 6.x 安裝 nslookup 的步驟 (與 yum 如何查詢套件) 。在不想安裝nslookup的情況下,又想查看本機配置的DNS服務器地址,可以使用cat /etc/resolv.conf命令。)

網絡測試命令

  1. ping命令
      ping [選項] ip或域名:探測指定IP或域名的網絡狀況。
選項:
-c 次數:指定ping發送包的次數
  • 1
  • 2

  2. telnet命令
  telnet [域名或IP] [端口]:遠程管理與端口探測命令。(telnet的遠程連接是極不安全的,它是明文傳遞數據,並未將數據加密。所以我們並不建議使用telnet命令進行遠程管理,但是我們可以通過該命令探測某個計算機中是否開放了某一端口。如:telnet 192.168.0.1 80
  3. traceroute命令
  traceroute [選項] IP或域名:路由跟蹤,查看訪問某一IP或域名時經過的路由(路由路徑)。(該命令可能需要單獨安裝)

選項:
-n 使用IP而不使用域名顯示
  •   4. wget命令

  wget 下載地址:下載命令。
  5. tcpdump命令
  tcpdump命令:用於監聽某一網卡下某一服務的數據包接收情況(截獲數據包-抓包)。如:tcpdump -i eth0 -nnX port 21

選項:
-i 指定監聽的網卡
-nn 將數據包中的域名與服務轉為IP和端口顯示
-X 以十六進制和ASCII碼顯示數據包內容
port 指定監聽的端口

下面我們逐步介紹幾個常用的命令:

1、Ping命令。

當您的機器不能訪問Internet,首先確認是否是本地局域網的故障。假定局域網的代理服務器IP地址為202.168.0.1,您可以使用ping 202.168.0.1命令查看本機是否和代理服務器聯通。此外可以測試本機的網卡是否正常工作,使用 ping 127.0.0.1命令。一般返回ping的信息就表示本地到該主機的網絡線路連通。

但是很多服務器為了防止攻擊,一般會關閉對ping的響應。所以ping一般作為測試連通性使用。ping命令後,會接收到對方發送的回饋信息,其中記錄著對方的IP地址和TTL。TTL是該字段指定IP包被路由器丟棄之前允許通過的最大網段數量。TTL是IPv4包頭的一個8 bit字段。例如IP包在服務器中發送前設置的TTL是64,你使用ping命令後,得到服務器反饋的信息,其中的TTL為56,說明途中一共經過了8道路由器的轉發,每經過一個路由,TTL減1。

技術分享圖片技術分享圖片

2、Tracert

Tracert命令用來顯示數據包到達目標主機所經過的路徑(路由器),並顯示到達每個節點(路由器)的時間。命令功能同Ping類似,但它所獲得的信息要比Ping命令詳細得多,它把數據包所走的全部路徑、節點的IP以及花費的時間都顯示出來。該命令比較適用於大型網絡。
Tracert 先發送 TTL 為 1 的回應數據包,當數據包上的 TTL在路由器收到後TTL自動減1 ,一旦某個服務器將TTL減1後,等於了0,路由器應該將“ICMP Time Exceeded”的消息發回源計算機,源計算機就根據收到的信息判斷達到的路由器和所用時間。下次再次發送數據包時,將TTL遞增 1,繼續上述測試,直到目標響應或 TTL 達到最大值,從而確定路由。通過檢查中間路由器發回的“ICMP 已超時”的消息確定路由。某些路由器不經詢問直接丟棄 TTL過期的數據包,這在 Tracert 實用程序中看不到,我們會顯示請求超時的請求信息。下圖所示,我們測試到新浪的路經過了8道路由,同時根據上圖測試ping 新浪時候,TTL=56,說明新浪的TTL初始設置為64,經過8道路由後到達我們客戶機,還剩下64-8 = 56。下圖中請求超時的反饋信息是因為路由器對ping命令做了處理,關閉了ping的響應,所以我們收不到發給他的反饋信息。

技術分享圖片技術分享圖片

3、pathping

pathping 命令是一個路由跟蹤工具,它將 ping 和 tracert 命令的功能與這兩個工具所不提供的其他信息結合起來,綜合了二者的功能。pathping會先顯示中間的通過的路由器(類似tracert命令得到的信息),然後對每個中間路由器(節點)發送一定數量的ping包,通過統計他們對ping包響應的數據包來分析通信質量。上面也提到了,有的路由器對ping關閉了響應,所以有的節點的丟包率會達到100%,所以這種一般就是關閉了ping回復。你可以自己ping試一下。還有,對ping包丟棄程度只是節點本身對ping的處理,並不一定影響他的通信,你可以看到,關閉ping命令節點的下一個節點返回到數據是正常的,說明回復的包都成功發送回來。總之,pathping 命令在一段時間內將數據包發送到將到達最終目標的路徑上的每個路由器,然後根據從每個躍點返回的數據包計算結果。由於命令顯示數據包在任何給定路由器或鏈接上丟失的程度,因此可以很容易地確定可能導致網絡問題的路由器或鏈接。下圖所示,我們看到,達到第二個就終止了,因為第二道節點(路由器),不支持ping,然後,程序就終止不在繼續往下探測了。

技術分享圖片 技術分享圖片

4、 nslookup

Nslookup命令用於解析域名,一般用來檢測本機的DNS設置是否配置正確。如: nslookup 網站域名,即可解析出網站的IP地址。如圖,可以看出解析www.163.com的時候,可以解析出它所有的IP地址,而如果網路出現異常或者無法收到服務器發送來的信息時候,會出現下面第二張圖片的顯示。服務器和Address代表是解析這些IP地址和域名的DNS服務器信息。比如我使用的DNS是jtjndc007.home.langchao.com, DNS服務器地址是10.100.1.11. 技術分享圖片
 

Linux——網絡配置及命令