7

我刚刚执行了最新(2008 年秋季)版本的 Fedora 9 Linux 的新安装,我很困惑它从来没有正确设置默认路由,即使在这个操作系统的迷宫中运行,也没有明显的方法。

当然,很明显可以像这样一次性完成:

   route add default gw gw1 metric 0 eth0

或像这样:

   ip route add to default via 192.168.2.1 protocol static

但是,这些都不能在重新启动后幸存下来。在读取 /etc/rc.d/init.d/network 时,它会尝试从 /etc/sysconfig/static-routes 中的文件中查找数据,但该文件从未存在过。所以,我尝试创建它并用数据填充它。这样做的问题是脚本在一个奇怪的地方放置了一个破折号(减号),我不确定如何处理。

当然,可以只编辑 /etc/rc.d/init.d/network,但那是不标准的。事实上,我唯一的其他资源似乎是编辑 rc.local,但这在启动序列中还不够早,无法用于诸如网络时间守护程序之类的事情。

我已经完成了我的功课——我已经阅读了所有的手册页、信息条目,并尝试了适当的方法,我什至还进行了相当多的网络搜索,但都无济于事——我的下一步,不在这里回答,将是注册 Fedora 邮件列表并在那里提问!或者,放弃并编辑脚本。

那么,一个人应该如何做到这一点呢?

4

6 回答 6

9

网关通常在 /etc/sysconfig/network-scripts/ifcfg-eth0 中设置,而不是在 /etc/sysconfig/network 中。例如,在我当前的机器上:

/etc/sysconfig/网络

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=flyboys
NISDOMAIN=ekcineon

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
ONBOOT=yes
HWADDR=00:1d:09:31:3a:cc
NETMASK=255.255.255.0
IPADDR=150.102.65.30
GATEWAY=150.102.65.252
TYPE=Ethernet

请注意,我设置了 HWADDR,因为我有两个以太网卡,并且我想确保将正确的一个分配给 eth0。第二张卡的配置在 /etc/sysconfig/network-scripts/ifcfg-eth1

于 2008-10-13T20:44:17.347 回答
2

只需编辑/etc/sysconfig/network-scripts/route-ethXX

并在里面写:默认通过 ip_address dev device,将ip_address替换为您的网关 ip,将device替换为正确的 eth device 的名称。但是对于Device 选项,它的 ... 可选,在多个 eth 设备的情况下设置它。即使在网络重启的情况下也能工作,rc.local 中的路由指令仅在启动时工作。

于 2016-09-18T16:26:31.810 回答
1

我没有使用过最新版本的 Fedora,但它经常被设置为 /etc/sysconfig/network 中的 GATEWAY 变量。

当然,如果您只是想让它工作,您可以将命令放在 /etc/rc.local 中,以便在引导序列完成时执行。

于 2008-10-13T20:09:00.850 回答
0

没见过Fedora。但是这种事情不应该有一些GUI吗?如果您有 Gnome,请尝试运行gnome-network-preferences

于 2008-10-13T20:21:34.100 回答
0

这是针对 RHEL 的,因为它略有不同:

  1. 使用 ifconfig 识别接口
  2. sudo vi /etc/sysconfig/network-scripts/route-ethXX
  3. 按照以下语法添加路由,其中​​ /xx 表示子网掩码

    host: 172.30.xxx.xxx via 172.30.xxx.xxx
    network: 172.30.xxx.xxx/xx via 172.30.xxx.xxx
    Default gateway: 0.0.0.0 via xxx.xxx.xxx.xxx</li>
    

  4. 保存文件。
  5. sudo /etc/init.d/network restart (警告:如果您忘记为管理界面设置正确的路由(如果适用),您可能会失去与服务器的连接)

于 2014-10-27T14:12:45.627 回答
0

如果可用,您可以使用 nmcli,ei


# nmcli con show
NAME         UUID                                  TYPE      DEVICE
System eth0  xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  ethernet  eth0
ens33        xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  ethernet  --

# nmcli con edit "System eth0"

nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search, dns-options, dns-priority, addresses, gateway, routes, route-metric, route-table, routing-rules, ignore-auto-routes, ignore-auto-dns, dhcp-client-id, dhcp-timeout, dhcp-send-hostname, dhcp-hostname, dhcp-fqdn, never-default, may-fail, dad-timeout
nmcli ipv4>

nmcli ipv4> print
['ipv4' setting values]
ipv4.method:                            manual
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         10.10.10.1/26
ipv4.gateway:                           10.10.10.129
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
nmcli ipv4>


nmcli ipv4> set routes 192.168.122.0/24 10.10.10.1

nmcli ipv4> verify
Verify setting 'ipv4': OK
nmcli ipv4> save
nmcli ipv4> quit

#nmcli con up "System eth0"

它应该使用适当的参数创建文件 /etc/sysconfig/network-scripts/routes-,例如

ADDRESS0=192.0.2.0
NETMASK0=255.255.255.0
GATEWAY0=198.51.100.1
于 2021-06-04T17:46:06.787 回答