添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

之前使用 OpenWRT 做主路由 + 物理 AP 的形式搭建家庭网络,这个方案耦合度太高了,容易崩。

经过一阵子研究,换成了 iKuai 做主路由,在 Proxmox 中使用 LXC 部署的 Debian + ShellCrash 做旁路网关的方案,iKuai 中局域网 DHCP 服务的 DNS 和网关地址默认指向 Debian 的静态 IP,不需要的设备设置网关和 DNS 地址指向 iKuai 的 IP 。

ShellCrash 配置为 TUN + FakeIP 模式,内置 DNS 指向自建的 AdguardHome 地址。稳定运行一周了。 :robot:

关键点:Proxmox 中 LXC 部署的 Debian 需要在“硬件”设置中添加网络设备 /dev/net/tun

终于可以方便设置哪些设备出国,哪些设备不出国了。 :rofl:

主要3步,创建 docker network,创建 macvlan 桥和路由表,创建容器。可以参考我这个脚本

# # macvlan 需要开启网卡混杂模式
# ip link set dev eth0 promisc on
# # 创建 docker macvlan 网络
# docker network create -d macvlan \
#   --subnet=192.168.50.0/24 \
#   --gateway=192.168.50.1 \
#   -o parent=eth0 macvlan_network
# # 宿主机添加一个 macvlan 桥用于宿主和容器通信
# # 以下操作都在宿主机上运行,新增一个叫mynet(不要和容器的macvlan重名)的macvlan接口
# ip link add macvlan-bridge link eth0 type macvlan mode bridge
# ip link set macvlan-bridge up
# # 修改路由表,使宿主机到192.168.0.100的通信全部经由mynet进行
# ip route add 192.168.50.4 dev macvlan-bridge
# export http_proxy=http://192.168.50.4:7890 https_proxy=http://192.168.50.4:7890 all_proxy=socks://192.168.50.4:7890
docker run -d --name crash \
  --cap-add=NET_ADMIN \
  --cap-add=NET_RAW \
  --net macvlan_network \
  --ip 192.168.50.4 \
  --restart=on-failure:5 \
  crash \
  crond -f
# 然后进 docker 去安装 crash(大致两步,1. 安装 iptables/nfttable,2. 安装 crash),具体安装步骤继续参考官方文档
              

我刚安装成功了,第一次启动一切正常,重启盒子和容器后,容器内就无法上网了。唯一能看到的错误信息是:

shellcrash 里重启服务的时候会报

sed: can't move '/etc/resolv.confoiiLeL' to '/etc/resolv.conf': Resource busy
服务已启动!

你的家庭网络 IP 是什么网段?我创建 docker macvlan 用的是同一个子网