news 2026/4/18 13:50:24

排查一个多网卡的机器上不了网的问题(更改默认路由)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
排查一个多网卡的机器上不了网的问题(更改默认路由)

1. 首先查看自己的网关

先用inconfig查看自己的ip,如果ip已经被分配到了,网关肯定已经配好了。最简单的几个方法如下(任选一个在终端执行):

1. 用ip route

推荐这个:

iproute

输出里类似会有一行:

default via 192.168.11.1 dev wlp4s0 ...

via后面的地址就是你的网关,比如这里就是:
192.168.11.1(示例)


2. 用ip r | grep default

简化版:

ipr|grepdefault

同样看via后面的地址。


3. 用route -n(旧命令)

有些系统还带这个命令:

route -n

输出里会有一行:

Destination Gateway Genmask Flags Iface 0.0.0.0 192.168.11.1 0.0.0.0 UG wlp4s0

Gateway那一列就是网关地址。


4. 用nmcli(如果用 NetworkManager)

nmcli device show wlp4s0|grepIP4.GATEWAY

会显示:

IP4.GATEWAY: 192.168.11.1

2. 查看自己的默认网关以及相关信息

这是一个容器内的设备,使用一个网线接在一个座位无线中继的路由器上,这个路由器的ip是192.168.11.5,也应该是网关,但是这个设备现在上不了网,它的信息输出如下: bash-5.2# ip routedefault via192.168.2.1 dev eth0 proto static192.168.2.0/24 dev eth0 proto kernel scopelinksrc192.168.2.100192.168.11.0/24 dev eth1 proto kernel scopelinksrc192.168.11.20 bash-5.2# route -nKernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0192.168.2.10.0.0.0 UG000eth0192.168.2.00.0.0.0255.255.255.0 U000eth0192.168.11.00.0.0.0255.255.255.0 U000eth1 bash-5.2# ifconfigeth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500inet192.168.2.100 netmask255.255.255.0 broadcast192.168.2.255 inet6 fe80::c22b:31ff:fe0d:6e64 prefixlen64scopeid 0x20<link>ether c0:2b:31:0d:6e:64 txqueuelen1000(Ethernet)RX packets250442bytes75435281(71.9MiB)RX errors0dropped0overruns0frame0TX packets125bytes19412(18.9KiB)TX errors0dropped0overruns0carrier0collisions0device interrupt17base 0x2000 eth1:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500inet192.168.11.20 netmask255.255.255.0 broadcast192.168.11.255 inet6 240a:429a:200:7640:6076:3371:13f0:bbc7 prefixlen64scopeid 0x0<global>inet6 240a:429a:200:7640:c22b:31ff:fe0d:6e65 prefixlen64scopeid 0x0<global>inet6 fe80::c22b:31ff:fe0d:6e65 prefixlen64scopeid 0x20<link>ether c0:2b:31:0d:6e:65 txqueuelen1000(Ethernet)RX packets187400bytes172449194(164.4MiB)RX errors0dropped0overruns0frame0TX packets552762bytes589704680(562.3MiB)TX errors0dropped0overruns0carrier0collisions0device interrupt18base 0x2000 lo:flags=73<UP,LOOPBACK,RUNNING>mtu65536inet127.0.0.1 netmask255.0.0.0 inet6 ::1 prefixlen128scopeid 0x10<host>loop txqueuelen1000(Local Loopback)RX packets689976bytes705456856(672.7MiB)RX errors0dropped0overruns0frame0TX packets689976bytes705456856(672.7MiB)TX errors0dropped0overruns0carrier0collisions0

从你贴的信息看,现在这个容器或主机的默认网关配置和你实际的物理连接是不一致的,这就是“上不了网”的主要原因。

先把现状理一下:

  • eth0: 192.168.2.100/24,默认网关指向192.168.2.1default via 192.168.2.1 dev eth0
  • eth1: 192.168.11.20/24,接在你的“无线中继路由器”上,这个路由器 IP 是192.168.11.5

你说“用一根网线接在一个无线中继路由器上”,那么真正能通外网的那条链路大概率是:

设备 eth1 (192.168.11.20)中继路由器 192.168.11.5→ 上级 Wi‑Fi/AP → 互联网

但当前路由表的默认路由走的是另外一个网络:

default via 192.168.2.1 dev eth0

也就是说:所有去外网的包都从eth0发给192.168.2.1,而不是从 eth1 发给 192.168.11.5,所以肯定上不了网(或者走的是一个根本不存在/不通的网关)。


1. 先确认 192.168.11.5 在 eth1 上是否可达

在容器里:

ping-c4192.168.11.5
  • 如果 ping 不通:

    • 要么你接线的那端 IP 没配成 192.168.11.5
    • 要么中继路由器 LAN 口不是 192.168.11.x 网段 / 被关机 / 接错口
    • 需要先在“无线中继路由器”上确认:
      • 它 LAN 口 IP 是否确实是 192.168.11.5/24
      • DHCP 开/关无所谓,但 IP 必须在 192.168.11.0/24 内
  • 如果 ping 得通,说明二层/三层直连是好的,只是默认路由错了。


2. 临时改默认网关到 192.168.11.5

在容器里,先删掉原来的默认路由,再加上新的(以 eth1 为出口):

iproute del defaultiprouteadddefault via192.168.11.5 dev eth1

然后测试外网:

ping-c48.8.8.8ping-c4www.baidu.com
  • 8.8.8.8 能 ping 通但域名不行 → DNS 问题
  • 都不行 → 再排查中继路由器本身是否能上网

可以再看下路由表是否已经改对:

iproute

应该变成类似:

