You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求助:如何通过systemd-networkd配置静态路由?

用systemd-networkd配置静态路由连接10.17.12.0子网

没问题,用systemd-networkd配置静态路由其实很 straightforward,我帮你一步步捋清楚:

首先先确认systemd-networkd服务状态,确保它在运行:

systemctl status systemd-networkd

如果没运行,先启动并设置开机自启:

sudo systemctl enable --now systemd-networkd

编写.network配置文件

systemd-networkd的网络配置文件都放在/etc/systemd/network/目录下,我们需要为你的网卡创建或修改一个.network文件(文件名前缀数字越小,优先级越高)。

假设你的网卡名称是eth0(可以用ip link show查看实际名称),创建/etc/systemd/network/10-static-route.network文件:

[Match]
Name=eth0  # 替换成你的实际网卡名

[Network]
# 如果你的网卡已经有静态IP配置,这部分可以保留或根据实际情况调整
Address=192.168.1.100/24  # 替换成本机静态IP和子网掩码
Gateway=192.168.1.1  # 替换成你的默认网关(如果需要)

[Route]
# 目标子网,这里假设是/24掩码,根据实际情况调整
Destination=10.17.12.0/24
# 下一跳网关:必须是能直接访问到的、可以路由到目标子网的IP地址
Gateway=192.168.1.254  # 替换成实际的下一跳网关
# 可选:设置路由优先级,数值越小优先级越高,默认是1024
Metric=100

重载配置并重启服务

写完配置文件后,需要让systemd重新加载配置,然后重启服务生效:

sudo systemctl daemon-reload
sudo systemctl restart systemd-networkd

验证路由是否生效

执行以下命令查看路由表,确认目标子网的路由条目存在:

ip route show | grep 10.17.12.0

如果输出类似10.17.12.0/24 via 192.168.1.254 dev eth0 proto static metric 100,说明配置成功了。

常见排坑点

  • 确认网卡名称正确:用ip link show核对,别把enp0s3写成eth0
  • 下一跳网关必须可达:先ping一下网关地址,确保能通
  • 配置文件权限:确保文件是root:root所有,权限为644,否则systemd可能读取不了
  • 防火墙:检查本机防火墙是否允许和目标子网的通信,必要时添加规则

内容的提问来源于stack exchange,提问作者Lily Mara

火山引擎 最新活动