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

Ubuntu双内网子网PC无法互访的iptables配置解决方案求助

Ubuntu双内网子网PC无法互访的iptables配置解决方案求助

您好,我来帮您解决这个跨子网设备互访的问题~

首先咱们理清问题根源:您的PC1和PC2分别在10.10.10.0/24和10.10.20.0/24两个不同子网,虽然您已经开启了IPv4转发并配置了NAT上网规则,但目前的iptables规则只允许内网接口的输入流量,没有开放两个内网接口之间的转发流量,这就导致两个子网的设备无法互相通信。另外还要确保两台PC的路由配置正确,让它们知道跨子网的流量要走您的Ubuntu主机。

接下来按步骤操作就能解决问题:

1. 确认Ubuntu主机的内网接口IP配置(前提)

您需要给两个内网网卡设置对应子网的网关IP:

  • 给enp2s0设置10.10.10.1/24
  • 给enp3s0设置10.10.20.1/24
    可以通过netplan或nmcli工具配置,确保配置重启后生效。

2. 添加iptables跨子网转发规则

在终端执行以下命令,允许两个内网子网之间的双向流量转发:

# 允许enp2s0子网访问enp3s0子网
sudo iptables -A FORWARD -i enp2s0 -o enp3s0 -j ACCEPT
# 允许enp3s0子网访问enp2s0子网
sudo iptables -A FORWARD -i enp3s0 -o enp2s0 -j ACCEPT

3. 配置两台PC的路由

确保两台PC的跨子网流量能找到正确路径:

  • PC1:将默认网关设置为10.10.10.1(Ubuntu主机enp2s0的IP),或者添加静态路由:
    # Windows PC执行此命令
    route add 10.10.20.0 mask 255.255.255.0 10.10.10.1
    # Linux/macOS PC执行此命令
    sudo ip route add 10.10.20.0/24 via 10.10.10.1
    
  • PC2:将默认网关设置为10.10.20.1(Ubuntu主机enp3s0的IP),或者添加静态路由:
    # Windows PC执行此命令
    route add 10.10.10.0 mask 255.255.255.0 10.10.20.1
    # Linux/macOS PC执行此命令
    sudo ip route add 10.10.10.0/24 via 10.10.20.1
    

4. 保存iptables规则(避免重启失效)

Ubuntu 22.04可以用iptables-persistent工具保存规则:

sudo apt update && sudo apt install iptables-persistent
# 保存当前规则
sudo netfilter-persistent save
# 加载规则验证生效
sudo netfilter-persistent reload

验证效果

配置完成后,在PC1上ping PC2的IP10.10.20.2,在PC2上ping PC1的IP10.10.10.2,如果能ping通,说明跨子网通信正常,此时游戏的局域网会话应该就能互相看到了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:03:20