在 Linux 中,删除静态路由可以使用 `ip route del` 或 `route del` 命令,具体方法如下:
1. 使用 `ip route del` 命令(推荐)
适用于 `iproute2` 工具:
```bash
ip route del <目标网络> via <网关IP> dev <网卡>
```
例如,删除到 `192.168.1.0/24` 的静态路由:
```bash
ip route del 192.168.1.0/24 via 192.168.1.1 dev eth0
```
2. 使用 `route del` 命令(传统方式)
适用于 `net-tools`:
```bash
route del -net <目标网络> netmask <子网掩码> gw <网关IP> dev <网卡>
```
例如:
```bash
route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0
```
3. 删除所有静态路由
如果想要清除所有路由,可以使用:
```bash
ip route flush table main
```
或
```bash
route -n | awk '{if ($1 != "Destination") system("route del -net "$1" gw "$2)}'
```
4. 使删除的静态路由永久生效
静态路由通常保存在 `/etc/sysconfig/network-scripts/route-<网卡>`(CentOS)或 `/etc/network/interfaces`(Ubuntu),如果不想重启后恢复,需手动删除相应配置文件中的路由条目。
CentOS/RHEL
编辑 `/etc/sysconfig/network-scripts/route-eth0`,删除相应的路由条目。
Ubuntu/Debian
编辑 `/etc/network/interfaces`,删除 `post-up` 相关的静态路由。
删除后可以执行以下命令使其立即生效:
```bash
systemctl restart network
```
或
```bash
service networking restart
```
这样,静态路由就被成功删除了!