找回密码
 立即注册
CeraNetworksBGVM服务器主机交流IP归属甄别会员请立即修改密码
查看: 69|回复: 7

[原创] 让Trojan和 LNMP/oneinstack共存的方法

[复制链接]

72

主题

817

回帖

2981

积分

金牌会员

积分
2981
发表于 2020-2-27 11:18:35 | 显示全部楼层 |阅读模式
本帖最后由 nic2013 于 2020-2-27 11:27 编辑

核心内容:让 Trojan监听非443端口。

新建一个 vhost 让 LNMP/oneinstack 自动申请好 Let's Encrypt 证书。

修改 vhost 默认配置文件。

[ol]
  • server
  •         {
  •         listen 80;
  •         server_name www.hostloc.com hostloc.com;
  •     root /data/wwwroot/default;
  •     index index.html index.htm index.php;
  • }
  • [/ol]复制代码


    在 /usr/local/nginx/conf/nginx.conf  的 http 字段添加如下代码

    [ol]
  •     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  •                       '$status $body_bytes_sent "$http_referer" '
  •                       '"$http_user_agent" "$http_x_forwarded_for"';[/ol]复制代码

    /usr/local/nginx/sbin/nginx -t 测试一下,无误后 service nginx restart

    让 Trojan监听非443端口,比如监听90端口。

    cd /usr/src 目录,下载 Trojan 服务端 https://github.com/trojan-高墙/trojan/releases/download/v1.14.1/trojan-1.14.1-linux-amd64.tar.xz

    解压 tar xf trojan-1.14.1-linux-amd64.tar.xz

    在 /usr/src/trojan 目录新建一个 server.conf 配置文件

    [ol]
  • {
  •     "run_type": "server",
  •     "local_addr": "0.0.0.0",
  •     "local_port": 90,
  •     "remote_addr": "127.0.0.1",
  •     "remote_port": 80,
  •     "password": [
  •         "password1"
  •     ],
  •     "log_level": 1,
  •     "ssl": {
  •         "cert": "/usr/local/nginx/conf/ssl/证书实际路径.crt",
  •         "key": "/usr/local/nginx/conf/ssl/证书实际路径.key",
  •         "key_password": "",
  •         "cipher_tls13":"TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
  • "prefer_server_cipher": true,
  •         "alpn": [
  •             "http/1.1"
  •         ],
  •         "reuse_session": true,
  •         "session_ticket": false,
  •         "session_timeout": 600,
  •         "plain_http_response": "",
  •         "curves": "",
  •         "dhparam": ""
  •     },
  •     "tcp": {
  •         "no_delay": true,
  •         "keep_alive": true,
  •         "fast_open": false,
  •         "fast_open_qlen": 20
  •     },
  •     "mysql": {
  •         "enabled": false,
  •         "server_addr": "127.0.0.1",
  •         "server_port": 3306,
  •         "database": "trojan",
  •         "username": "trojan",
  •         "password": ""
  •     }
  • }
  • [/ol]复制代码


    创建 Trojan 自启服务

    Debian9 系统找到/lib/systemd/system/目录,并创建trojan.service文件

    CentOS7 系统找到/usr/lib/systemd/system/目录,并创建trojan.service文件

    打开trojan.service文件,并写入以下代码

    [ol]
  • [Unit]  
  • Description=trojan  
  • After=network.target  
  •    
  • [Service]  
  • Type=simple  
  • PIDFile=/usr/src/trojan/trojan/trojan.pid
  • ExecStart=/usr/src/trojan/trojan -c "/usr/src/trojan/server.conf"  
  • ExecReload=  
  • ExecStop=/usr/src/trojan/trojan  
  • PrivateTmp=true  
  •    
  • [Install]  
  • WantedBy=multi-user.target
  • [/ol]复制代码

    设置启动 Trojan 服务

    systemctl start trojan.service  #启动 Trojan

    systemctl enable trojan.service  #设置 Trojan 服务开机自启

    systemctl stop trojan.service  #停止 Trojan

    下载 Trojan 客户端软件

    https://github.com/trojan-高墙/trojan/releases/download/v1.14.1/trojan-1.14.1-win.zip


    把服务器上的 fullchain.crt 证书放到  本地 Trojan 客户端文件夹,重命名为fullchain.cer。

    修改 Trojan 文件夹里面的config.json文件

    [ol]
  • {
  •     "run_type": "client",
  •     "local_addr": "127.0.0.1",
  •     "local_port": 1080,
  •     "remote_addr": "www.hostloc.com",
  •     "remote_port": 90, #与vps服务端端口一致
  •     "password": [
  •         "password1"
  •     ],
  •     "log_level": 1,
  •     "ssl": {
  •         "verify": true,
  •         "verify_hostname": true,
  •         "cert": "fullchain.cer",
  •         "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,
  •         "fast_open": false,
  •         "fast_open_qlen": 20
  •     }
  • }
  • [/ol]复制代码

  • 回复

    使用道具 举报

    2

    主题

    10

    回帖

    48

    积分

    新手上路

    积分
    48
    发表于 2020-2-27 11:19:48 | 显示全部楼层
    大佬 !!起来顶
    回复

    使用道具 举报

    4

    主题

    16

    回帖

    102

    积分

    注册会员

    积分
    102
    发表于 2020-2-27 11:24:30 | 显示全部楼层
    监听别的端口和ss有啥区别??非443的ssl看起来就不靠谱
    回复

    使用道具 举报

    72

    主题

    817

    回帖

    2981

    积分

    金牌会员

    积分
    2981
     楼主| 发表于 2020-2-27 11:28:03 | 显示全部楼层

    hehekotete 发表于 2020-2-27 11:24

    监听别的端口和ss有啥区别??非443的ssl看起来就不靠谱

    说的也对。
    回复

    使用道具 举报

    17

    主题

    134

    回帖

    561

    积分

    高级会员

    积分
    561
    发表于 2020-2-27 11:24:00 | 显示全部楼层
    应该用nginx再做一次反代,让Trojan走443出去
    回复

    使用道具 举报

    15

    主题

    489

    回帖

    1537

    积分

    金牌会员

    积分
    1537
    发表于 2020-2-27 11:59:35 | 显示全部楼层
    都有nginx了,路径反代v2 ws分流不好吗,折腾的不用443端口了,trojan的伪装优势也没有了
    回复

    使用道具 举报

    21

    主题

    272

    回帖

    1034

    积分

    金牌会员

    积分
    1034
    发表于 2020-2-27 13:16:08 | 显示全部楼层

    SFA 发表于 2020-2-27 11:59

    应该用nginx再做一次反代,让Trojan走443出去

    trojan不是普通的HTTPS,反代不了
    回复

    使用道具 举报

    34

    主题

    105

    回帖

    656

    积分

    高级会员

    积分
    656
    发表于 2020-2-27 13:20:24 | 显示全部楼层
    用V2不好吗?非得去折腾?
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|HS2V主机综合交流论坛

    GMT+8, 2024-5-10 20:15 , Processed in 4.140045 second(s), 40 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表