本文主要讲述如何通过 Docker 运行一个 Trojan 客户端,而并不介绍 Trojan 服务器端如何搭建。
这里笔者用的是 GitHub 上开源的 trojan 项目 https://github.com/trojan-gfw/trojan
通过 git 将项目下载到本地
git clone https://github.com/trojan-gfw/trojan.git
修改项目中 Dockerfile
这一步对于使用大陆局域网的用户来说是非常重要的。将下面这行代码添加至 Dockerfile 中
FROM alpine:3.11
的下一行RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
大致如下:
FROM alpine:3.11 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories COPY . trojan ...
构建 Docker 镜像
通过 cd 命令切换目录至 Dockerfile 文件所在目录,然后
docker build -t trojan .
查看 Docker 镜像是否存在
docker images
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE trojan latest 44d7a749e0bf 2 days ago 11.5MB mongo latest 2b2cc1f48aed 6 days ago 388MB redis latest 235592615444 12 days ago 104MB mysql 5.6 8de95e6026c3 2 weeks ago 302MB mysql 5.7 9cfcce23593a 2 weeks ago 448MB mysql 8.0 be0dbf01a0f3 2 weeks ago 541MB alpine latest a24bb4013296 3 weeks ago 5.57MB ubuntu-lnmp latest 8dcf6426c958 5 weeks ago 892MB ubuntu latest 1d622ef86b13 2 months ago 73.9MB ubuntu 18.04 c3c304cb4f22 2 months ago 64.2MB alpine 3.11 f70734b6a266 2 months ago 5.61MB nginx latest 602e111c06b6 2 months ago 127MB
准备你的 Trojan 配置文件
创建一个单独的目录用来存放 Trojan 配置文件,如笔者使用
/Users/ismdeep/Data/trojan-config
作为 Trojan 配置文件目录,然后将配置文件命名为config.json
放入此文件夹。配置文件格式大致如下{ "run_type": "client", "local_addr": "0.0.0.0", "local_port": 1080, "remote_addr": "", "remote_port": 443, "password": [ "" ], "log_level": 1, "ssl": { "verify": true, "verify_hostname": true, "cert": "", "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA", "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384", "sni": "", "alpn": [ "h2", "http/1.1" ], "reuse_session": true, "session_ticket": false, "curves": "" }, "tcp": { "no_delay": true, "keep_alive": true, "reuse_port": false, "fast_open": false, "fast_open_qlen": 20 } }
创建 Docker 容器并运行
docker run --name trojan -v /Users/ismdeep/Data/trojan-config:/config -p 1080:1080 -d trojan
启动 & 停止
# 启动 docker start trojan # 停止 docker stop trojan
总结
这部分操作还是比较简单的,你只需要一点 Docker 基本操作知识即可。