如何为新手设置Linux系统默认网关和路由表安全过滤策略?
- 内容介绍
- 文章标签
- 相关推荐
本文共计942个文字,预计阅读时间需要4分钟。
新手上路配置Linux默认网关其实不难,关键在于区分临时生效和永久生效的区别,同时避免多个默认网关引发的问题。
一、设置默认网关:用对命令,别留隐患
Linux 只允许一个默认网关(0.0.0.0/0 路由),强行添加第二个会覆盖前一个,导致部分流量不可达。
- 临时添加(重启即失效):
ip route add default via 192.168.1.1 dev eth0
或兼容旧习惯:
route add default gw 192.168.1.1 eth0 - 验证是否成功:
ip route show | grep default 或 route -n,确认只有一条default行,且 Gateway 和 Iface 正确 - 删除错误默认网关:
ip route del default(不指定网关或设备,直接删掉当前唯一的 default)
二、让网关永久生效:写进配置文件,别靠 rc.local
把命令塞进 /etc/rc.local 是常见误区——现代 systemd 系统可能不执行它,且缺乏网络就绪判断。
- CentOS/RHEL 7+(使用 NetworkManager 或传统 network 服务):
编辑/etc/sysconfig/network-scripts/ifcfg-eth0,添加或修改:
GATEWAY=192.168.1.1
保存后重启网卡:nmcli c reload; nmcli c up eth0 或 systemctl restart network - Debian/Ubuntu:
编辑/etc/network/interfaces,在对应接口段落中加入:
gateway 192.168.1.1 - 通用稳妥法(所有发行版都支持):
在/etc/sysconfig/network(RHEL系)或/etc/network/options(部分旧 Debian)中设全局网关:
GATEWAY=192.168.1.1
三、路由表本身不做“安全过滤”,但可配合基础防护
Linux 路由表只决定“往哪发”,不检查内容、不拦截连接。所谓“安全过滤”需靠其他机制协同:
- 禁用 IP 转发(除非你真想当路由器):
检查 sysctl net.ipv4.ip_forward 应为 0;若为 1,临时关闭:
echo 0 > /proc/sys/net/ipv4/ip_forward
永久关闭:在/etc/sysctl.conf中设 net.ipv4.ip_forward = 0,再运行 sysctl -p - 限制本地监听范围(防暴露服务):
服务配置中尽量绑定到127.0.0.1或内网地址,而非0.0.0.0 - 配合防火墙(非路由层,但必须做):
启用 firewalld(RHEL)或 ufw(Ubuntu),默认拒绝入站,仅开放必要端口
四、多网卡场景:别设双 default,改用策略路由
如果机器有两块网卡连不同网络(如办公网 + 管理网),又希望特定源 IP 走特定出口,不能靠两个 default,而要用策略路由:
- 先确保第二块网卡配置中不写 GATEWAY(避免被自动加 default)
- 创建新路由表(如叫
admin),编辑/etc/iproute2/rt_tables:
200 admin - 添加规则:
ip route add 10.10.20.0/24 dev eth1 src 10.10.20.100 table admin
ip route add default via 10.10.20.1 dev eth1 table admin
ip rule add from 10.10.20.100 table admin - 这样,从
10.10.20.100发出的包走admin表,其余走主表 —— 安全且可控
本文共计942个文字,预计阅读时间需要4分钟。
新手上路配置Linux默认网关其实不难,关键在于区分临时生效和永久生效的区别,同时避免多个默认网关引发的问题。
一、设置默认网关:用对命令,别留隐患
Linux 只允许一个默认网关(0.0.0.0/0 路由),强行添加第二个会覆盖前一个,导致部分流量不可达。
- 临时添加(重启即失效):
ip route add default via 192.168.1.1 dev eth0
或兼容旧习惯:
route add default gw 192.168.1.1 eth0 - 验证是否成功:
ip route show | grep default 或 route -n,确认只有一条default行,且 Gateway 和 Iface 正确 - 删除错误默认网关:
ip route del default(不指定网关或设备,直接删掉当前唯一的 default)
二、让网关永久生效:写进配置文件,别靠 rc.local
把命令塞进 /etc/rc.local 是常见误区——现代 systemd 系统可能不执行它,且缺乏网络就绪判断。
- CentOS/RHEL 7+(使用 NetworkManager 或传统 network 服务):
编辑/etc/sysconfig/network-scripts/ifcfg-eth0,添加或修改:
GATEWAY=192.168.1.1
保存后重启网卡:nmcli c reload; nmcli c up eth0 或 systemctl restart network - Debian/Ubuntu:
编辑/etc/network/interfaces,在对应接口段落中加入:
gateway 192.168.1.1 - 通用稳妥法(所有发行版都支持):
在/etc/sysconfig/network(RHEL系)或/etc/network/options(部分旧 Debian)中设全局网关:
GATEWAY=192.168.1.1
三、路由表本身不做“安全过滤”,但可配合基础防护
Linux 路由表只决定“往哪发”,不检查内容、不拦截连接。所谓“安全过滤”需靠其他机制协同:
- 禁用 IP 转发(除非你真想当路由器):
检查 sysctl net.ipv4.ip_forward 应为 0;若为 1,临时关闭:
echo 0 > /proc/sys/net/ipv4/ip_forward
永久关闭:在/etc/sysctl.conf中设 net.ipv4.ip_forward = 0,再运行 sysctl -p - 限制本地监听范围(防暴露服务):
服务配置中尽量绑定到127.0.0.1或内网地址,而非0.0.0.0 - 配合防火墙(非路由层,但必须做):
启用 firewalld(RHEL)或 ufw(Ubuntu),默认拒绝入站,仅开放必要端口
四、多网卡场景:别设双 default,改用策略路由
如果机器有两块网卡连不同网络(如办公网 + 管理网),又希望特定源 IP 走特定出口,不能靠两个 default,而要用策略路由:
- 先确保第二块网卡配置中不写 GATEWAY(避免被自动加 default)
- 创建新路由表(如叫
admin),编辑/etc/iproute2/rt_tables:
200 admin - 添加规则:
ip route add 10.10.20.0/24 dev eth1 src 10.10.20.100 table admin
ip route add default via 10.10.20.1 dev eth1 table admin
ip rule add from 10.10.20.100 table admin - 这样,从
10.10.20.100发出的包走admin表,其余走主表 —— 安全且可控

