Linux - 如何设置以 0.0.0.0 作为网关的默认路由

Linux - 如何设置以 0.0.0.0 作为网关的默认路由

我遇到了一个问题,我需要在 init(ram)过程中手动设置 Ubuntu 18.04 上的路由。我无法使用任何新的网络工具,只有 Busybox 可用。

路由表应如下所示:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.31.1.1      0.0.0.0         UG    100    0        0 ens3
172.31.1.1      0.0.0.0         255.255.255.255 UH    100    0        0 ens3

主机是 VPS,IP 为 95.xx.xx.xx,因此网关 IP 不在同一网络上。我不知道用什么命令来构建上面的表格。我SIOCADDDRT尝试了所有方法,都出现了各种错误。

以下是我迄今为止尝试过的方法:

> route add default gw 172.31.1.1
SIOCADDDRT: Network uncreachable
> route add default gw 172.31.1.1 via 0.0.0.0 
..invalid format
> route add 172.31.1.1 gw 0.0.0.0
SIOCADDDRT: Invalid argument
> route add 0.0.0.0 gw 172.31.1.1
SIOCADDDRT: Network uncreachable
> route add default gw 0.0.0.0
SIOCADDDRT: Invalid argument

有什么方法可以让 Busybox 实现此功能吗?或者有其他方法可以在 initram 中实现此功能?

答案1

在您想要的标志输出中,“G”表示网关,“H”表示主机。因此,对于0.0.0.0您尝试为路由创建的输出,它实际上并没有用到。

要将主机 IP 添加到将生成相同输出的接口:

ip addr add 172.31.1.1/32 dev ens3

相关内容