Trojan代理服务搭建和访问

在远程办公的时候,通常需要搭建一个代理服务,让外网的人员可以访问内网的服务和网站。 这里介绍的是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

  1. 运行容器:

    docker-compose -f trojan.yml up -d

参数说明:

  • -d: 后台运行
  • -f: 使用哪个文件运行
  1. 查看容器运行状态:

    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...

相关推荐
蝎子莱莱爱打怪16 小时前
自用推荐|XTerminal:我心中 SSH 客户端的终极形态
java·后端·程序员
得物技术17 小时前
让 Claude Code 拥有自我进化和记忆系统|得物技术
程序员·ai编程·claude
uzong20 小时前
企业智能助手的实践分享(LLM/RAG)
后端·程序员·架构
程序员cxuan1 天前
Claude Fable 5 来了
人工智能·后端·程序员
江米小枣tonylua1 天前
关掉 VSCode:在 NeoVim12 上配置 Claude Code
前端·程序员
程序员cxuan2 天前
Agents.md 是什么
人工智能·后端·程序员
SimonKing2 天前
线程池面试被问到怕?看完这篇让他当场沉默
java·后端·程序员
阿里嘎多学长2 天前
2026-06-09 GitHub 热点项目精选
开发语言·程序员·github·代码托管
该用户已不存在2 天前
这9款开发工具夯爆了,用了都说好
后端·程序员·全栈
阿里嘎多学长3 天前
2026-06-08 GitHub 热点项目精选
开发语言·程序员·github·代码托管