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

相关推荐
聪小陈14 小时前
圣诞节:记一次掘友让我感动的时刻
前端·程序员
百万蹄蹄向前冲20 小时前
2024不一样的VUE3期末考查
前端·javascript·程序员
陈哥聊测试2 天前
软件格局在变,谁能扛起国产替代的大旗?
安全·程序员·产品
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭2 天前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
少年姜太公3 天前
从零开始详解js中的this(下)
前端·javascript·程序员
凌虚3 天前
Kubernetes APF(API 优先级和公平调度)简介
后端·程序员·kubernetes
小华同学ai3 天前
ShowDoc:Star12.3k,福利项目,个人小团队的在线文档“简单、易用、轻量化”还专门针对API文档、技术文档做了优化
前端·程序员·github
小青鱼5 天前
AI编程-Cursor从入门到精通系列之常用概念及解释(二)
人工智能·程序员
捡田螺的小男孩5 天前
参数校验的十个建议!收藏好,别再给测试机会提bug~
java·后端·程序员
哔哩哔哩技术6 天前
B站装机系统实践:从初创到规模化的演进
前端·程序员