使用Docker封印深信服EasyConnect

写这篇博客前先编个故事,就在半个月前我的苹果Mac Book Pro 2017款莫名无法开机,去万象城咨询售后说是主板坏维修需要4000人民币然后委婉的告诉我关注一下今年的新款。关于这款苹果笔记本电脑前前后后投入了不少钱,平均年用机成本高达5000多人民币,我只想说2015款之后再无Mac Book Pro。现在手里使用的是2012年的华硕笔记本花掉小400人民币升级到16G内存,系统盘使用的是朗科128G固态,光驱位改造成机械硬盘,整体上看性能尚可撸代码问题不大,竟然宝刀未老那就再战5年吧。

关于台式机

公司配发的台式机在我刚进公司那会儿让我做成了虚拟化的服务器7*24小时服务已经默默的运行了差不多4年,我使用它来学习集群高可用、分布式、微服务、Docker、搭建科学上网网关。

上图中编号为999是我搭建的openwrt网关它内置passwall服务我使用它来进行科学上网,我的笔记本电脑以及编号为100和101的两台虚拟机使用openwrt作为网关,这样的好处是不用任何设置即可科学上网。编号为101的windows7虚拟机我使用USB无线网卡提供WIFI服务这样我的手机也可以正常的科学上网。

创建macvlan网络

在docker中创建macvlan网络我们可以简单的理解为类似于VMware虚拟机中的桥接网络,而docker中的桥接网络相当于Vmware中的NAT网络。

docker network create -d macvlan --subnet=192.168.210.0/24 --gateway=192.168.210.254 -o parent=eth0 -o macvlan_mode=bridge docker_macvlan

封印Easyconnect

# 无代理版本
docker run -itd \
 --name easyconnect \
 --hostname easyconnect \
 --device /dev/net/tun \
 --cap-add NET_ADMIN \
 -v $PWD/easyconnect_data/root:/root \
 -v $PWD/easyconnect_data/logs:/usr/share/sangfor/EasyConnect/resources/logs \
 -e EC_VER=7.6.3 \
 -e EXIT=1 \
 -e NODANTED=1 \
 -e CLI_OPTS="-d 链接地址 -u 账号 -p 密码" \
 --net docker_macvlan \
 --ip IP地址 \
 --dns DNS地址 \
 hagb/docker-easyconnect:cli
# 有代理版本
docker run -itd \
 --name easyconnect \
 --hostname easyconnect \
 --device /dev/net/tun \
 --cap-add NET_ADMIN \
 -v $PWD/easyconnect_data/root:/root \
 -v $PWD/easyconnect_data/logs:/usr/share/sangfor/EasyConnect/resources/logs \
 -e EC_VER=7.6.3 \
 -e EXIT=1 \
 -e CLI_OPTS="-d 链接地址 -u 账号 -p 密码" \
 --net docker_macvlan \
 --ip IP地址 \
 --dns DNS地址 \
 hagb/docker-easyconnect:cli

我使用的是无代理的版本,因为我使用自己的openwrt虚拟机作为网关我只需要配置一个静态路由即可正常访问Easyconnect之后的网络。

OpenWRT静态路由

# 使用route命令添加路由
route add -net 172.16.0.0/16 gw 192.168.210.232
route add -net 172.17.0.0/16 gw 192.168.210.232