当路由表仅包含 169.254.0.0 IP 时,如何允许 Linux 网络连接到 Hetzner 云服务器上的互联网?

当路由表仅包含 169.254.0.0 IP 时,如何允许 Linux 网络连接到 Hetzner 云服务器上的互联网?

我有 Hetzner 的虚拟服务器,在安装 CentOS 6 Linux 后,我不知道如何使默认安装从互联网上可用,如何设置路由。Hetzner 说网关 IP 应该是 172.31.1.1 (https://wiki.hetzner.de/index.php/CloudServer/en#What_are_Routes.3F- “特殊的私有 IP 地址172.31.1.1。此 IP 地址被用作服务器公共网络接口的默认网关。”)

首先,以下操作有效:/sbin/route add default gw 1​​72.31.1.1 eth0

但现在一天后它显示 SDIOCADDRT:网络不可达。当前路由表(路由 -n)仅包含一条规则:169.254.0.0/16 dev eth0 scope link metric 1002

eth0 接口的配置文件是:https://i.postimg.cc/9Qc6VwK7/ifcfg-eth0.gif

请告诉我哪些命令可以正确完成路由表?或者我的 eth0 接口配置文件有什么问题?

更新:有人告诉我我应该使用静态配置在 CentOS 6 上,但我遇到了 route-eth0 文件的问题,因为我无法创建它:

cp /etc/host.conf /etc/sysconfig/network-scripts/route-eth0 perl -pi -e s/multi on/172\.31\.1\.1\/32 dev eth0\\ndefault via 172\.31\.1\.1 dev eth0/g /etc/sysconfig/network-scripts/route-eth0

错误是:替换模式未在 -e 第 1 行终止。

(我无法使用 echo 或 tee 或 vim,因为 Hetzner 控制台不适用于 | " ' $ > 字符和 Ctrl 键)

答案1

他们告诉我我需要使用静态配置并且它起作用了(重新启动网络/重启后)。

(请注意,该链接下的 IP 可能仅适用于 Hetzner 服务器)

通过 Hetzner 控制台(不接受 Ctrl 键、| > $ " ' 等)调整配置文件非常困难。

这些是我必须运行的命令(几乎肯定只在 Hetzner + CentOS 6 上以及在替换 myvpspubliciphere 之后才有效。但可以为任何使用有限的 Web 控制台(例如来自 Hetzner 的控制台)的人提供想法):

perl -pi -e s/BOOTPROTO=dhcp/BOOTPROTO=static/g /etc/sysconfig/network-scripts/ifcfg-eth0
perl -pi -e s/IPV6INIT=no/IPADDR=myvpspubliciphere/g /etc/sysconfig/network-scripts/ifcfg-eth0
perl -pi -e s/ONBOOT=yes/ONBOOT=yes\\nNETMASK=255.255.255.255\\nDNS1=213.133.98.98\\nDNS2=213.133.99.99/g /etc/sysconfig/network-scripts/ifcfg-eth0
cp /etc/host.conf /etc/sysconfig/network-scripts/route-eth0
perl -pi -e s/multi\ on/172.31.1.1\\/32\ dev\ eth0\\ndefault\ via\ 172.31.1.1\ dev\ eth0/g /etc/sysconfig/network-scripts/route-eth0
service network restart

(cp 命令用于获取一个只有两个字的小文件,我可以用它轻松地将其内容替换为我需要的内容)

相关内容