/lib/systemd/network/10-eth0.network我的客户端上,我无法配置任何可以翻译我的手动命令的东西:

sudo ip route add default via 192.168.7.1 dev eth0

192.168.7.1我的主机的静态 IPv4 地址在哪里。

我最后一次10-eth0.network配置尝试:

[Match]
Name=eth0

[Link]
RequiredForOnline=no

[Route]
Address=192.168.7.2/24
Destination=192.168.7.1/32
Gateway=192.168.7.1

已刷新sudo systemctl restart systemd-networkd并验证ip route(它没有显示)。

参见:

  • 无效的答案:

3

  • 如果 7.1 是您的主机的地址,1) 为什么要将其指定为网关,2) 那么 7.2 应该是什么?您的意思是 7.1 是路由器的地址,而 7.2 是带有 systemd 的主机吗?


    – 


  • 192.168.7.1是任意主机以太网端口到客户端192.168.7.2以太网端口。192.168.7.1本身不是路由器。路由器位于另一个子网块中,例如10.0.0.1


    – 

  • 好的,那么 .7.2 是正在配置的主机,而 .7.1 是另一台主机。192.168.7.1至少充当路由器吗?


    – 


最佳答案
1

您没有在任何地方指定它应该是默认路由;相反,您指定了Destination=192.168.7.1/32– 它与default路由完全相反…并且是循环(自引用)路由。根据您的配置,它可能192.168.7.1/32 dev eth0在您的路由输出中显示为(假设内核不拒绝它,这将是有效的解释)。

默认路由始终是0.0.0.0/0,即最低优先级的捕获所有路由,这就是您需要定义为的Destination=。(或者,您可以完全省略 Destination=。)

只有在同一子网中才能定义路由。为此,请确保参数 位于部分部分中 – 在 [Route] 部分中没有意义。Gateway=192.168.7.1Address=192.168.7.2[Address][Network]