在Linux系统中配置静态路由是一个相对简单的任务,可以通过几种不同的方式完成这个过程。以下是几个常见方法,包括在命令行中临时配置(重启后失效),和在配置文件中永久更改(永久生效直到手动删除或再次更改)。

临时添加

你可以使用 `ip` 命令来临时添加一条路由。这些路由是动态创建的,并在服务器重新启动或接口停用时消失。

linux配置静态路由  第1张

向指定网关添加到特定目标网络的新静态路由:

sudo ip route add 目标子网/掩码 via 网关地址 dev 接口

linux配置静态路由  第2张

例如:

linux配置静态路由  第3张

sudo ip route add 192.168.200.0/24 via 192.168.1.1 dev eth0

这里的例子将通过网关`192.168.1.1`将所有去往`192.168.200.0`子网下的流量发送到`eth0`设备上。

如果你不想要通过任何网关路由所有未知目的地到一个特定的目的地:

sudo ip route add 黑色名单子网/掩码 dev 设备

linux配置静态路由  第4张

例:

sudo ip route add 192.168.150.0/24 dev ens33

linux配置静态路由  第5张

这里,该网络中所有未指定其他规则的数据将经由设备`ens33`处理,假设它已经在您的系统中正确地定义了路由。

删除已添加的路由:

linux配置静态路由  第6张

如果你想撤销之前做的改动:

sudo ip route del 目的地子网 or 默认网关

linux配置静态路由  第7张

永久性修改

如果你希望通过在配置文件的改变使路由变更永久有效,则可以按照你的 Linux 发行版本采用不同方式:

Ubuntu/Debian

linux配置静态路由  第8张

对于基于Debian发行版的操作系统(如Ubuntu、Pop! OS等),可以通过编辑 `/etc/network/interfaces` 文件添加路由。你也可以选择编辑相应的NetworkManager连接文件,但这通常涉及更高级的管理步骤。

示例配置 (添加到 `/etc/network/interfaces` ):

...

postup ip route add 192.168.3.0/24 via 192.168.2.1 dev enp4so

predown ip route del 192.168.3.0/24

上述配置将在网络接口启用之后立即添加静态路由;网络接口停止运行时,此规则也将被立即撤销。

linux配置静态路由  第9张

RedHat/CentOS

CentOS、Fedora以及其他的Red Hat派发版本可能依赖NetworkManager,这是一种动态网络配置解决方案。尽管如此, NetworkManager也支持静态的路由器配置。

您可以安装NetworkManagerconfigroutingrules工具(如果未安装的话)并在您的连接设置文件(位于 `/etc/sysconfig/networkscripts/`) 添加类似以下的内容:

...

IPV4ADDR=your_ip_address

...

linux配置静态路由  第10张

IPV4_GATEWAY=your_network_gateway

IPV4_NETMASK=netmask_for_your_subnet

...

为了实现更复杂的需求,例如特定子网上的流量控制,你也可以创建路由规则(规则文件位于 `/etc/sysconfig/networkscripts/` 的文件夹内),或者编辑 NetworkManager的用户界面进行配置。

linux配置静态路由  第11张

全局默认网关配置(几乎所有Linux分发版本)

另一种方法涉及更新网络配置服务以确保每个新的网络连接都将默认指向某个默认网关:

编辑 `/etc/systemd/network/defaultsgateway` 或者根据你的具体网络配置需求来调整相应的网络文件来设定默认路由。

注意,具体的路径可能会依据你的Linux发布版本有所变动,且可能要求你使用特定于你的环境的方法来确保永久化的路由条目在系统启动及连接变更的情况下依旧生效。

在完成所有必要的修改之后,请记得需要适当调整和保存你的更改,并在大多数情况下,你需要重启相关的服务或甚至整个系统来让新配置生效。如果你对这些配置文件有任何不明确的改动,查看官方文档以获得详细指引可能是有用的。在做出重要改动之前测试是非常重要的,尤其是在一个非生产级别的系统上验证其有效性。