使用 docker-atrust 连入深信服

525 字
3 分钟
使用 docker-atrust 连入深信服

公司为了加强网络安全,采购了深信服的零信任(atrust)作为以前openvpn的代替方案,接入方需要使用 atrust 客户端进行接入。某天突然在 v2ex 上发现了基于 docker 和 梯子软件结合,免安装客户端实现接入的方式,然后一直没有验证成功,今天趁着国庆假期,再次尝试,终于成功。实际上还是担心 atrust 会对本地电脑进行监控,感觉安装在 docker 容器中,可以最大程度的限制其能力。

网络拓扑#

![[image 2.png]]

docker-atrust 配置#

services:
atrust:
image: hagb/docker-atrust
container_name: atrust
environment:
- PASSWORD=123456 # 密码按照实际情况填写
- URLWIN=1
- TZ=Asia/Shanghai
volumes:
- $HOME/data/atrust:/root
ports:
- "5901:5901"
- "1080:1080" # socks5 端口
- "8888:8888" # http 代理端口
- "54631:54631"
devices:
- /dev/net/tun
cap_add:
- NET_ADMIN
sysctls:
- net.ipv4.conf.default.route_localnet=1
restart: unless-stopped

通过 vnc 登录#

![[image 3.png]]

连入后,和普通 atrust 操作一样,输入服务器地址、用户名密码完成登录,这里比较重要的是 配置连接服务器url时,域名需要在下面的 mihomo 配置中进行特殊配置(下面会讲到)

mihomo 配置#

  1. 因为公司使用了私有域名,docker-atrust 连入成功后,atrust 会下发 dns 解析规则到容器,需要将 这部分 dns 指定到 mihomo 的 hosts 中
hosts:
# 公司dns
mysql-xxx.xxx.io: 47.96.xxx.xxx # 公司ip
mysql8-test.xxx.io: 172.16.xxx.xxx # 公司内网ip
  1. 增加 socks5 代理节点
proxies:
- name: ATRUST
type: socks5
server: 192.168.50.4 # 指向 192.168.50.4 宿主机
port: 1080 #
  1. 增加代理规则
proxy-groups:
- { name: 公司线路, type: select, proxies: [DIRECT, ATRUST] } # 这里考虑本地 mac 上的clash verge配置,在公司时直连
  1. 代理规则配置
rules:
# 公司atrust
- "DOMAIN,atrust.xxx.com,DIRECT" # 这里指定 atrust 连接用的域名走直连
- "DOMAIN-SUFFIX,xxx.io,公司线路"
- "DOMAIN-SUFFIX,xxx.com,公司线路"
- "IP-CIDR,47.96.xxx.xxx/32,公司线路,no-resolve" # 47.96.xxx.xxx 是 atrust.xxx.com 的 ip

openwrt 路由配置#

在家调试java应用时,发现无法访问公司的 172.16.6.0/24172.16.7.0/24 网段的 dubbo 服务,需要手动添加两条路由规则到路由表中

Terminal window
ip route add 172.16.6.0/24 dev nikki
ip route add 172.16.7.0/24 dev nikki

📎 参考文章#

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

使用 docker-atrust 连入深信服
https://blog.sephy.top/posts/使用-docker-atrust-连入深信服/
作者
虾米
发布于
2025-10-03
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
虾米
coder
分类
标签
站点统计
文章
61
分类
4
标签
52
总字数
64,663
运行时长
0
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.13.9
文章许可
CC BY-NC-SA 4.0