电脑有双网口,我插了两个不同的ip网线,一个是:192.168.100.x 网段,一个是:10.10.1.x网段,如何建立访问规则

Deepseek 的回答:

好的,这是一个非常经典的多网卡路由配置问题。当电脑有两个活跃的网卡连接到不同网段时,系统会根据其路由表 来决定数据包的走向。

你的目标是:让访问192.168.100.x的流量走网卡1,访问10.10.1.x的流量走网卡2,并且可能还需要正常上网。

下面我将为你详细解释原理和提供操作方法(适用于Windows和Linux)。

核心概念:路由表

你可以把路由表想象成一张地图,告诉电脑“要去某个地方,应该走哪条路”。每条路由规则包含几个关键信息:

  • 目标网络:你要访问的IP地址段(如 192.168.100.0
  • 网关:数据包要发往的“下一个路口”(通常是路由器地址)
  • 接口:本机使用哪个网卡出去
  • 跃点数:路的“优先级”,数字越小优先级越高。

默认情况下的问题

通常,后接通的网卡会生成一个默认路由,并拥有更高的优先级(更低的跃点数),这会导致所有非本地的流量(比如上网)都从这个网卡走,这可能不是你想要的。你需要手动配置静态路由来精确控制流量。


操作方法

首先,确认当前网络配置

  1. 找到两个网卡的连接信息

    • 网卡1 (192.168.100.x):IP地址、子网掩码(通常是 255.255.255.0)、默认网关(例如 192.168.100.1,如果有的话)。
    • 网卡2 (10.10.1.x):IP地址、子网掩码、默认网关(例如 10.10.1.1,如果有的话)。

    重要两个接口最好不要都设置默认网关! 否则会引起路由冲突。通常只为你希望用于上网的那个接口设置默认网关。

  2. 查看当前路由表

    • Windows:打开命令提示符(CMD)或 PowerShell,输入 route print
    • Linux/macOS:打开终端,输入 ip routenetstat -rn

    你会看到一系列记录,注意 0.0.0.0 的行表示默认路由。


方案一:使用命令添加静态路由(推荐)

这种方法最灵活和清晰。

Windows 系统

  1. 以管理员身份运行命令提示符(CMD)或 PowerShell。这是必须的,否则无法添加路由。

  2. 删除可能冲突的路由(如果必要)
    如果你不希望某个网卡负责上网,只希望它处理特定网段,并且它设置了默认网关,最好删除它生成的默认路由。假设它的网关是 10.10.1.1,接口的跃点数是 25。

    cmd

    route delete 0.0.0.0 mask 0.0.0.0 10.10.1.1
    
  3. 添加永久静态路由

    • 命令格式route add -p <目标网络> mask <子网掩码> <网关> metric <跃点数> if <接口>

      • -p 选项代表永久(Persistent),重启后不丢失。
      • metricif 通常可以省略,系统会自动选择。
    • 举例

      • 要求:所有访问 10.10.1.0 网段的流量,都通过 10.10.1.1 这个网关走。

        cmd

        route add -p 10.10.1.0 mask 255.255.255.0 10.10.1.1
        
      • 要求:所有访问 192.168.100.0 网段的流量,都通过 192.168.100.1 这个网关走。

        cmd

        route add -p 192.168.100.0 mask 255.255.255.0 192.168.100.1
        
  4. 验证:输入 route print,查看活动路由中最下方的“永久路由”部分,确认添加成功。现在你可以尝试 ping 两个网段中的设备了。

Linux 系统 (使用 iproute2 工具)

  1. 打开终端,可能需要 root 权限。

  2. 添加静态路由

    • 命令格式ip route add <目标网络>/<掩码位数> via <网关> dev <网卡名>

    • 举例

      • 假设连接到 10.10.1.x 网段的网卡名是 eth0,网关是 10.10.1.1

        bash

        sudo ip route add 10.10.1.0/24 via 10.10.1.1 dev eth0
        
      • 假设连接到 192.168.100.x 网段的网卡名是 eth1,网关是 192.168.100.1

        bash

        sudo ip route add 192.168.100.0/24 via 192.168.100.1 dev eth1
        
  3. 使路由永久生效(重启后不丢失):
    上述命令添加的路由重启后会失效。要永久生效,需要将命令写入网络配置文件。不同发行版位置不同:

    • Ubuntu/Debian:编辑 /etc/netplan/01-netcfg.yaml 文件,在相应的网卡配置下添加 routes 字段。
    • CentOS/RHEL:编辑 /etc/sysconfig/network-scripts/route-<网卡名> 文件。

    建议搜索“<你的Linux发行版> 添加永久静态路由”以获得最准确的方法。

  4. 验证:输入 ip routenetstat -rn 查看路由表。

总结与建议

  1. 首选方案:使用命令行的方式(方案一) 添加永久静态路由。这是最专业和可靠的方法。
  2. 网关设置:确保只有一个网卡设置了默认网关(用于上网),另一个网卡只配置IP和掩码,不填网关,然后用手动路由指向它。
  3. 验证结果:配置完成后,务必使用 ping 命令和 tracert(Windows)/ traceroute(Linux)命令来测试路径是否正确。
    • ping 10.10.1.50 然后看是否通。
    • tracert 10.10.1.50 可以看到数据包经过的第一个网关是不是你设置的 10.10.1.1
  4. 防火墙:如果ping不通,请检查对方设备或本机防火墙是否禁用了ICMP协议(ping请求)。

按照以上步骤操作,你就能清晰地管理两个网络的访问规则了。

由于我偏向方案一,所以我略去了方案二

posted @ 2025-09-13 17:53  afei2003  阅读(446)  评论(0)    收藏  举报