接口管理命令:
ip命令 字符終端
nmcli命令 字符終端
nmtui命令 可視化終端
ip命令:
使用 ip 命令可以配置臨時網絡的連接信息,相關命令如下:
ip link:顯示網絡設備運行狀態
ip -s link:顯示更詳細的設備信息
ip link show [網絡設備名]:僅顯示指定的網絡設備名的信息
ip link show up :僅顯示當前處于激活狀態的設備信息
ip link set [網絡設備名] down:將指定的網絡設備下線
ip [-s] addr|a show [網絡設備名]:
查看指定網絡設備(網卡名稱)的配置信息,如果加了 -s 選項,則會添加相關的統計信息,如果接收到的或傳送的數據包等
ip [-4] addr|a add IP地址[/掩碼] dev [網絡設備名]:添加一個臨時的 IPv4 的地址(重啟后失效)
ip -6 addr|a add IP地址[/掩碼] dev [網絡設備名]:添加一個臨時的 IPv6 的地址
ip [-4] addr|a del IP地址[/掩碼] dev [網絡設備名]:刪除網卡的臨時IPv4地址
使用示例:
[root@bogon system-connections]# ip link
[root@bogon system-connections]# ip -s link
?[root@bogon system-connections]# ip link show ens160
?[root@bogon system-connections]# ip a
?[root@bogon system-connections]# ip -s a
?[root@bogon system-connections]# ip -s a show ens160
# 添加一個臨時的 ip 地址
[root@bogon system-connections]# ip -4 a add 192.168.72.120/24 dev ens160
[root@bogon system-connections]# ip a show ens160
# 刪除一個臨時的 IP 地址
[root@bogon system-connections]# ip -4 a del 192.168.72.120/24 dev ens160
[root@bogon system-connections]# ip a show ens160
修改配置文件
在 redhat 9 中,已經不推薦修改配置文件了,而推薦使用命令的方式來進行配置。
要修改配置文件,我們需要編輯 /etc/NetworkManager/system-connections 目錄下的 ens160.nmconnection 文件中
nmcli 命令:
查看網卡設備
語法: nmcli device 或者簡寫為 nmcli d
使用示例:
[root@localhost system-connections]# nmcli device
[root@localhost system-connections]# nmcli d
[root@localhost system-connections]# nmcli d show?
[root@localhost system-connections]# nmcli d show ens160 #顯示指定設備的詳細信息
[root@localhost system-connections]# nmcli d connect ens160 ## 查看當前連接設備信息
[root@localhost system-connections]# nmcli d disconnect ens160 # 斷開網絡,也就是把網卡禁用了
[root@localhost system-connections]# route -n # 查看網關
查看網卡配置
語法: nmcli connectioin 或簡寫為 nmcli c
[root@localhost ~]# nmcli connection # 查看網卡信息
[root@localhost ~]# nmcli c show ens160 | grep -i gateway # 查看自動獲取的網關地址
[root@localhost ~]# nmcli c show ens160 | grep -i dns # 查看當前網卡的dns配置
配置網卡IP:
1.非交互式
需求:修改 ens160 的 ip 地址為 192.168.72.128,并且是 ipv4,自動連接,dns為 114.114.114.114,網關為 192.168.72.2,子網掩碼為 255.255.255.0,然后再添加一個 ip地址:192.168.72.125
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual
autoconnect yes?ipv4.addresses 192.168.72.128/24 ipv4.gateway 192.168.72.2 ipv4.dns 114.114.114.114 +ipv4.addresses 192.168.72.125/24
如果沒有立即生效,需要重啟服務: systemctl restart NetworkManager
[root@localhost ~]# cat /etc/NetworkManager/systemconnections/-ens160.nmconnection
命令說明:
nmcli c modify ens160:表示要修改的網卡
ipv4.method manual:表示網絡連接方式為手動配置
autoconnect yes:表示自動連接,即系統一啟動網絡就可以用
ipv4.addresses 192.168.72.128/24:配置 ipv4 格式的 IP 地址和子網掩碼
ipv4.gateway 192.168.72.2:配置網關信息,就是路由指向下一跳
ipv4.dns 114.114.114.114:配置dns服務,域名解析服務
+ipv4.addresses 192.168.72.125/24:表示再添加一個 IP 地址
2.交互式
[root@localhost ~]# nmcli c edit ens160
nmcli> goto ipv4
nmcli ipv4> set dns 192.168.72.2
nmcli ipv4> save
nmcli ipv4> activate
nmcli ipv4> quit
nmcli c show ens160 | grep -i dns??# 查看當前網卡的dns配置
nmcli c up ens160 # 連接網絡,即讓網卡可用
nmcli c down ens160 # 斷開網絡
nmcli c delete ens160 # 刪除網絡,注意這個命令不要執行
nmtui 命令:
這個命令是用于可視化的方式來進行配置,要想實現這個功能,我們需要先執行如下的操作。
[root@localhost ~]#nmtui
# 啟用 cockpit 服務
[root@localhost ~]# systemctl start cockpit
打開瀏覽器,然后訪問:https://192.168.72.128:9090/,并用普通用戶登錄
網絡問題匯總:
1、連接激活失敗 No suitable device found for this
解決方案:
mv /var/lib/NetworkManager /var/lib/NetworkManager.bak
reboot
網絡維護命令:
ssh命令:
ssh命令的功能是安全地遠程連接服務器主機系統,作為OpenSSH套件中的客戶端連接工具,
ssh命令可以讓我們輕松地基于SSH加密協議進行遠程主機訪問,從而實現對遠程服務器的管理工作。
前提:
1、網絡要暢通
2、服務器上要的ssh服務要啟動? ?#systemctl status sshd
語法格式:ssh 參數 域名或IP地址
常用參數:
-1 使用SSH協議版本1? ? -i 設置密鑰文件
-2 使用SSH協議版本2? ? -l 設置登錄用戶名
-4 基于IPv4網絡協議? ? ?-N 不執行遠程指令
-6 基于IPv6網絡協議? ? ? -o 設置配置參數選項
-a 關閉認證代理連接轉發功能? ? ?-p 設置遠程服務器上的端口號
-A 開啟認證代理連接轉發功能? ? ? ?-q 靜默執行模式
-b 設置本機對外提供服務的IP地址? ? ? -s 請求遠程主機上的子系統調用
-c 設置會話的密碼算法? ? ? -v 顯示執行過程詳細信息
-C 壓縮所有數據? ? ? -V 顯示版本信息
參考示例
基于SSH協議,遠程訪問服務器主機系統:
ssh 172.16.80.64? #用默認的root身份訪問目標服務器
root@172.16.80.64's password: 這里輸入root的密碼
ssh -l caoqb 172.16.80.64? ?#使用指定的用戶身份登錄遠程服務器主機系統
ssh 172.16.80.64 "free -m"? #登錄遠程服務器主機系統后執行一條命令,然后直接返回當前用戶:
ssh -1 172.16.80.64 #強制使用v1版本的SSH加密協議連接遠程服務器主機
也可以用xshell等可視化的工具直接通過ssh的22號端口連接訪問
netstat命令:
netstat命令來自英文詞組network statistics的縮寫,其功能是顯示各種網絡相關信息,例如網絡連接狀態、路由表信息、接口狀態、NAT、多播成員等。
netstat命令不僅應用于Linux系統,而且Windows XP、Windows 7、Windows10及Windows 11均已默認支持,并且可用參數也相同,有經驗的運維人員可以直接上手。
語法格式:netstat 參數
常用參數:
-a 顯示所有連接中的接口信息? ?-n 直接使用IP地址,而不是域名
-A 設置網絡連接類型? ?-N 顯示網絡硬件外圍設備的符號鏈接名稱
-c 持續顯示網絡狀態? ?-o 顯示計時器數據信息
-C 顯示路由配置信息? -p 顯示正在使用接口的程序識別碼和名稱
-F 顯示路由緩存信息? ?-r 顯示路由表信息
-g 顯示多重廣播功能群組成員名單? -s 顯示網絡工作信息統計表信息
-h 顯示幫助信息? ?-t 顯示TCP傳輸協議的連線狀態
-i 顯示網絡界面信息表單? ?-u 顯示UDP傳輸協議的連線狀態
-l 僅顯示正在監聽的服務狀態? ? -V 顯示版本信息
參考示例
netstat -a? ? #顯示系統網絡狀態中的所有連接信息:
netstat -nu? ? #顯示系統網絡狀態中的UDP連接信息
netstat -apu? ? #顯示系統網絡狀態中的UDP連接端口號使用信息
netstat -i? ? #顯示網卡當前狀態信息
netstat -r? ? #顯示網絡路由表狀態信息
netstat -ap | grep ssh? ? #找到某個服務對應的連接信息
dhclient命令:
dhclient命令來自英文詞組DHCP client的縮寫,其功能是動態獲取或釋放IP地址。
使用dhclient命令前,需要將網卡模式設置成DHCP自動獲取,否則靜態模式的網卡不會主動向服務器獲取如IP地址等網卡信息。
1、redhat 默認沒有安裝這個命令,需要手動安裝, yum install dhcp-client
2、命令在dhcp包中子模塊,屬于動態網絡地址管理單元。
語法格式:dhclient 參數 網卡名
常用參數:
-4 基于IPv4網絡協議? ? ? -r 釋放IP地址
-6 基于IPv6網絡協議? ? ?-s 在獲取IP地址前指定DHCP服務器
-d 以前臺方式運行? ? ? ? -v 顯示執行過程詳細信息
-F 設置向DHCP服務器發送的FQDN? ? ? ?-V 設置要發送給DHCP服務器的廠商類標識符
-H 設置向DHCP服務器發送的主機名? ? ? -w 即使沒有找到廣播接口,也繼續運行
-n 不配置任何接口? ? ? ? ? ? ? ? ?-x 停止DHCP客戶端,而不釋放當前租約
-p 設置DHCP客戶端監聽的端口號? ? ? -timeout 設置最大響應超時時間
-q 靜默執行模式? ? ? -version 顯示版本信息
參考用例:
dhclient ens160? ? ? #通過指定網卡發起DHCP請求,獲取網卡參數
dhclient -r? ? ? #釋放系統中已獲取的網卡參數
dhclient -s 192.168.10.10? ? ? #向指定的服務器請求獲取網卡參數
dhclient -x? ? ? ? ? ? #手動停止執行dhclient服務進程
ifconfig命令:
ifconfig命令來自英文詞組network interfaces configuring的縮寫,其功能是顯示或設置網絡設備參數信息。
在Windows系統中,與之類似的命令為ipconfig,同樣的功能可以使用ifconfig去完成。通常不建議使用
ifconfig命令配置網絡設備的參數信息,因為一旦服務器重啟,配置過的參數會自動失效,因此還是編寫到配置文件中更穩妥。
語法格式:ifconfig 參數 網卡名 動作
常用參數:
-a 顯示所有網卡狀態? ? ?-v 顯示執行過程詳細信息
-s 顯示簡短狀態列表
常用動作:
add 設置網絡設備的IP地址? ? ? ?down 關閉指定的網絡設備
del 刪除網絡設備的IP地址? ? ? ? up 啟動指定的網絡設備
參考示例:
ifconfig #顯示系統的網絡設備信息
ifconfig ens160 down
ifconfig ens160 up? ? 對指定的網卡設備依次進行關閉和啟動操作
ifconfig ens160 192.168.10.20 netmask 255.255.255.0? ? 對指定的網卡設備執行IP地址修改操作
ifconfig ens160 hw ether 00:aa:bb:cc:dd:ee? ? 對指定的網卡設備執行MAC地址修改操作
ifconfig ens160 -arp
ifconfig ens160 arp? ? #對指定的網卡設備依次進行ARP協議關閉和開啟操作
ifconfig ens160 192.168.42.129/24 up
ens160 就是實際網卡名稱
192.168.42.129 你要配置的ip地址
24 配置給ip地址的子網掩碼24就是24個1,11111111 11111111 11111111 0000000
up 配置ip和mask后啟動改網卡
ifconfig ens160 down 網卡停用
ifconfig ens160 192.168.42.129/24? 網卡重新配置
ifconfig ens160 up 網卡啟動
日
ping命令:
ping命令的功能是測試主機間網絡的連通性,它發送出基于ICMP傳輸協議的數據包,要求對方主機予以回復。若對方主機的網絡功能沒有問題且防火墻放行流量,則就會回復該信息,我們也就可得知對方主機系統在線并運行正常了。
不過值得注意的是,ping命令在Linux下與在Windows下有一定差異,Windows系統下的ping命令會發送出去4個請求后自動結束該命令;而Linux系統則不會自動終止,需要用戶手動按下Ctrl+C組合鍵才能結束,或是發起命令時加入-c參數限定發送數據包的個數。
語法格式:ping 參數 域名或IP地址
常用參數:
-4 基于IPv4網絡協議? ? -I 使用指定的網絡接口送出數據包
-6 基于IPv6網絡協議? ? -n 僅輸出數值
-a 發送數據時發出鳴響聲? ? -p 設置填滿數據包的范本樣式
-b 允許ping一個廣播地址? ? -q 靜默執行模式
-c 設置發送數據包的次數? ? -R 記錄路由過程信息
參考示例:
ping www.baidu.com #測試與指定域名之間的網絡連通性(需手動按下Ctrl+C組合鍵結束命令)
ping -c 4 172.16.80.64 #測試與指定主機之間的網絡連通性,發送請求包限定為4個
ping -c 4 www.baidu.com #測試與指定域名之間的網絡連通性,發送請求包限定為4個
ping -c 3 -i 0.2 -W 3 192.168.10.10?
#測試與指定主機之間的網絡連通性,發送3個請求包,每次間隔0.2s,最長等待時間為3s
互聯網出故障的解決流程:
1、ping 自己的網卡 ,確認網卡工作正常。 ping 192.168.42.128 《=ifconfig ==?ens160的ip
2、ping 自己的網關,確認下一跳工作正常. ping 192.168.42.2?《=nmcli d show ens160 == gateway
3、ping dns服務器,確認互聯網能工作組成。
ping 114.114.114.114 國內域名解析服務器
ping?8.8.8.8 國外域名解析服務器
ping 61.134.1.4 陜西省的域名解析服務器
4、ping 公共網站,比如 www.xxx.com 。 ping www.sina.com 測試與外網服務器的聯通
添加網關(路由)指令:route add default gw 192.168.42.1? 增加網關
?route del deault gw?192.168.42.1? ?刪除網關
iptables命令:
iptables是一個防火墻策略管理工具的命令,同時也是一個基于內核級別的防火墻服務,用戶可以基于它來對數據包進行過濾操作,拒絕掉危險的外部請求流量,保護內網的安全。
iptables命令默認僅支持ipv4協議,如需ipv6協議支持需使用ip6tables命令。
語法格式:iptables [參數] [對象]?
常用參數:
-A 向規則鏈中追加條目? ? -c 初始化包計數器和字節計數器
-D 從規則鏈中刪除條目? ? ?-E 重命名指定的用戶自定鏈
-F 清除規則鏈中的現有條目? ? ? ?-t 設置要管理的表
-h 顯示幫助信息? ? ? -i 設置數據包進入本機的網絡接口
-j 設置要跳轉的目標? ? ?-I 向規則鏈中插入條目
-L 顯示規則鏈中的已有條目? ? ? -N 創建新的用戶自定義規則鏈
-o 設置數據包離開本機所使用的網絡接口? ? -p 設置要匹配數據包的協議類型
-P 設置規則鏈中的默認目標策略? ? -R 替換規則鏈中的指定條目
-s 設置要匹配數據包的源IP地址? ?-v 顯示執行過程詳細信息
-X 刪除指定的用戶自定鏈? ? ?-Z 清空規則鏈中的包計數器和字節計數器
參考示例:
iptables -L? ? 顯示當前防火墻策略中全部的過濾表信息:
iptables -L -t nat? ? ?顯示當前防火墻策略中指定的NAT表信息
iptables -I INPUT -s 192.168.10.10 -j DROP? 禁止指定的遠程主機訪問本地全部的服務,通通禁止
iptables -I INPUT -s 192.168.10.10 -p tcp --dport 22 -j DROP? ? 禁止指定的遠程主機訪問本地的某個端口,其余允許
iptables -F? ?清理后全部放開同行