在 Linux 系统中,可以使用 route
或 ip route
命令来添加路由。以下是详细的方法:
ip route
命令(推荐)ip route
是现代 Linux 系统推荐的工具,语法更清晰。
sudo ip route add <目标网络> via <网关IP> dev <接口名>
示例:
1. 添加默认路由(所有流量走网关 192.168.1.1
):
bash
sudo ip route add default via 192.168.1.1 dev eth0
2. 添加特定网络的路由(如 10.0.0.0/24
通过网关 192.168.1.2
):
bash
sudo ip route add 10.0.0.0/24 via 192.168.1.2 dev eth0
不同 Linux 发行版的永久路由配置方式不同:
- Debian/Ubuntu:编辑 /etc/network/interfaces
,在接口配置中添加:
bash
up ip route add 10.0.0.0/24 via 192.168.1.2 dev eth0
- RHEL/CentOS:在 /etc/sysconfig/network-scripts/route-<接口名>
中添加:
bash
10.0.0.0/24 via 192.168.1.2 dev eth0
- 通用方法(systemd-networkd):
创建 /etc/systemd/network/10-static-route.network
,内容如下:
ini
[Route]
Destination=10.0.0.0/24
Gateway=192.168.1.2
route
命令(过时但可用)sudo route add -net <目标网络> netmask <子网掩码> gw <网关IP> dev <接口名>
示例:
sudo route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.2 dev eth0
ip route show # 推荐
或
route -n # 传统方式
sudo ip route del <目标网络> # 例如:sudo ip route del 10.0.0.0/24
或
sudo route del -net 10.0.0.0 netmask 255.255.255.0
双网卡配置:
假设 eth0
连接内网(192.168.1.0/24
),eth1
连接公网,添加默认路由:
sudo ip route add default via 公网网关 dev eth1
VPN 路由:
访问 172.16.0.0/16
通过 VPN 接口 tun0
:
sudo ip route add 172.16.0.0/16 dev tun0
/32
(如 192.168.1.100/32
)。如有其他需求(如策略路由),可以进一步使用 ip rule
命令。