1. route命令简介
本文内容主要来自ChatGPT。
route命令用于在Linux操作系统中显示和操作IP路由表。路由表是一个存储在操作系统内核中的表格,用于确定数据包应该如何从一个网络接口发送到另一个网络接口。route命令可以帮助我们查看、添加、删除和修改路由表中的条目。这对于网络配置和故障排除非常有用。
参考文档:
2. route命令语法
route 命令的基本语法如下:
1 | route [选项] [参数] |
以下是一些常用的选项:
- -n: 以数字形式显示IP地址和路由信息。
- -e: 以类似netstat的格式显示路由信息。
- -A <地址类型>: 指定地址类型,如 inet(IPv4)或 inet6(IPv6)。
- -v: 显示详细信息。
以下是一些常用的参数:
- add: 添加一条新的路由。
- del: 删除一条现有的路由。
- flush: 清空所有路由。
3. route常用命令
3.1. 查看当前路由表
1 | route -n |
3.2. 添加/删除静态路由
已知主机A的IP为172.16.0.2和192.168.0.2,默认网关A为172.16.0.1。
主机A同时和网关B 192.168.0.1连通,网关B连通 192.168.0.0/24 和 192.168.1.0/24。
添加一条静态路由,使主机A连通 192.168.1.0/24
1 | route add -net 目标网络地址 netmask 子网掩码 gw 网关地址 dev 网络设备 |
删除一条静态路由,使主机A不连通 192.168.1.0/24
1 | route del -net 目标网络地址 netmask 子网掩码 gw 网关地址 dev 网络设备 |
3.3. 添加/删除默认路由
添加默认路由
1 | route add default gw 网关地址 |
删除默认路由,常用来断网(出流量)
1 | route del default gw 网关地址 |
4. route 和 iptables
route和iptables是Linux系统中两个不同的网络配置工具,它们有以下区别:
- route主要用于处理IP路由表,即决定数据包应该如何从一个网络接口发送到另一个网络接口。路由表用于控制不同网络之间的数据包传输。
- iptables是Linux系统中的防火墙工具,用于控制和管理数据包在网络层的访问控制。iptables可以根据源IP、目的IP、协议等信息对数据包进行过滤、转发或修改。
尽管route和iptables的作用不同,但它们在网络配置和故障排除方面是相辅相成的。以下是一些route和iptables在实际应用中的例子:
- 负载均衡:您可以使用iptables将特定的数据流量转发到不同的服务器以实现负载均衡,同时使用route来配置服务器之间的网络路径。
- 网络隔离:在需要对不同子网进行访问控制时,可以使用route为不同的子网配置不同的路由,然后使用iptables来限制或允许特定子网之间的通信。
- VPN 配置:在配置VPN时,route用于设置VPN服务器与客户端之间的路由,而iptables用于配置防火墙规则,以便正确处理加密和解密的数据包。
- 网络安全:route和iptables可以共同实现网络安全策略。例如,route用于配置数据包发送的路径,而iptables则用于检查数据包的内容,阻止恶意流量进入网络。
总之,route和iptables虽然分别处理路由表和防火墙规则,但它们在实际应用中需要相互配合,共同实现更加高效、安全和稳定的网络环境。
5. MacOS中的route命令
MacOS中的route命令与Linux中的route命令具有相似的功能,但它们之间存在一些语法和行为差异。
以下是在MacOS上配置路由规则的一些常用操作。
5.1. 显示当前路由表
1 | netstat -nr |
5.2. 添加一条静态路由
1 | sudo route add -net 目标网络地址/子网掩码 网关地址 |
5.3. 删除一条静态路由
1 | sudo route delete -net 目标网络地址/子网掩码 网关地址 |
5.4. 添加默认路由
1 | sudo route add default 网关地址 |
5.5. 修改默认路由
1 | sudo route change default 网关地址 |
5.6. 添加默认路由
1 | sudo route delete default |