Linux查看路由與IP地址占用情況的操作指南
在 Linux 系統(tǒng)中,查看路由表和 IP 地址占用情況是網(wǎng)絡(luò)管理的基礎(chǔ)任務(wù)。以下是專業(yè)的分析和清理方法:
路由表分析
1. 查看完整路由表
ip route show # 或 route -n
2. 分析路由表結(jié)構(gòu)
# 顯示路由表詳細(xì)信息 ip -d route show # 按協(xié)議過(guò)濾路由 ip route show proto kernel # 內(nèi)核路由 ip route show proto static # 靜態(tài)路由
3. 路由表關(guān)鍵字段解讀
| 字段 | 含義 | 示例 |
|---|---|---|
default via | 默認(rèn)網(wǎng)關(guān) | default via 192.168.1.1 dev eth0 |
src | 源地址 | src 192.168.1.100 |
metric | 路由優(yōu)先級(jí) | metric 100 |
scope | 作用域 | scope link (本地鏈路) |
proto | 路由來(lái)源 | kernel (內(nèi)核), static (靜態(tài)) |
IP 地址占用分析
1. 查看所有接口 IP
ip addr show # 或 ifconfig
2. 分析 IP 使用情況
# 查看 ARP 表(IP-MAC 映射) ip neigh show arp -n # 查看網(wǎng)絡(luò)連接 ss -tunap netstat -tunap
3. 識(shí)別占用 IP 的設(shè)備
# 掃描本地網(wǎng)絡(luò) nmap -sn 192.168.1.0/24 # 使用 arp-scan sudo arp-scan -l --interface=eth0
路由與 IP 清理方法
1. 清理無(wú)效路由
# 刪除特定路由 sudo ip route del 10.0.0.0/24 via 192.168.1.1 # 刪除所有非永久路由 sudo ip route flush cache
2. 清理 ARP 緩存
# 清除整個(gè) ARP 表 sudo ip neigh flush all # 清除特定 IP 的 ARP 記錄 sudo ip neigh del 192.168.1.50 dev eth0
3. 釋放 DHCP 租約
# 釋放 IP sudo dhclient -r eth0 # 重新獲取 IP sudo dhclient eth0
4. 清理網(wǎng)絡(luò)命名空間
# 列出所有網(wǎng)絡(luò)命名空間 ip netns list # 清理無(wú)效命名空間 sudo ip netns delete old_namespace
高級(jí)分析工具
1. 路由跟蹤
# 基本路由跟蹤 traceroute google.com # 高級(jí)路由診斷 mtr google.com
2. 網(wǎng)絡(luò)連接分析
# 查看所有 TCP 連接 ss -t -a # 查看 UDP 連接 ss -u -a # 按狀態(tài)過(guò)濾 ss -t state established
3. 路由表監(jiān)控
# 實(shí)時(shí)監(jiān)控路由變化 watch -n 1 "ip route show"
路由問(wèn)題診斷流程
graph TD
A[無(wú)法訪問(wèn)目標(biāo)] --> B{檢查默認(rèn)網(wǎng)關(guān)}
B -->|正常| C[檢查目標(biāo)路由]
B -->|異常| D[修復(fù)網(wǎng)關(guān)配置]
C -->|存在| E[檢查ARP緩存]
C -->|不存在| F[添加靜態(tài)路由]
E -->|完整| G[檢查防火墻]
E -->|缺失| H[刷新ARP緩存]
G -->|允許| I[檢查目標(biāo)服務(wù)]
G -->|拒絕| J[調(diào)整防火墻]
持久化配置管理
1. 網(wǎng)絡(luò)配置文件位置
| 系統(tǒng) | 配置文件 |
|---|---|
| Debian/Ubuntu | /etc/network/interfaces |
| RHEL/CentOS | /etc/sysconfig/network-scripts/ifcfg-* |
| 通用 | /etc/netplan/*.yaml |
2. 靜態(tài)路由配置示例
# Ubuntu (netplan)
network:
version: 2
ethernets:
eth0:
routes:
- to: 10.0.0.0/24
via: 192.168.1.1
metric: 100
# CentOS
echo "10.0.0.0/24 via 192.168.1.1 dev eth0" | sudo tee -a /etc/sysconfig/network-scripts/route-eth0
3. 防止路由泄漏
# 關(guān)閉源路由 sudo sysctl -w net.ipv4.conf.all.accept_source_route=0 sudo sysctl -w net.ipv4.conf.default.accept_source_route=0 # 永久生效 echo "net.ipv4.conf.all.accept_source_route=0" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.conf.default.accept_source_route=0" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
安全最佳實(shí)踐
1. 路由安全加固
# 禁用ICMP重定向 sudo sysctl -w net.ipv4.conf.all.accept_redirects=0 sudo sysctl -w net.ipv4.conf.default.accept_redirects=0 # 關(guān)閉IP轉(zhuǎn)發(fā)(非路由器) sudo sysctl -w net.ipv4.ip_forward=0
2. ARP 保護(hù)
# 啟用ARP驗(yàn)證 sudo sysctl -w net.ipv4.conf.all.arp_ignore=1 sudo sysctl -w net.ipv4.conf.all.arp_announce=2
3. 定期清理腳本
#!/bin/bash
# 網(wǎng)絡(luò)清理腳本
# 刷新ARP緩存
ip neigh flush all
# 清除路由緩存
ip route flush cache
# 釋放所有接口IP
for intf in $(ip link show | grep '^[0-9]' | awk -F: '{print $2}'); do
dhclient -r $intf
dhclient $intf
done
# 重啟網(wǎng)絡(luò)服務(wù)
systemctl restart networking
監(jiān)控與日志分析
1. 路由變更日志
# 記錄路由變更 sudo apt install auditd sudo auditctl -w /etc/network/interfaces -p wa -k network_config
2. 實(shí)時(shí)網(wǎng)絡(luò)監(jiān)控
# 使用 iftop 監(jiān)控流量 sudo iftop -i eth0 # 使用 nload 監(jiān)控帶寬 nload eth0
3. 日志分析命令
# 查看網(wǎng)絡(luò)相關(guān)日志 journalctl -u NetworkManager journalctl -u systemd-networkd # 分析連接日志 grep "kernel:" /var/log/syslog | grep "NET"
常見(jiàn)問(wèn)題解決
問(wèn)題:路由表混亂
解決方案:
# 重置路由表 sudo ip route flush all sudo systemctl restart networking # 重新添加默認(rèn)路由 sudo ip route add default via 192.168.1.1
問(wèn)題:IP 地址沖突
解決方案:
# 檢測(cè)沖突 arping -I eth0 -c 3 192.168.1.100 # 釋放并更新IP sudo dhclient -r eth0 sudo dhclient eth0
問(wèn)題:路由不可達(dá)
診斷步驟:
# 檢查網(wǎng)關(guān)可達(dá)性 ping 192.168.1.1 # 檢查目標(biāo)路由 ip route get 8.8.8.8 # 檢查MTU ip link show eth0 | grep mtu
總結(jié)
路由與 IP 管理命令速查
| 任務(wù) | 命令 |
|---|---|
| 查看路由 | ip route show, route -n |
| 添加路由 | sudo ip route add 10.0.0.0/24 via 192.168.1.1 |
| 刪除路由 | sudo ip route del 10.0.0.0/24 |
| 查看IP | ip addr show, ifconfig |
| 刷新ARP | sudo ip neigh flush all |
| 路由跟蹤 | traceroute, mtr |
最佳實(shí)踐
- 定期清理:每月執(zhí)行路由和 ARP 緩存清理
- 監(jiān)控變更:使用審計(jì)工具跟蹤網(wǎng)絡(luò)配置變化
- 文檔記錄:維護(hù)網(wǎng)絡(luò)拓?fù)浜?IP 分配文檔
- 自動(dòng)化:創(chuàng)建腳本定期檢查網(wǎng)絡(luò)健康狀態(tài)
- 安全加固:禁用不必要的路由功能和服務(wù)
通過(guò)以上方法,您可以有效管理和維護(hù) Linux 系統(tǒng)的路由和 IP 地址資源,確保網(wǎng)絡(luò)的高效穩(wěn)定運(yùn)行。
以上就是Linux查看路由與IP地址占用情況的寫操作指南的詳細(xì)內(nèi)容,更多關(guān)于Linux路由與IP地址占用情況的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
sersync2 完全安裝配置說(shuō)明(三) 插件基本配置和使用
sersync2 完全安裝配置說(shuō)明(三) 插件基本配置和使用,需要的朋友可以參考下。2011-11-11
Linux+php+apache+oracle環(huán)境搭建之CentOS下源碼編譯安裝PHP
環(huán)境搭建過(guò)程中,編譯安裝PHP最艱辛。需要安裝的依賴組件太多。現(xiàn)在整理記錄一下。也希望對(duì)讀者能有所幫助2014-08-08
Linux中df -h與lsblk顯示不一致問(wèn)題的解決方法
文章記錄了在Linux系統(tǒng)中遇到lsblk和df-h顯示磁盤容量不一致的問(wèn)題,并通過(guò)排查發(fā)現(xiàn)是XFS文件系統(tǒng)未隨著磁盤擴(kuò)容而自動(dòng)擴(kuò)展,文章最終通過(guò)使用xfs_growfs命令解決了問(wèn)題,并詳細(xì)描述了排查過(guò)程、問(wèn)題原因及解決方法,需要的朋友可以參考下2026-04-04

