一个计算机技术爱好者与学习者

0%

好好学Linux:route命令

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
2
route add -net 目标网络地址 netmask 子网掩码 gw 网关地址 dev 网络设备
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0

删除一条静态路由,使主机A不连通 192.168.1.0/24

1
2
route del -net 目标网络地址 netmask 子网掩码 gw 网关地址 dev 网络设备
route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0

3.3. 添加/删除默认路由

添加默认路由

1
2
3
route add default gw 网关地址
route add default gw 192.168.0.1
route add default gw 192.168.0.1 dev eth0

删除默认路由,常用来断网(出流量)

1
2
route del default gw 网关地址
route del default gw 192.168.0.1

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
2
netstat -nr
sudo route get default

5.2. 添加一条静态路由

1
2
sudo route add -net 目标网络地址/子网掩码 网关地址
sudo route add -net 192.168.1.0/24 192.168.0.1

5.3. 删除一条静态路由

1
2
sudo route delete -net 目标网络地址/子网掩码 网关地址
sudo route delete -net 192.168.1.0/24 192.168.0.1

5.4. 添加默认路由

1
2
sudo route add default 网关地址
sudo route add default 192.168.0.1

5.5. 修改默认路由

1
2
sudo route change default 网关地址
sudo route change default 192.168.0.1

5.6. 添加默认路由

1
sudo route delete default
  • 本文作者: 好好学习的郝
  • 原文链接: https://www.voidking.com/dev-linux-route/
  • 版权声明: 本文采用 BY-NC-SA 许可协议,转载请注明出处!源站会即时更新知识点并修正错误,欢迎访问~
  • 微信公众号同步更新,欢迎关注~