如何为新手设置Linux系统默认网关和路由表安全过滤策略?

2026-05-20 13:331阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计942个文字,预计阅读时间需要4分钟。

如何为新手设置Linux系统默认网关和路由表安全过滤策略?

新手上路配置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 defaultroute -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 eth0systemctl 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默认网关其实不难,关键在于区分临时生效和永久生效的区别,同时避免多个默认网关引发的问题。

一、设置默认网关:用对命令,别留隐患

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 defaultroute -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 eth0systemctl 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 表,其余走主表 —— 安全且可控