例如添加一条到192.168.3.0网段的路由,从网卡eth0出去,网关是192.168.2.12
注意:
在CentOS中通过直接修改网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0的方法不生效
命令行直接添加路由
sudo ip route add 192.168.3.0/24 via 192.168.2.12 dev eth0
开机自动生效
打开网络配置文件 rc.local
:
sudo vi /etc/rc.d/rc.local
- 在文件中添加你的路由命令:
# 在文件末尾添加以下行
sudo ip route add 192.168.3.0/24 via 192.168.2.12 dev eth0
-
保存文件并退出编辑器。
-
授予
rc.local
可执行权限:
sudo chmod +x /etc/rc.d/rc.local
- 确保
rc.local
已经启用。执行以下命令:
sudo systemctl enable rc-local
- 最后,重启系统,这样在开机时
rc.local
中的路由命令就会自动执行:
这样,你的路由指令就会在开机时自动添加到路由表中,从而实现开机生效的效果。请注意,`rc.local` 文件中的命令将在每次系统启动时执行,所以请确保该命令没有副作用且需要在每次启动时都运行。
通过nmcli命令添加路由
sudo nmcli connection modify eth0 +ipv4.routes "192.168.3.0/24 192.168.2.12"
删除路由
sudo nmcli connection modify eth0 -ipv4.routes "192.168.3.0/24 192.168.2.12"
注意:
通过nmcli修改路由需重启操作系统,重启网络服务不生效
在使用sudo nmcli connection modify eth0 +ipv4.routes "192.168.3.0/24 192.168.2.12"
这条命令时,并没有直接对应的配置文件。NetworkManager使用d-bus机制来管理网络配置,因此网络配置信息会保存在d-bus系统中,而不是像传统的配置文件那样存储在磁盘上。
当你运行上述命令时,它会直接更新NetworkManager中eth0
这个连接的路由设置,并且这些设置在系统重启后会保留,因为它们被保存在NetworkManager的配置数据库中。
要查看eth0
连接的详细配置,你可以使用以下命令:
sudo nmcli connection show eth0
这会显示eth0
连接的详细信息,包括路由配置。
示例
[root@node01 ~]# nmcli con show eth0
connection.id: eth0
connection.uuid: 406ef76f-d50d-4205-9f87-4046d0da9161
connection.stable-id: --
connection.interface-name: eth0
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 1691027313
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (default)
connection.secondaries:
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: -1 (default)
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu: auto
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options:
802-3-ethernet.wake-on-lan: 1 (default)
802-3-ethernet.wake-on-lan-password: --
ipv4.method: manual
ipv4.dns:
ipv4.dns-search:
ipv4.dns-options: (default)
ipv4.dns-priority: 0
ipv4.addresses: 192.168.2.11/24
ipv4.gateway: 192.168.2.12
ipv4.routes:
ipv4.route-metric: -1
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-timeout: 0
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.dad-timeout: -1 (default)
ipv6.method: auto
ipv6.dns:
ipv6.dns-search:
ipv6.dns-options: (default)
ipv6.dns-priority: 0
ipv6.addresses:
ipv6.gateway: --
ipv6.routes:
ipv6.route-metric: -1
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.ip6-privacy: -1 (unknown)
ipv6.addr-gen-mode: stable-privacy
ipv6.dhcp-send-hostname: yes
ipv6.dhcp-hostname: --
ipv6.token: --
GENERAL.NAME: eth0
GENERAL.UUID: 406ef76f-d50d-4205-9f87-4046d0da9161
GENERAL.DEVICES: eth0
GENERAL.STATE: activated
GENERAL.DEFAULT: yes
GENERAL.DEFAULT6: no
GENERAL.VPN: no
GENERAL.ZONE: --
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/0
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/3
GENERAL.SPEC-OBJECT: /
GENERAL.MASTER-PATH: --
IP4.ADDRESS[1]: 192.168.2.11/24
IP4.GATEWAY: 192.168.2.12
IP4.ROUTE[1]: dst = 192.168.3.0/24, nh = 192.168.2.12, mt = 100
IP6.ADDRESS[1]: fe80::54fc:ae6:27ee:f265/64
IP6.GATEWAY:
[root@node01 ~]#