如何使用 systemd-networkd 设置子网外的带有网关 IP 的静态 IP?

如何使用 systemd-networkd 设置子网外的带有网关 IP 的静态 IP?

基本上我想要做的是:

~$ ip addr add 51.255.174.122/32 dev eth0
~$ ip route add 51.255.68.1 dev eth0
~$ ip route add default via 51.255.68.1

我尝试的是:/etc/systemd/network/wired.network

[Match]
Name=eth0

[Network]
Address=51.255.174.122/32
Gateway=51.255.68.1

当我尝试时,ip route没有输出。我做错了什么?正确的方法是什么?

答案1

Gateway=51.255.68.1 在路线部分尝试使用 GatewayOnLink= 它应该可以工作。 https://www.freedesktop.org/software/systemd/man/systemd.network.html#GatewayOnlink=

答案2

我遇到了类似的问题,我需要systemd-networkd在完全不同的子网上设置网关(因为 ISP 给了我地址)。

user29005 的回答为我指明了解决方案。下面是我在 Arch Linux 中让它运行的方法。

/etc/systemd/network/20-wired.network:

[Match]
Name=ens18

[Network]
Address=51.0.0.1
DNS=XX.XX.XX.XX

[Route]
Gateway=37.0.0.254
GatewayOnLink=true

GatewayOnLink=true线路解决了‘不可达下一跳’错误。

希望有帮助,

相关内容