Trojan+宝塔面板,完美运行!
上期视频我们讲到了如何利用Nginx的SNI来分流Trojan的相关流量。间接实现了建站和Trojan完美运行。视频观看地址:点击播放
视频发布以后,很多小伙伴在咨询宝塔面板+Trojan的搭建方式,需要和网站一起稳定的运行。
其实上期视频作者也是抛砖引玉,希望大家衍生出更多的玩法。既然原理在哪儿,我们实现起来就很简单了。
这期的教程原理依然是引用的 “程小白” 的 “Trojan共用443端口方案” 这篇文章。
本期视频教程:点击播放
实现原理
在上期的博客内容中,作者也是写的很详细了 Trojan+Nginx+WordPress个人博客,共用443端口!
大家看到下面的这批代码,应该就能理解了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | # 流量转发核心配置 stream { # 这里就是 SNI 识别,将域名映射成一个配置名 map $ssl_preread_server_name $backend_name { 建站的域名 web; 访问V2y服务的域名 vmess; 访问Trojan服务的域名 trojan; # 域名都不匹配情况下的默认值 default web; } # web,配置转发详情 upstream web { server 127.0 . 0.1 : 10240 ; } # trojan,配置转发详情 upstream trojan { server 127.0 . 0.1 : 10241 ; } # vmess,配置转发详情 upstream vmess { server 127.0 . 0.1 : 10242 ; } # 监听 443 并开启 ssl_preread server { listen 443 reuseport; listen [::]: 443 reuseport; proxy_pass $backend_name; ssl_preread on; } } |
准备工作
1、VPS一台内存最好1GB左右,重置任意可安装宝塔面板的系统(建站推荐CentOS7X以上,或者是CentOS8X)
2、一级域名一个做好相应的解析(今天作者解析的域名为:V2yssr.net , www.V2yssr.net)
(分别解析主域名和www的二级域名到VPS主机。)
实现的效果
我们访问 V2yssr.net 及 www.V2yssr.net 均能使用 https 的方式,也就是正常访问我们的博客。
使用Trojan客户端连接 www.V2yssr.net 可以正常上网。
教程开始
1、连接VPS并安装宝塔面板
以下一键安装宝塔面板的代码仅仅局限CentOS系统的用户,其他用户请访问 这里 查看安装命令
1 | yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh |
安装完毕以后,请自行记录宝塔面板的登录地址,并登录宝塔面板。
2、安装建站需要的必要插件
登录以后,在弹出的窗口环境中选择自己需要安装的环境。
(若是使用 WordPress 的博客,请依次安装 Nginx1.18、MySQL5.6、PHP7.4,其他非必要环境作者不想安装就略过了)
3、创建网站
因为作者使用 WordPress 博客的 CMS,所以选择宝塔的一键部署。
分别点击 “软件商店” – “一键部署” ,找到 WordPress 并选择一键部署,填写我们刚才解析好的两个域名。
4、设置网站数据库并配置网站
部署完毕以后,输入我们绑定的域名进行数据库配置及网站设置。不明白请查看 视频教程
5、修改默认的 Nginx 配置
找到 “软件商店” – “已安装” – “Nginx1.18”,设置 Nginx 的配置信息
在 http 模块前面增加如下代码,按照自己的需求进行更改:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | stream { # 这里就是 SNI 识别,将域名映射成一个配置名 map $ssl_preread_server_name $backend_name { V2yssr.net web; www.V2yssr.net trojan; # 域名都不匹配情况下的默认值 default web; } # web,配置转发详情 upstream web { server 127.0.0.1:4433; } # trojan,配置转发详情 upstream trojan { server 127.0.0.1:10110; } # 监听 443 并开启 ssl_preread server { listen 443 reuseport; listen [::]:443 reuseport; proxy_pass $backend_name; ssl_preread on; } } |
6、在线申请 SSL 证书
在网站设置里面,勾选两个绑定的域名,并为其申请 SSL 证书和开启强制 Https 的访问。
7、修改网站的Nginx配置文件
在网站设置里面开启 “伪静态” 为 WordPress ,然后转到配置文件设置。
删除在 server 模块下面的 server_name 里面的 二级域名,只保留主域名 不会请看 视频教程
更改 server 模块下面的443端口为 4433。
在原有的 server 模块下面增加如下代码(请自行替换域名)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | server { listen 10111; server_name www.V2yssr.net; location / { if ($http_host !~ "^V2yssr.net$" ) { rewrite ^(.*) https: //V2yssr.net$1 permanent; } if ($server_port !~ 4433){ rewrite ^(.*) https: //V2yssr.net$1 permanent; } proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } access_log logs/aaa.com_access.log; } |
更改完毕以后,请回到 Nginx 设置界面,重启 Nginx 服务。
8、安装官方Trojan服务
1 | sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)" |
设置Trojan开启自动启动
1 | systemctl enable trojan #设置Trojan开启自动启动 |
9、修改Trojan配置文件
找到VPS以下文件 /usr/local/etc/trojan/config.json 修改为如下代码:(自行更改密码和域名证书路径)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | { "run_type" : "server" , "local_addr" : "127.0.0.1" , "local_port" : 10110, "remote_addr" : "127.0.0.1" , "remote_port" : 10111, "password" : [ "321321321" ], "log_level" : 1, "ssl" : { "cert" : "/www/server/panel/vhost/cert/V2yssr.net/fullchain.pem" , "key" : "/www/server/panel/vhost/cert/V2yssr.net/privkey.pem" , "key_password" : "" , "cipher" : "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384" , "cipher_tls13" : "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384" , "prefer_server_cipher" : true , "alpn" : [ "http/1.1" ], "alpn_port_override" : { "h2" : 81 }, "reuse_session" : true , "session_ticket" : false , "session_timeout" : 600, "plain_http_response" : "" , "curves" : "" , "dhparam" : "" }, "tcp" : { "prefer_ipv4" : false , "no_delay" : true , "keep_alive" : true , "reuse_port" : false , "fast_open" : false , "fast_open_qlen" : 20 }, "mysql" : { "enabled" : false , "server_addr" : "127.0.0.1" , "server_port" : 3306, "database" : "trojan" , "username" : "trojan" , "password" : "" , "key" : "" , "cert" : "" , "ca" : "" } } |
更改完毕以后,上传并保存,然后重启Trojan服务
- systemctl restart trojan
10、搭建和设置完毕
现在,你就可以连接你的Trojan节点了,网站也可以正常的访问了。
后记
本站所有文章禁止转载至大陆地区可访问的网站,相关的法律责任作者无须言明。此申明需请烂熟于心。龙的传人需自律,有损国家利益和民族团结的事情,坚决不做!望各位珍重!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】