default via 192.168.11.5 dev eth1 192.168.2.0/24 dev eth0 ... 192.168.11.0/24 dev eth1 ...

3. 容器里如何做“持久化”配置

这取决于你怎么启动容器的:

3.1 如果是 Docker,默认网络模式(bridge)

通常容器内部的 192.168.2.100 / 192.168.11.20 这种地址是你额外做了 macvlan 或 host 网络才会看到的。
常见几种情况:

  • --network host:那实际上你看到的是宿主机的网络配置,路由应该在宿主机上改,而不是容器里。

  • --network macvlan0/ 自建网络:网关应当在建网络时指定,如:

    dockernetwork create -d macvlan\--subnet=192.168.11.0/24\--gateway=192.168.11.5\-oparent=eth1 mynet

    然后用这个 network 启容器。

  • 如果你是通过某些编排(docker‑compose / k8s)指定了静态 IP,那么也要在对应 yml 里设置 gateway。

你可以把docker ps/docker inspect <容器>的网络配置贴出来,我可以按你实际环境给一套准确的配置方法。

3.2 如果容器是直接 chroot / LXC

那可能路由跟一个“轻量级系统”一样,用:

  • Alpine:/etc/network/interfaces或 openrc 的 net scripts
  • Debian/Ubuntu:/etc/network/interfaces或 netplan
  • CentOS/Rocky:NetworkManager / ifcfg

可以先看一下容器里是哪个发行版:

cat/etc/os-release

我可以根据这个告诉你要改哪一个配置文件、写什么内容来把默认网关改成 192.168.11.5。


4. 还需要确认的几个点(可以按顺序试)

  1. 宿主机能否从 192.168.11 段上网
    在宿主机上(不是容器):

    • ip addr看 eth1/IP 是不是和容器类似
    • ping 192.168.11.5
    • ping 8.8.8.8

    如果宿主机本身就上不了网,那是中继路由器/上游网络的问题,不是容器的问题。

  2. DNS
    当你能 ping 通 8.8.8.8,但ping www.baidu.com不行时,在容器里设定 DNS,例如编辑/etc/resolv.conf

    nameserver223.5.5.5 nameserver8.8.8.8

    然后再试。


5. 总结你现在最应该做的操作

在容器里立刻尝试:

ping-c4192.168.11.5# 确认中继路由器可达iproute del default# 删除原来的 default via 192.168.2.1iprouteadddefault via192.168.11.5 dev eth1ping-c48.8.8.8ping-c4www.baidu.com

把这三步的输出贴出来(特别是ping 192.168.11.5ip route之后的结果),我可以帮你继续分析:

  • 是中继路由器没网
  • 还是容器网络模式/路由没配对
  • 或者还存在 NAT/DNS 其他问题。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:38:28

通义千问CLI完整教程:从入门到精通的AI对话工具指南

通义千问CLI完整教程&#xff1a;从入门到精通的AI对话工具指南 【免费下载链接】Qwen The official repo of Qwen (通义千问) chat & pretrained large language model proposed by Alibaba Cloud. 项目地址: https://gitcode.com/GitHub_Trending/qw/Qwen 通义千问…

作者头像 李华
网站建设 2026/4/18 7:53:00

Mini-Gemini多模态实验:基于PyTorch镜像实现图文理解新玩法

Mini-Gemini多模态实验&#xff1a;基于PyTorch镜像实现图文理解新玩法 1. 引言&#xff1a;当图像遇见语言&#xff0c;AI的下一站已来 你有没有想过&#xff0c;让AI不仅能“看”懂一张照片里的内容&#xff0c;还能像人一样解释画面背后的故事&#xff1f;比如看到一张街景…

作者头像 李华
网站建设 2026/4/18 8:35:56

GPT-OSS-20B:16GB内存玩转本地AI推理新工具

GPT-OSS-20B&#xff1a;16GB内存玩转本地AI推理新工具 【免费下载链接】gpt-oss-20b gpt-oss-20b —— 适用于低延迟和本地或特定用途的场景&#xff08;210 亿参数&#xff0c;其中 36 亿活跃参数&#xff09; 项目地址: https://ai.gitcode.com/hf_mirrors/openai/gpt-oss…

作者头像 李华
网站建设 2026/4/18 7:44:26

Hunyuan-MT如何实现高精度?WMT25冠军技术拆解

Hunyuan-MT如何实现高精度&#xff1f;WMT25冠军技术拆解 1. 腾讯混元翻译模型&#xff1a;不只是多语种&#xff0c;更是精准翻译的突破 你有没有遇到过这种情况&#xff1a;想把一段中文内容翻译成西班牙语发给客户&#xff0c;结果机器翻译出来的话生硬得连本地人都看不懂…

作者头像 李华
网站建设 2026/4/18 12:33:00

3D Slicer完全手册:解锁医学影像处理的无限可能

3D Slicer完全手册&#xff1a;解锁医学影像处理的无限可能 【免费下载链接】Slicer Multi-platform, free open source software for visualization and image computing. 项目地址: https://gitcode.com/gh_mirrors/sl/Slicer 在数字化医疗快速发展的今天&#xff0c;…

作者头像 李华
网站建设 2026/4/17 13:13:32

Z-Image-Turbo更新日志查看,了解最新功能变化

Z-Image-Turbo更新日志查看&#xff0c;了解最新功能变化 1. 更新日志概览&#xff1a;掌握Z-Image-Turbo核心演进路径 阿里通义Z-Image-Turbo自发布以来&#xff0c;持续在生成质量、运行效率和用户体验三大维度进行优化。由开发者“科哥”主导的二次开发版本&#xff0c;在…

作者头像 李华