本文介绍如何在 Debian 虚拟机上使用 Docker 和 macvlan 网络部署 Mihomo(原 Clash Meta)透明代理网关,让局域网内所有设备无需任何配置即可自动使用代理。

环境准备

创建 Debian 虚拟机

在 Proxmox VE 上一键创建 Debian 虚拟机:

1
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/vm/debian-vm.sh)"

推荐使用 Debian,因为它轻量、稳定、易用。

启用 SSH 远程管理

1
2
3
4
5
6
7
8
9
10
# 安装 SSH 服务
apt install -y openssh-server
systemctl enable ssh
systemctl start ssh

# 安装编辑器
apt install -y vim

# 修改 SSH 配置
vim /etc/ssh/sshd_config

修改以下参数:

  • PermitRootLoginyes
  • PasswordAuthenticationyes

重启 SSH 服务并设置 root 密码:

1
2
systemctl restart ssh
passwd root

安装 Docker

1
2
apt update && apt install -y docker.io
systemctl enable docker

网络配置

查看网卡信息

1
ip addr

记录主网卡名称(如 enp0s18)。

设置网卡混杂模式

1
ip link set enp0s18 promisc on

持久化配置需将上述命令写入 /etc/rc.local

创建 macvlan 网络

1
2
3
4
5
docker network create -d macvlan \
--subnet=192.168.88.0/24 \
--gateway=192.168.88.1 \
-o parent=enp0s18 \
opnet

参数说明:

参数 说明
--subnet 局域网网段,与你的主路由一致
--gateway 网关 IP,即主路由 IP
-o parent 物理网卡名称
opnet 自定义 Docker 网络名称

部署 Mihomo

准备配置文件

1
mkdir -p /etc/mihomo

准备 config.yaml 配置文件,放置到 /etc/mihomo/ 目录下:

  • 机场用户:替换为机场提供的订阅配置,或使用订阅转换工具生成
  • 自建 VPS 用户:配置代理节点信息(地址、端口、密码、加密方式等)

可通过 SFTP 工具上传配置文件到 /etc/mihomo/

启动 Mihomo 容器

1
2
3
4
5
6
7
docker run -d --privileged \
--name=mihomo \
--restart=always \
--network opnet \
--ip 192.168.88.10 \
-v /etc/mihomo:/root/.config/mihomo/ \
metacubex/mihomo:latest

参数说明:

参数 说明
--privileged 需要特权模式以修改网络
--name 容器名称
--network opnet 连接到刚创建的 macvlan 网络
--ip 分配给 Mihomo 的固定 IP
-v 挂载配置目录

客户端配置

设置 DNS

将局域网设备的 DNS 服务器设置为 Mihomo 容器的 IP(192.168.88.10):

  • 路由器 DHCP 设置:在 DHCP 选项中设置 DNS 为 192.168.88.10
  • 手动设置:在设备网络设置中修改 DNS

设置路由

Mihomo 的 TUN 模式会处理 198.18.0.0/16 网段的流量路由,确保数据包正确转发到 Mihomo 进程。


验证部署

  1. 检查容器运行状态:docker ps | grep mihomo
  2. 查看实时日志:docker logs -f mihomo
  3. 在局域网设备上访问 http://192.168.88.10:9090(默认面板端口),确认 Mihomo 控制面板可访问
  4. 访问 ip.sb 检查出口 IP 是否已变更

视频教程