Linux 伴隨互聯網誕生發展,擁有極其強大且豐富的網絡工具鏈。本文系統梳理六大核心網絡命令——ifconfig、ip、ping、netstat、telnet、ftp——的語法、關鍵參數與典型應用場景,助你高效排查網絡故障、配置介面、測試連通性與傳輸文件。
作用:查看/修改網絡接口 IP、掩碼、廣播地址、啟停狀態。需 root 權限。
常用語法:
ifconfig [interface] [options] [address]
關鍵參數:
up/down:啟用/禁用接口。netmask:設置子網掩碼。broadcast:設置廣播地址。-a:顯示所有接口(含未啟用)。實例:
# 臨時配置 eth0(重啟失效)
ifconfig eth0 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255 up
# 查看所有接口詳情
ifconfig -a
注意:ifconfig屬於net-tools包,許多現代發行版已默認不安裝,推薦使用ip命令替代。
作用:iproute2 套件核心工具,統一管理地址、路由、鏈路、隧道等,功能涵蓋 ifconfig、route、arp 等傳統命令。
語法結構:
ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]
核心對象:link(網卡)、addr(IP 地址)、route(路由)、neigh(ARP/NDP 鄰居)、rule(策略路由)。
常用選項:-s(統計詳情)、-4/-6(IPv4/IPv6)、-j(JSON 輸出)、-br(簡潔表格)。
實戰示例:
# 添加/刪除 IP
ip addr add 192.168.1.20/24 dev eth0
ip addr del 192.168.1.20/24 dev eth0
# 啟停網卡
ip link set eth0 up
ip link set eth0 down
# 查看路由表
ip route show
# 策略路由:拒絕特定網段
ip rule add from 192.168.2.0/24 reject priority 32777
作用:發送 ICMP Echo Request 測試主機可達性、延遲、丟包率。所有用戶可用。
關鍵參數:
-c COUNT:發送指定次數後停止(腳本必備)。-i INTERVAL:發送間隔秒數(默認 1s)。-s SIZE:數據包大小(含 8 字節 ICMP 頭,默認 56 字節)。-W TIMEOUT:等待回應超時秒數。-I INTERFACE:指定發包接口(多網卡場景)。-n:直接顯示 IP,不做 DNS 反解(加快輸出)。進階技巧:
ping -c 3 -i 0.2 -s 1472 192.168.1.1:快速發送 3 個大包測試 MTU。ping 不通但網頁可訪問,通常是目標防火牆屏蔽 ICMP(echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 可在本機禁用回應)。作用:顯示連接表、路由表、接口統計、監聽端口等。netstat 屬 net-tools,ss(iproute2)性能更強、輸出更豐富,建議遷移至 ss。
高頻參數對照:
| 功能 | netstat | ss (推薦) |
|---|---|---|
| 所有連接(含監聽) | -a / -l | |
| 顯示 PID/進程名 | -p (需 root) | |
| 僅顯示 TCP/UDP | -t / -u | |
| 數字格式顯示 IP/端口 | -n | |
| 持續監控 | -c |
經典排查命令:
# 查看所有監聽端口及進程
ss -ltnp # 或 netstat -ltnp
# 統計連接狀態分佈
ss -tan state established | wc -l
ss -tan state time-wait | wc -l
# 查看特定端口佔用
ss -ltnp 'sport = :80'
雙重身份:既是遠程登錄協議(TCP 23,明文傳輸,**生產環境禁用**),也是**測試 TCP 端口連通性的瑞士軍刀**。
端口測試語法:
telnet
Connected to ...,說明端口開放、無防火牆阻擋。示例:telnet 192.168.1.10 3306 測試 MySQL 端口。
遠程管理請改用 SSH(加密、認證、隧道、代理功能完備)。
ftp:標準 FTP 客戶端(TCP 21/20,明文,**不推薦**用於公網)。
常用內部命令:
ls/cd/lcd:遠程/本地目錄操作。get/mget:下載單個/多個文件。put/mput:上傳單個/多個文件。binary/ascii:二進制/文本傳輸模式(圖片、壓縮包必須用 binary)。prompt off:關閉交互確認,配合 mget/mput 批量操作。現代替代方案(強烈推薦):
sftp user@host:基於 SSH 加密傳輸,交互式,支持斷點續傳(reget/reput)。scp file user@host:/path:非交互單次複製,腳本友好。rsync -avzP src/ user@host:/dest/:增量同步、壓縮、進度條、斷點續傳,大數據傳輸首選。| 任務 | 首選命令 | 備選/補充 |
|---|---|---|
| 查看/配置 IP、鏈路狀態 | ip addr, ip link | ifconfig (舊系統) |
| 測試主機可達、延遲 | ping -c 3 | fping (批量) |
| 檢查端口監聽/連接 | ss -ltnp | netstat -ltnp |
| 測試 TCP 端口連通性 | telnet host port / nc -zv host port | nmap -p port host |
| 安全文件傳輸 | rsync / scp / sftp | ftp (僅內網臨時) |
熟練掌握這套工具鏈,配合 tcpdump/wireshark 抓包分析,將讓你在 Linux 網絡故障排查與架構優化中遊刃有餘。