新搭建的家庭开发环境网络配置技术总结

in #cnlast month

前情

为在家庭服务器上搭建一个能科学上网的VPS开发环境,且避免在主路由器上安装OpenClash,特设计本网络方案。

目前在我本地开发,很多时候需要科学上网,但是 tun 模式下总是有一些问题。像 docker 镜像的构建,tun穿透不到构建过程中,不得不手动增加 --build-arg HTTPS_PROXY=http://192.168.30.11:8001 这样的参数,非常烦。

之前一直是远程连接到海外的一台vps上,作为开发环境的。但是最近发现 Cursor 的 AI 总是因为与这台vps的连接不稳定,而罢工。

把工作迁移回本地后,AI 就工作正常了。但是编译测试就出现了上面的问题。

整体网络环境

家庭局域网核心网段为192.168.30.0/23,核心路由设备IP为192.168.30.1,网段内192.168.30.21部署一台2U服务器,作为实现该需求的网络节点核心设备。

2U服务器及PVC配置

该服务器宿主机安装PVC(Proxmox Virtual Environment),配备两个物理网口,PVC内配置两类网桥,功能分工明确:

  • vmbr1:已桥接服务器一个物理网口,用于实现网络内外数据交互;

  • vmbr4:未桥接任何物理网口,作为内部虚拟网络的连接载体。

PVC内虚拟节点网络配置

  1. OpenWRT容器(CT容器)

容器通过双网卡连接PVC网桥,实现路由转发功能,具体配置如下:

  • net1连接vmbr1,对应容器内网卡eth0,配置为WAN口,静态IP:192.168.30.25/23;

  • net2连接vmbr4,对应容器内网卡eth1,配置为LAN口,IP:192.168.44.1/24。

OpenWRT 使用官方的 rootfs 包,在 PVE 上执行创建命令:

pct create 200 ssd:vztmpl/openwrt-23.05.6-x86-64-rootfs.tar.gz --rootfs data0:5 --ostype unmanaged --hostname wrt --arch amd64 --cores 8 --memory 1024 --swap 0 --net0 bridge=vmbr0,name=eth0 --net1 bridge=vmbr4,name=eth1

之后初始化配置 OpenWRT 后,按照 OpenClash 的文档,安装 OpenClash 即可。

  1. 虚拟机

PVC上部署的虚拟机,其网卡eth0指向vmbr4,网络配置为静态IP:192.168.44.2/24,作为OpenWRT LAN网段(192.168.44.0/24)内的终端节点。

核心网络逻辑

OpenWRT容器通过eth0(WAN口)接入家庭主网段(192.168.30.0/23),再通过eth1(LAN口)依托vmbr4构建独立虚拟网段(192.168.44.0/24),虚拟机作为该虚拟网段内设备,通过OpenWRT实现网络访问。

Sort:  

Upvoted! Thank you for supporting witness @jswit.