使用 Docker 封印 EasyConnect

在这篇文章中只介绍在 Windows 下使用 Docker 封印 EasyConnect 的操作步骤。我们会使用到 4 个软件:Docker DesktopVNC ViewerClash for WindowsWintun 和 1 个镜像:docker-easyconnect

下载 docker-easyconnect 镜像

为了确定要下载的镜像版本请在浏览器地址栏输入 https://服务端地址/por/ec_pkg.csp?platform=liunx,请根据实际情况替换服务端地址部分

根据浏览器输出并结合 EasyConnect 版本选择当前我们应该选择 7.6.3 版本

1
docker pull hagb/docker-easyconnect:7.6.3

启动 docker-easyconnect 容器

根据图形界面版 EasyConnect 的说明我们启动容器的命令如下,替换 $HOME 变量为 Windows 下的用户目录 C:\Users\nucPASSWORD 设置为 123456,其他保持不变

1
docker run --rm --device /dev/net/tun --cap-add NET_ADMIN -ti -e PASSWORD=123456 -e URLWIN=1 -v C:\Users\nuc\.ecdata:/root -p 127.0.0.1:5901:5901 -p 127.0.0.1:1080:1080 -p 127.0.0.1:8888:8888 hagb/docker-easyconnect:7.6.3

使用 VNC Viewer 登录 EasyConnect

打开 VNC Viewer 软件,在菜单栏选择 File > New connection

在弹出的对话框中,VNC Server 项输入在启动容器由参数 -p 127.0.0.1:5901:5901 设置地址和端口 127.0.0.1:5901Name 项取一个自己容易识别的名字,比如 Docker EasyConnect

在 VNC Viewer 主界面双击刚创建的 VNC Server

在弹出的 Encryption 确认框中点击 Continue 按钮忽略未加密连接警告

在弹出的 Authentication 对话框中,Password 项输入启动容器时通过 -e PASSWORD=123456 参数设置的密码 123456

如果没什么意外将看到 Easy Connect 连接界面,输入服务器地址用户名密码进行正常的登录

使用 Clash for Windows 配置代理

打开 Clash for Windows 软件,选择 Profilees,点击 <> 按钮开始编辑

config.yaml 配置的 1 ~ 4 行为原始内容,5 ~ 18 行为新增内容。第 8 ~ 9 行是在启动容器时通过 -p 127.0.0.1:1080:1080 参数设置地址和端口;第 16 ~ 18 行 rules 部分请根据自己实际进行配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mixed-port: 7890
allow-lan: false
external-controller: 127.0.0.1:58547
secret: e0449ccf-90d3-42d7-b814-3a885827271b
proxies:
- name: Docker EasyConnect
type: socks5
server: 127.0.0.1
port: 1080
proxy-groups:
- name: 内部网络
type: select
proxies:
- Docker EasyConnect
rules:
- DOMAIN,domain1,内部网络
- DOMAIN,domain2,内部网络
- IP-CIDR,xxx.yyy.0.0/16,内部网络

现在打开 Proxies,应该就可以看到前面配置的代理

为了使代理生效需要在 General 中打开 System Proxy

经过以上的配置已经可以在浏览器访问内网应用。

TUN 模式

选择 General,点击 Open Folder 打开 Home Directory

wintun.dll 拷贝到 Home Directory

拷贝完成后的效果如下图所示

选择 General,点击 Service Mode 右边的 Manage 按钮

Service Management 弹框可以看到当前状态是 Inactive,点击 Install 按钮

Clash for Windows 会重启一下,安装完成后的效果

选择 General,打开 TUN Mode

控制面板 > 网络和 Internet > 网络连接可以看到新加入的 Clash 连接

开始愉快地玩耍吧!

TUN 模式(v2rayN)

我们使用 6.58 版本的 v2rayN-With-Core.zip。在 6.60 版本的 v2rayN-With-Core.zip7.11.3 版本的 v2rayN-windows-64.zip 未能测试通过,其他版本未进行测试。

新增订阅分组

首先,新建一个别名为内部网络的订阅分组

新增 SOCKS 配置文件

选中刚创建的内部网络订阅分组,点击服务器 > 添加[Socks]服务器

服务器sing_box别名Docker EasyConnect地址127.0.0.1端口1080,其中地址和端口是在启动容器时通过 -p 127.0.0.1:1080:1080 参数设置地址和端口,其他保持不变

配置 Tun 模式设置

点击设置 > 参数设置

选中 Tun 模式设置标签页,关闭 Strict RouteStack 选择 gvisor,其他保持默认

配置路由设置

点击设置 > 路由设置

在路由设置对话框点击高级功能 > 添加规则集

在规则集设置对话框填写别名内部网络,其他保持不变,然后点击添加规则按钮

在路由规则集详情设置对话框 outboundTag 选择 proxy,其他保持不变;Domain 根据自己实际填写

以相同的方式配置 IP 或 IP CIDR 规则集

为了能够正确地访问外部网络需要把 V3-绕过大陆(Whitelist) 规则集里 outboundTagdirect 的规则复制一份到我们的内部网络(可能需要去掉 geoip:private, 部分),配置完成后我们的内部网络规则集如下所示

配置 DNS 设置

点击设置 > DNS 设置

在 DNS 设置对话框选择 sing-box DNS设置标签页,点击点击导入默认DNS配置按钮

启用 TUN 模式

选择内部网络订阅分组,将别名为 Docker EasyConnect 设置为活动服务器,打开启用Tun模式开关,系统代理选择自动配置系统代理路由选择内部网络。如果不是以管理员身份运行 v2rayN 会自动重启一次

控制面板 > 网络和 Internet > 网络连接可以看到新加入的 singbox_tun 连接

开始愉快地玩耍吧!

参考资料

  1. Windows 的 WSL 中运行 EasyConnect
  2. Windows下使用Docker封印EasyConnect
  3. 封印 Easyconnect
  4. 新时代的快乐科研:WSL2+Docker+EasyConnect+Clash
  5. 解决EasyConnect的毒瘤行为
  6. Rules 规则
  7. 记一次Windows下使用docker封印Easyconnect的过程
  8. Clash for Windows
  9. 参考配置
  10. 深入理解Clash配置文件
  11. 解决挂着Clash的时候git操作push失败的问题
  12. Github可以访问,但是git clone报错443端口连接超时
  13. 开clash后Git依然超时的解决方法
  14. 用docker封印EasyConnect并连接远程桌面和数据库
  15. 解决EasyConnect的毒瘤行为
  16. Clash for Windows 使用 TUN 模式实现网卡级代理
  17. Clash for Windows 优雅地使用 TUN 模式接管系统流量
  18. 最新 clash for windows 设置TUN模式实现真全局模式(有限真全局)
  19. TUN模式 Clash for windows 配置教程