一、查看網絡配置
1.查看網絡接口信息ifconfig
- 查看所有活動的網絡接口信息
2.ifconfig命令
- 查看指定網絡接口信息
ifconfig? ? 網絡接口
(1)第一行:以太網卡的名字 ens33其中en代表以太網卡, centos6的是eth0,
ens33代表PCI接口的物理位置為(0,3), 其中橫座標代表bus,縱座標代表slot
UP:代表此網絡接口為啟用狀態(down為關閉狀態)
RUNNING:代表網卡設備已連接
MULTICAST:表示支持組播
MTU:為數據包最大傳輸單元
(2)第二行:網卡的IP地址、子網掩碼、廣播地址
(3)第三行:IP v6地址
(4)第四行:Ethernet(以太網)表示連接類型;
ether:表示為網卡的MAC地址
(5)第五行:接受數據包個數、大小統計信息
(6)第六行:異常接受包的個數、如丟包量、錯誤等
(7)第七行:發送數據包個數、大小統計信息
(8)第八行:發送包的個數、如丟包量、錯誤等
3.? ifconfig -a #顯示所有活動及非活動的連接
4. ip? a命令是?iproute2
?套件的一部分,該套件提供了一套強大的工具來管理路由、網絡設備、接口和隧道。
- ?ens33:第一塊以太網卡的名稱。“ens33”中的“en”是“EtherNet”的縮寫,表示網卡類型為以太網,“s”表示熱插拔插槽上的設備(hot-plug Slot),數字“33”表示插槽編號。
- lo:“回環”網絡接口,“lo”是“loopback”的縮寫,它不代表真正的網絡接口,而是一個虛擬的網絡接口,其 IP 地址默認是“127.0.0.1”。回環地址通常僅用于對本機的網絡測試
注意:若采用 minini centos 安裝的系統,默認是沒有 ifconfig 命令的,需要先通過yum 方式安裝 net-tools軟件包,才有?ifconfig 命令
5.virbr0
virbr0
?是一個虛擬的橋接網絡接口,由虛擬化軟件(如libvirt)自動創建和管理。它作為虛擬機網絡中的虛擬交換機,允許虛擬機之間以及虛擬機與宿主機(或外部網絡)之間的通信。- 默認情況下,
virbr0
?可能會配置為NAT(網絡地址轉換)模式,這意味著虛擬機通過宿主機連接到外部網絡時,它們的IP地址會被轉換成宿主機的IP地址(或某個指定的地址范圍),從而隱藏了虛擬機的真實IP地址。
二、修改網絡配置文件
網絡接口的配置文件默認位于/etc/sysconfig/network-script/ifcfg-ens33
文件名格式為 “ifcfg-XXX”,其中“XXX”是網絡接口的名稱。
例如,網卡 ens33 的配置文件是“ifcfg-ens33”, 回環接口 lo 的配置文件是“ifcfg-lo”。
TYPE=Ethernet ? ?#設置網卡類型,“Ethernet”表示以太網。
BOOTPROTO=static ? ?#設置網絡接口的配置方式,值為“static”時表示使用靜態指定的 IP 地址,為“dhcp”時表示通過 DHCP 的方式動態獲取地址。
DEVICE=ens33 ? #設置網絡接口的名稱
NAME=ens33 ? ? #設置網絡接口的名稱
UUID=01f717ed-f7ac-4ac0-a209-c7c5889e3635 ? #設備ID
ONBOOT=yes ? ? #設置網絡接口是否在 Linux 操作系統啟動時激活。
IPADDR=192.168.10.9 ?#設置網絡接口的 IP 地址。?
NETMASK=255.255.255.0 ?#設置網絡接口的子網掩碼。
GATEWAY=192.168.10.1 ?#設置網絡接口的默認網關地址
DNS1=8.8.8.8 ? ? ? #設置域名解析服務器
DNS2=114.114.114.114
在 CentOS 7 操作系統中,當修改了網絡接口的配置文件以后,若要使新的配置生效, 可以重新啟動 network 服務或者重啟主機
systemctl? restart? ?network
注:建議關閉NetworkManager服務,否則有時啟動network會報錯
systemctl stop NetworkManager? ? ? ? #停止
systemctl disable NetworkManager? ?#開機自動關閉
三、使用網絡配置命令
3.1、網卡配置
ifconfig 命令不僅可以用于查看網卡配置,還可以修改網卡的 IP 地址、子網掩碼,也可以綁定虛擬網絡接口、激活或禁用網絡接口。
?
有一個新的網卡設備 ens37
如果只是禁用、啟用某一個網絡 接口(而不是所有接口),可分別使用兩個接口控制腳本??
ifconfig ens37 down /?up? ?或? ?ifup/ifdown ens37
為網卡綁定虛擬接口:在對服務器網絡進行調試的過程中,有時候需要臨時在同一個網卡上使用一個新的 IP 地址,但是又不能覆蓋原有 IP 地址而導致服務程序不可用。這時可以為網卡綁定一個虛擬的網絡接口,然后為虛擬接口設置新的 IP 地址(相當于一塊網卡配多個 IP 地址)
ifconfig ens37:0 192.168.10.20 netmask 255.255.255.0 ? #臨時配置網卡的ip地址
ifconfig ens37:0 192.168.10.20/24? ?#當不指定子網掩碼時,將使用 IP 地址所在分類的默認子網掩碼
3.2、主機名設置
在 Linux 操作系統中,相當一部分網絡服務都會通過主機名來識別主機,如果主機名配置不當,可能會導致程序功能出現故障
臨時修改:hostname? ?yc666
永久修改
hostnamectl set-hostname? yc777? ? ? ?或者vim /etc/hostname
hostname -i
因為hosts文件沒有對應的hostname解析IP地址,顯示一堆亂七八糟的玩意兒
3.3、路由設置
路由表:Linux 操作系統中的路由表決定著從本機向其他主機、其他網絡發送數據的去向,是排除網絡故障的關鍵信息。
直接執行“route”命令可以查看當前主機中的路由表信息
當目標網段為“default”時,表示此行是默認網關記錄;當下一跳為“gateway”時,表示目標網段是與本機直接相連的。
但是,直接執行“route”命令無法直接看出默認網關地址
route -n ? ? ?#查看路由,使用-n可以將路由記錄中的地址顯示為數字形式,這可以跳過解析主機名的過程,在路由表條目較多的情況下能夠加快執行速度
Destination 列對應目標網段的地址
Gateway 列對應下一跳路由器的地址
Iface 列對應發送數據的網絡接口
ip route show或者? ip route ? #查看路由配置
?
添加、刪除靜態路由記錄
route 命令不僅可以用于查看路由表信息,還可用來添加、刪除靜態的路由表條目,其中也包括設置默認網關地址(默認網關記錄是一條特殊的靜態路由條目)
route add?操作可以添加路由記錄,#添加靜態路由結合“-net”選項指定目標網段的地址,結合“gw”選項指定下一跳路由器的IP 地址
route add -net 192.168.3.0/24 gw 192.168.10.1 #表示可以通過192.168.10.1到192.168.3.0/24網絡
route del?操作可以刪除路由記錄
route del? ?-net 192.168.3.0/24?
添加、刪除默認網關記錄,需要注意的是,在同一個主機的路由表中只應有一條默認網關記錄。若同時存在多條默認網關記錄,則可能導致該主機的網絡連接出現故障。
添加、刪除默認網關記錄時,與添加、刪除靜態路由記錄的命令格式類似,但指定目標網段時只需簡單地使用“default”表示即可 (-net有-,gw沒有)
route add default gw 網關ip
route del default gw 網關ip/route del default
3.4、natstat命名
netstat命令 | 查看當前操作系統的網絡連接狀態、路由表、接口統計等信息,它是了解網絡狀態及排除網絡服務故障的有效工具
選項 | 描述 |
---|---|
-n | 以數字形式顯示地址和端口號,不進行名稱解析。 |
-r | 顯示路由表信息。 |
-a | 顯示所有選項,默認不顯示LISTEN相關。 |
-l | 僅顯示監聽服務狀態。 |
-t | 僅顯示TCP連接。 |
-u | 僅顯示UDP連接。 |
-p | 顯示進程標識符和進程名稱,需要root權限。 |
用法:①通常使用“??-anpt?”組合選項,以數字形式顯示當前系統中所有的 TCP 連接信息,同時顯示對應的進程信息
②配合管道符grep過濾出特定的記錄
netstat -anpt | grep sshd
netstat -lnpt | grep sshd
[root@localhost ~]# netstat -lnpu | grep ntp
udp ? ? ? ?0 ? ? ?0 192.168.122.1:123 ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? 65421/ntpd ? ? ? ? ?
udp ? ? ? ?0 ? ? ?0 192.168.245.211:123 ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? 65421/ntpd ? ? ? ? ?
udp ? ? ? ?0 ? ? ?0 127.0.0.1:123 ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? 65421/ntpd ? ? ? ? ?
udp ? ? ? ?0 ? ? ?0 0.0.0.0:123 ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? 65421/ntpd ? ? ? ? ?
netstat -rn
?3.5、ss 命令
可以查看網絡連接情況,主要用于獲取 socket 統計信息,它可以顯示和 netstat 命令類似的輸出內容。但 ss 的優勢在于它能夠顯示更多更詳細的有關 TCP 和連接狀態的信息,而且比 netstat 更快速更高效(但是大多數人習慣用netstat)
當服務器的socket連接數量變得非常大時,無論是使用netstat命令還是直接cat /proc/net/tcp,執行速度都會很慢。
ss快的秘訣在于,它利用到了TCP協議棧中tcp_diag。tcp_diag是一個用于分析統計的模塊,可以獲得Linux 內核中第一手的信息,這就確保了ss的快捷高效
ss命令是Linux CentOS 7中iproute軟件包的一部分,默認已經安裝。
3.5.1、實驗1
比較速度
time ss
time netstat -an
查看并發連接數ss和netstat對比
為什么ss比netstat快:
netstat是遍歷/proc下面每個PID目錄,ss直接讀/proc/net下面的統計信息。所以ss執行的時候消耗資源以及消耗的時間都比netstat少很多
選項:
-h:--help 通過該選項獲取更多的使用幫助。?
-V:--version 顯示軟件的版本號。?
-t:--tcp 顯示 TCP 協議的 sockets。?
-u:--udp 顯示 UDP 協議的 sockets。
-n:--numeric 不解析服務的名稱,如 "22" 端口不會顯示成 "ssh"。
-l:--listening 只顯示處于監聽狀態的端口。
-p:--processes 顯示監聽端口的進程。?
-a: --all 對 TCP 協議來說,既包含監聽的端口,也包含建立的連接。
-r: --resolve 把 IP 解釋為域名,把端口號解釋為協議名稱。
-o選項可用于顯示計時器信息
3.5.2、一些案例
ss -tn | grep -w 22?
ss -o state 'established' | grep ssh ? #-o選項可用于顯示計時器信息。該信息向我們展示了諸如重新傳輸計時器值、已經發生的重新傳輸的數量以及已發送的keepalive探測的數量
state 'established'
?指定只顯示狀態為?established
?的連接。established
?狀態表示連接已經成功建立,數據可以在兩個方向上自由流動。
?
ss -t state established??
套接字的其他狀態,如?established, syn-sent
,?syn-recv
,?fin-wait-1
,?fin-wait-2
,?time-wait
,?closed
,?closed-wait
,?last-ack
監聽和關閉?等,這些狀態代表了TCP連接的不同階段。
? ? ? ? ?
ss -tnl sport le 500
port le 500
?部分指定了源端口(source port,雖然在監聽上下文中通常指的是端口號本身,因為監聽套接字不區分源端口和目標端口)小于或等于(le
)500的過濾條件。
四、測試網絡連接
4.1、ping
使用 ping 命令可以向目標主機持續地發送測試數據包,并顯示反饋結果,直到按 Ctrl +C 組合鍵后中止測試,并顯示最終統計結果
若看到“Destination Host Unreachable”的反饋信息, 則表示目的主機不可達,可能目標地址不存在或者主機已經關閉;
若看到“Network is unreachable”的反饋信息,則表示沒有可用的路由記錄(如默認網關),無法達到目標主機 所在的網絡。
當目標主機有嚴格的防火墻限制時,或者當網絡中存在影響通信過程穩定性的因素(如網卡故障、病毒或網絡攻擊等)時,可能收到 “Request timeout”的反饋結果
4.1.1、案列
[root@localhost ~]# ping 192.168.10.10 ? #最常用是后面跟ip地址
[root@localhost ~]# ping www.baidu.com ? ?#后面還可跟域名
[root@localhost ~]# ping -c 2? 192.168.10.10 ? #-c表示指定ping的次數
[root@localhost ~]# ping -c 10 -i 0.5 192.168.10.10 ? #-i 秒數:設定間隔幾秒送一個網絡封包給一臺機器,預設值是一秒送一次。
[root@shengjie ~]# ping -w 5 www.baidu.com ? ? #-w表示ping的超時時間為5s,意思是只ping5秒,5秒后結束
4.2、traceroute
跟蹤數據包的路由途徑:traceroute
若服務器上沒有 traceroute 命令,可通過 yum 方式安裝 traceroute 軟件包
traceroute 命令可以用于測試從當前主機到目的主機之間經過了哪些網絡結點,并顯示各中間結點的連接狀態(響應時間)。對于無法響應的結點,連接狀態將顯示為“*”
traceroute 192.168.10.10
traceroute 命令能夠比 ping 命令更加準確地定位網絡連接的故障點(中斷點),因此執行速度會比 ping 命令稍慢。
在網絡測試與排錯過程中,通常會先使用 ping 命令測試與目的主機的網絡連接,如果發現網絡連接有故障,再使用 traceroute 命令跟蹤查看是在哪個中 間結點存在故障。
4.3、域名解析
nslookup
下載 yum install -y bind-utils
nslookup www.baidu.com
#以下為 DNS 解析的反饋結果
4.3.1、域名解析配置文件
bind-utils 安裝包
vi /etc/resolv.conf?
resolv.conf 文件中的“search localdomain”行用來設置默認的搜索域(域名擴展名)。?
例如,當訪問主機“localhost”時,就相當于訪問“localhost.localdomain”。
一行一個DNS,最多配置三個DNS
指定了兩個DNS服務器:
-
114.114.114.114
:這是一個由中國電信和清華大學等維護的公共DNS服務器,被很多中國用戶用作替代默認DNS服務器的選擇,因為它在國內訪問速度較快,且提供了一定的安全過濾功能。 -
8.8.8.8
:這是Google提供的公共DNS服務器,全球范圍內廣泛使用,以其解析速度快和安全性高著稱。
/etc/resolv.conf 文件中記錄了本機默認使用的 DNS 服務器的地址信息,對該文件所做 的修改將會立刻生效。Linux 操作系統中最多可以指定 3 個(第 3 個以后的將被忽略)不同 的 DNS 服務器地址,優先使用第一個 DNS 服務器。
?
4.3.2、本地主機映射文件
/etc/hosts 文件中記錄著一份主機名與 IP 地址的映射關系表,一般用來保存經常需要訪問的主機的信息。當訪問一個未知的域名時,先查找該文件中是否有相應的映射記錄,如果找不到再去向 DNS 服務器查詢。
若在/etc/hosts 文件中添加“119.75.218.70 www.baidu.com”的映射記錄,則當訪問網站 www.baidu.com 時,將會直接向 IP 地址 119.75.218.70 發送 Web 請求,省略了向 DNS。
Dig是一個在類Unix命令行模式下查詢DNS包括NS記錄,A記錄,MX記錄等相關信息的工具,系統默認安裝?
對于經常訪問的一些網站,可以通過在/etc/hosts 文件添加正確的映射記錄,減少 DNS 查詢過程,從而提高上網速度。當然,若添加了錯誤的映射記錄,則可能導致網站訪問出現異常。另外,因為 hosts 文件只保存在本地,所以其中的映射記錄也只適用于當前主機,而無法作用于整個網絡。 ?
[root@localhost ~]# dig www.baidu.com ? #后跟域名直接查詢