开发者

Linux查看路由与IP地址占用情况的操作指南

开发者 https://www.devze.com 2025-10-29 09:58 出处:网络 作者: 会飞的土拨鼠呀
目录路由表分析1. 查看完整路由表2. 分析路由表结构3. 路由表关键字段解读IP 地址占用分析1. 查看所有接口 IP2. 分析 IP 使用情况3. 识别占用 IP 的设备路由与 IP 清理方法1. 清理无效路由2. 清理 ARP 缓存3. 释放 D
目录
  • 路由表分析
    • 1. 查看完整路由表
    • 2. 分析路由表结构
    • 3. 路由表关键字段解读
  • IP 地址占用分析
    • 1. 查看所有接口 IP
    • 2. 分析 IP 使用情况
    • 3. 识别占用 IP 的设备
  • 路由与 IP 清理方法
    • 1. 清理无效路由
    • 2. 清理 ARP 缓存
    • 3. 释放 DHCP 租约
    • 4. 清理网络命名空间
  • 高级分析工具
    • 1. 路由跟踪
    • 2. 网络连接分析
    • 3. 路由表监控
  • 路由问题诊断流程
    • 持久化配置管理
      • 1. 网络配置文件位置
      • 2. 静态路由配置示例
      • 3. 防止路由泄漏
    • 安全最佳实践
      • 1. 路由安全加固
      • 2. ARP 保护
      • 3. 定期清理脚本
    • 监控与日志分析
      • 1. 路由变更日志
      • 2. 实时网络监控
      • 3. 日志分析命令
    • 常见问题解决
      • 问题:路由表混乱
      • 问题:IP 地址冲突
      • 问题:路由不可达
    • 总结
      • 路由与 IP 管理命令速查
      • 最佳实践

    在 linux 系统中,查看路由表和 IP 地址占用情况是网络管理的基础任务。以下是专业的分析和清理方法:

    路由表分析

    1. 查看完整路由表

    ip route show
    # 或
    route -n
    

    2. 分析路由表结构

    # 显示路由表详细信息
    ip -d route show
    
    # 按协议过滤路由
    ip route show proto kernel  # 内核路由
    ip route show proto static  # 静态路由
    

    3. 路由表关键字段解读

    字段含义示例
    default via默认网关default via 192.168.1.1 dev eth0
    src源地址src 192.168.1.100
    metric路由优先级metric 100
    scope作用域scope link (本地链路)
    proto路由来源kernel (内核), static (静态)

    IP 地址占用分析

    1. 查看所有接口 IP

    ip addr show
    # 或
    ifconfig
    

    2. 分析 IP 使用情况

    # 查看 ARP 表(IP-MAC 映射)
    ip neigh show
    arp -n
    
    # 查看网络连接
    ss -tunap
    netstat -tunap
    

    3. 识别占用 IP 的设备

    # 扫描本地网络
    nmap -sn 192.python168.1.0/24
    
    # 使用 arp-scan
    sudo arp-scan -l --interface=eth0
    

    路由与 IP 清理方法

    1. 清理无效路由

    # 删除特定路由
    sudo ip route del 10.0.0.0/24 via 192.168.1.1
    
    # 删除所有非永久路由
    sudo ip route flush cache
    

    2. 清理 ARP 缓存

    # 清除整个 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. 清理网络命名空间

    # 列出所有网络命名空间
    编程ip netns list
    
    # 清理无效命名空间
    sudo ip netns delete old_namespace
    

    高级分析工具

    1. 路由跟踪

    # 基本路由跟踪
    traceroute google.com
    
    # 高级路由诊断
    mtr google.com
    

    2. 网络连接分析

    # 查看所有 TCP 连接
    ss -t -a
    
    # 查看 UDP 连接
    ss -u -a
    
    # 按状态过滤
    ss -t state established
    

    3. 路由表监控

    # 实时监控路由变化
    watch -n 1 "ip route show"
    

    路由问题诊断流程

    graph TD
        A[无法访问目标] --> B{检查默认网关}
        B -->|正常| C[检查目标路由]
        B -->|异常| D[修复网关配置]
        C -->|存在| E[检查ARP缓存]
        C -->|不存在| F[添加静态路由]
        E -->|完整| G[检查防火墙]
        E -->|缺失| H[刷新ARP缓存]
        G -->|允许| I[检查目标服务]
        G -->|拒绝| J[调整防火墙]
    

    持久化配置管理

    1. 网络配置文件位置

    系统配置文件
    Debian/Ubuntu/etc/network/interfaces
    RHEL/Centos/etc/sysconfig/nepythontwork-scripts/ifcfg-*
    通用/etc/netplan/*.yaml

    2. 静态路由配置示例

    # 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. 防止路由泄漏

    # 关闭源路由
    sudo sysctl -w net.ipv4.conf.all.accept_source_route=0
    sudo sysctl -w net.ipv4.conf.default.accept_source_route=0
    
    # 永久生效
    echo "nethttp://www.devze.com.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
    

    安全最佳实践

    1. 路由安全加固

    # 禁用ICMP重定向
    sudo sysctl -w net.ipv4.conf.all.accept_redirects=0
    sudo sysctl -w net.ipv4.conf.default.accept_redirects=0
    
    # 关闭IP转发(非路由器)
    sudo sysctl -w net.ipv4.ip_forward=0
    

    2. ARP 保护

    # 启用ARP验证
    sudo sysctl -w net.ipv4.conf.all.arp_ignore=1
    sudo sysctl -w net.ipv4.conf.all.arp_announce=2
    

    3. 定期清理脚本

    #!/bin/bash
    # 网络清理脚本
    
    # 刷新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
    
    # 重启网络服务
    systemctl restart networking
    

    监控与日志分析

    1. 路由变更日志

    # 记录路由变更
    sudo apt install auditd
    sudo auditctl -w /etc/network/interfaces -p wa -k network_config
    

    2. 实时网络监控

    # 使用 iftop 监控流量
    sudo iftop -i eth0
    
    # 使用 nload 监控带宽
    nload eth0
    

    3. 日志分析命令

    # 查看网络相关日志
    journalctl -u NetworkManager
    journalctl -u systemd-networkd
    
    # 分析连接日志
    grep "kernel:" /var/log/syslog | grep "NET"
    

    常见问题解决

    问题:路由表混乱

    解决方案

    # 重置路由表
    sudo ip route flush all
    sudo systemctl restart networking
    
    # 重新添加默认路由
    sudo ip route add default via 192.168.1.1
    

    问题:IP 地址冲突

    解决方案

    # 检测冲突
    arping -I eth0 -c 3 192.168.1.100
    
    # 释放并更新IP
    sudo dhclient -r eth0
    sudo dhclient eth0
    

    问题:路由不可达

    诊断步骤

    # 检查网关可达性
    ping 192.168.1.1
    
    # 检查目标路由
    ip route get 8.8.8.8
    
    # 检查MTU
    ip link show eth0 | grep mtu
    

    总结

    路由与 IP 管理命令速查

    任务命令
    查看路由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
    查看IPip addr show, ifconfig
    刷新ARPsudo ip neigh flush all
    路由跟踪traceroute, mtr

    最佳实践

    1. 定期清理:每月执行路由和 ARP 缓存清理
    2. 监控变更:使用审计工具跟踪网络配置变化
    3. 文档记录:维护网络拓扑和 IP 分配文档
    4. 自动化:创建脚本定期检查网络健康状态
    5. 安全加固:禁用不必要的路由功能和服务

    通过以上方法,您可以有效管理和维护 Linux 系统的路由和 IP 地址资源,确保网络的高效稳定运行。

    以上就是Linux查看路由与IP地址占用情况的写操作指南的详细内容,更多关于Linux路由与IP地址占用情编程客栈况的资料请关注编程客栈(www.devze.com)其它相关文章!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号