You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu多网卡路由配置问题:ifconfig无法同时显示多网卡,IPtables路由配置受阻

Ubuntu多网卡路由配置问题:ifconfig无法同时显示多网卡,IPtables路由配置受阻

Hey Matthew, 我来帮你搞定这个多网卡路由的问题!先从你说的ifconfig看不到多个网卡的问题入手,再一步步配置IPtables路由。

第一步:解决多网卡无法同时显示的问题

首先得说,Ubuntu最新版里ifconfig其实已经是比较老旧的工具了,很多时候默认没装全,而且NetworkManager的默认行为可能会自动禁用未连接的网卡,导致你只能看到一个。咱们一步步来:

  • 先确认硬件是否被系统识别
    运行这个命令,能列出所有网卡设备,不管有没有启用:

    sudo lshw -C network
    

    看看输出里有没有你的WiFi USB适配器和USB转网口设备。如果状态是UNCLAIMED,那可能是缺驱动;要是显示detected,那就是设备没激活,继续往下走。

  • 激活未启用的网卡
    用NetworkManager的命令查看所有设备状态:

    nmcli device status
    

    你会看到哪些网卡是disconnected状态,比如USB转网口通常是enx开头的名字,WiFi是wlan0之类的。然后手动激活它:

    sudo nmcli device connect enxXXXX  # 把enxXXXX换成你的网卡名
    

    激活后别再用ifconfig了,新版Ubuntu更推荐用ip addr show,这个肯定能看到所有已激活的网卡IP。要是你非要用ifconfig,先装一下工具包:

    sudo apt install net-tools
    

第二步:配置IPtables实现多网卡路由

解决了网卡显示问题,接下来要做路由转发,这得先开启IP转发,再配置IPtables规则:

  • 开启IP转发功能
    编辑系统配置文件:

    sudo nano /etc/sysctl.conf
    

    找到net.ipv4.ip_forward=1这一行,把前面的#删掉,保存退出后执行命令让配置生效:

    sudo sysctl -p
    
  • 配置IPtables转发规则
    假设你的内网网卡是enp0s3(内网口,比如连接内部网络的网卡),出口网卡是wlan0(WiFi USB适配器),规则如下:

    1. 允许内网流量转发到出口网卡:
      sudo iptables -A FORWARD -i enp0s3 -o wlan0 -j ACCEPT
      
    2. 允许出口网卡返回的流量转发回内网:
      sudo iptables -A FORWARD -i wlan0 -o enp0s3 -m state --state RELATED,ESTABLISHED -j ACCEPT
      
    3. 配置SNAT(源地址转换),让内网设备能通过出口网卡访问外网:
      sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
      

    如果你用USB转网口作为出口,把上面的wlan0换成对应的网卡名就行。

额外注意事项

  • 别让NetworkManager自动修改路由:建议把内网网卡设置为手动IP,不要用DHCP自动获取,避免路由冲突。你可以在Ubuntu的图形设置里找到对应的网卡,手动分配IP、子网掩码,网关留空(内网口不需要网关)。
  • 保存IPtables规则:重启后IPtables规则会消失,要是想永久保存,安装iptables-persistent:
    sudo apt install iptables-persistent
    
    安装过程中会提示你保存当前规则,选Yes就行。

这样操作下来,你的多网卡应该能正常显示,IPtables路由也能正常工作了!

备注:内容来源于stack exchange,提问作者Matthew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 11:04:29