在远程办公的时候,通常需要搭建一个代理服务,让外网的人员可以访问内网的服务和网站。 这里介绍的是github.com/trojan-gfw/...项目
使用 Docker 运行 Trojan
这份文档介绍如何通过Docker搭建一个Trojan
准备工作
安装 Docker及Docker-Compose
使用镜像名称trojangfw/trojan
,保存配置start.yml
文件如下:
bash
version: '3.8'
services:
trojan:
image: trojangfw/trojan
container_name: trojan_vpn
volumes:
- /home/thought_blog/etc/config:/config
- /home/thought_blog/etc/certs:/certs # 假设你的证书和私钥在这个目录下
ports:
- "26227:443" # 将容器的443端口映射到宿主机的26227端口
restart: unless-stopped
创建 Trojan 配置文件
在/home/thought_blog/etc/config
目录下(/home/thought_blog/etc为你自己随时指定的文件夹),创建名为 config.json
的配置文件,内容如下:
json
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "域名",
"remote_port": 80,
"password": [
"你自己设置密码"
],
"log_level": 1,
"ssl": {
"cert": "/certs/域名证书.crt",
"key": "/certs/域名证书key.key",
"sni": "域名"
},
"tcp": {
"prefer_ipv4": true,
"no_delay": true,
"keep_alive": true,
"reuse_port": true,
"fast_open": false,
"fast_open_qlen": 20
}
}
设置https证书
在/home/thought_blog/etc/certs
路径下保存crt
后缀的证书文件和对应.key
文件 证书最简单的方式,就是在域名服务商处购买一个域名,然后可以申请免费的SSL证书,一般几块钱到十几块钱。
如果你实在不想买,可以自己生成一个证书。 以下是一个基本的步骤,用于生成自签名的SSL证书和私钥。
1. 安装OpenSSL
如果你的系统上还没有安装OpenSSL,需要先安装它。在大多数Linux发行版、MacOS和Windows的Git Bash中,OpenSSL应该已经预安装了。
2. 生成私钥(KEY文件)
打开终端或命令提示符,运行以下命令来生成一个新的2048位私钥:
csharp
openssl genrsa -out mykey.key 2048
这条命令会生成一个名为mykey.key
的私钥文件。
3. 生成证书签名请求(CSR文件)
使用私钥生成一个证书签名请求(CSR)。CSR包含证书的信息,如组织名、常用名(域名),等等。
vbnet
openssl req -new -key mykey.key -out mycsr.csr
执行此命令时,它会提示你输入证书的详细信息,如国家、省份、组织名等。最重要的是"Common Name",它应该是证书将要用于验证的域名或IP地址。
5.生成自签名证书(CRT文件)
最后,使用CSR和私钥生成自签名的证书。这个证书将会由你自己签发,而不是由证书颁发机构(CA)签发。
csharp
openssl x509 -req -days 365 -in mycsr.csr -signkey mykey.key -out mycert.crt
这条命令会生成一个有效期为365天的自签名证书mycert.crt
。
运行 Trojan
-
运行容器:
docker-compose -f trojan.yml up -d
参数说明:
-d
: 后台运行-f
: 使用哪个文件运行
-
查看容器运行状态:
docker ps
输出示例:
bash
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
71cfac119648 trojangfw/trojan "trojan config.json" 5 weeks ago Up 5 weeks 0.0.0.0:26227->443/tcp, :::26227->443/tcp trojan_vpn
停止容器
arduino
docker stop 71cfac119648
连接代理服务
IOS :Shadowrocket 安卓:v2rayNG windows:v2rayN macOs:Surge4 Linux Trojan-QT
本文只是从技术角度说明代理服务如何搭建和技术原理,提供远程办公的工作环境,所以就不提供软件下载了。
如果觉得有用可以来我的网站坐坐(zhiwei.plus/archives/tr...