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

相关推荐
NineData7 小时前
从个人开发到企业专属集群,NineData 的产品矩阵怎么做的?
运维·数据库·程序员
集成显卡10 小时前
别局限于 Oh-My-Posh,试试 Rust 编写的 starship:极简超快且无限可定制的命令行提示符
程序员·代码规范·命令行
陈随易11 小时前
我也曾离猝死很近
前端·后端·程序员
SimonKing15 小时前
IntelliJ IDEA 配置与插件全部迁移到其他盘,彻底释放C盘空间
java·后端·程序员
程序员cxuan1 天前
说点掏心窝子的话
后端·程序员
本末倒置1831 天前
告别"话痨"提交记录!Git 压缩 Commit 实战指南,代码洁癖党狂喜
面试·程序员·代码规范
程序员鱼皮1 天前
刚刚,微信终于能用 OpenClaw 了!安卓 iOS 都行,附保姆级教程
ai·程序员·编程·ai编程·openclaw
孟陬1 天前
国外技术周刊第 2 期 — 本周热门 🔥 YouTube 视频 TED 演讲 AI 如何能够拯救(而非摧毁)教育
前端·后端·程序员
陈随易2 天前
深度拆解技术架构的三大鸿沟:企业级Claw vs OpenClaw的工程差异
前端·后端·程序员
得物技术2 天前
Claude Code + OpenSpec 正在加速 AICoding 落地:从模型博弈到工程化的范式转移|得物技术
程序员·ai编程·claude