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

请求配置YAML文件实现10.20.30.0/24网络通过192.168.1.1访问互联网

请求配置YAML文件实现10.20.30.0/24网络通过192.168.1.1访问互联网

嘿,我完全懂你折腾USB网卡那两个晚上的崩溃感——别慌,咱们一步步来搞定这个集群上网的配置。核心是把那个带USB网卡的树莓派做成NAT网关,让10.20.30.0/24网段的流量通过它转发到192.168.1.0/24的主网络,最终连上网。

首先,先确认几个前提:

  • 那个带USB网卡的Pi,在集群网络(10.20.30.0/24)里的IP得固定,假设是10.20.30.1(你可以根据实际调整)
  • 先通过ip link show命令查出它的两个网卡名称:比如USB网卡可能是enxabcdef123456,集群内置网卡是eth0

接下来是关键的netplan YAML配置(树莓派现在默认用netplan管理网络):

  1. 创建/编辑netplan配置文件:
sudo nano /etc/netplan/99-cluster-gateway.yaml
  1. 把下面的内容粘贴进去,记得替换<usb-interface>和<cluster-interface>为你实际的网卡名,调整IP地址到你的实际值:
network:
  version: 2
  ethernets:
    <usb-interface>:  # 替换为你的USB以太网适配器名称,比如enxabcdef123456
      addresses: [192.168.1.1/24]
      gateway4: 192.168.1.254  # 主网络的路由器IP
      nameservers:
        addresses: [192.168.1.254, 8.8.8.8]
    <cluster-interface>:  # 替换为连接集群的内置网卡名称,比如eth0
      addresses: [10.20.30.1/24]
      # 这里不需要网关,因为它本身就是集群的网关
  routes:
    - to: 0.0.0.0/0
      via: 192.168.1.254
      table: 100
  routing-policy:
    - from: 10.20.30.0/24
      table: 100
  1. 应用配置并生效:
sudo netplan generate && sudo netplan apply

然后需要开启IP转发和配置NAT规则:

  • 开启IPv4转发:编辑/etc/sysctl.conf,找到net.ipv4.ip_forward=1这一行,去掉前面的注释(#),然后执行:
sudo sysctl -p
  • 设置NAT伪装(让集群机器的流量看起来是从USB网卡的IP发出的):
sudo iptables -t nat -A POSTROUTING -o <usb-interface> -s 10.20.30.0/24 -j MASQUERADE
  • 保存iptables规则,避免重启后丢失:
sudo apt install -y iptables-persistent  # 如果没装的话先安装
sudo iptables-save | sudo tee /etc/iptables/rules.v4

最后一步,配置集群里的其他树莓派:

  • 把它们的默认网关设置为10.20.30.1(也就是那个网关Pi的集群IP)
  • DNS服务器可以设为192.168.1.254(主路由器)或者公共DNS比如8.8.8.8

配置完后,你可以从集群里的任意一台Pi测试:

ping 192.168.1.254  # 先测能不能通主路由器
ping 8.8.8.8        # 再测能不能通外网

如果有不通的地方,先检查网卡名称、IP地址是否正确,再确认iptables规则和IP转发是否开启。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 10:58:17