纳须弥

海纳百川
有容乃大

Trojan+Nginx+WordPress个人博客,共用443端口!所有访问全部开启HTTPS,Trojan终极伪装! – V2RaySSR综合网

前言

Trojan工作在443端口,难倒了很多想自建博客又想使用Trojan服务的小伙伴们。今天我们一起来搭建一个Trojan外加WordPress博客。443按需分配。所有访问全部开启HTTPS。

如下图实现原理所示:stream通过识别域名的请求,分配相应的动作。若是识别到访问bozai.us,即打开本地的10240端口,通过Trojan客户端过来的合法请求丢给Trojan服务器监听的10242端口,其他不合法的全部丢给10240,也就是我们的web服务。v2ray同理。

因为作者就搭建了一个Trojan,还有很多小伙伴目前也是很喜欢Trojan。所以,作者本期的演示就去除了vmess类型的转发。相信大多数人不会在同一VPS上面搭建多种类型的节点,因为这个纯属浪费资源,没卵用。挂IP了你都不晓得是哪个服务引起的。

所以,我们的访问全程都是HTTPS的访问。

这个方案也同样适合于 宝塔+Trojan 共用443。

本期博客视频演示地址:点击播放

实现原理

在此感谢 程小白 提供的解决方案::Trojan 共用 443 端口方案

准备工作

我们安装的环境包括:MYSQL、PHP7.4、Nginx、Trojan等,所以对VPS的性能有一定的要求。相信机器性能差的也不会选择如此方案。

1、VPS一台内存1G左右,并重置CentOS7的系统(其他系统请自行搭建环境并部署)

2、域名一个并做好相应的解析(按需解析)

开始搭建

安装WordPress博客

这边感谢 atrandys 提供一键安装 WordPress 的脚本。(包含SSL证书申请、MYSQL安装、PHP7.4部署、NGINX安装设置等)

  1. yum install -y wget && wget https://raw.githubusercontent.com/atrandys/wordpress/master/wp\_install.sh && chmod +x wp\_install.sh && ./wp_install.sh

设置WordPress站点

设置站点的基本信息,并设置管理员用户及密码。保证站点能够正常的访问。

安装官方的Trojan服务

下面的脚本来自Trojan官方。

  1. sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"
  2. systemctl enable trojan #设置Trojan开启自动启动

修改Trojan配置

记录SSL证书路径,找到VPS目录 /etc/nginx/ssl ,里面.key是秘钥,.cer是证书文件。
找到VPS目录 /usr/local/etc/trojan/config.json
修改配置如下:(需要修改证书文件地址,密码)

  {
   "run_type":  "server",
   "local_addr":  "127.0.0.1",
   "local_port":  44321,
    "remote_addr":  "127.0.0.1",
    "remote_port":  80,
   "password":  ["password"],
  "log_level":  1,
"ssl":  {
  "cert":  "/etc/nginx/ssl/fullchain.cer",
  "key":  "/etc/nginx/ssl/bozai.us.key",
   "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":  ["http1.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":  ""
   }
 }

修改nginx配置

找到VPS文件 /etc/nginx/nginx.conf 修改配置信息如下

  user  nginx;
  worker_processes 1;
  error_log /var/log/nginx/error.log warn;
 pid /var/run/nginx.pid;
 events {
  worker_connections 1024;
 }

 stream {  
 # 这里就是 SNI 识别,将域名映射成一个配置名,请修改自己的一级域名 
  map $ssl_preread_server_name $backend_name {  
  bozai.us web;  
  t.bozai.us trojan;  
 # 域名都不匹配情况下的默认值 
  default web;  
   }  
 # web,配置转发详情 
  upstream web {  
  server 127.0.0.1:10110;  
  }  
 # trojan,配置转发详情 
  upstream trojan {  
  server 127.0.0.1:44321;
   }  
 # 监听 443 并开启 ssl_preread
  server {  
  listen 443 reuseport;  
  listen [::]:443 reuseport;  
  proxy_pass $backend_name;  
 ssl_preread on;  
  }
 }

 http {
  include /etc/nginx/mime.types;
  default_type  application/octet-stream;
 log_format  main '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';
  access_log /var/log/nginx/access.log  main;
  sendfile        on;
   #tcp_nopush     on;
  keepalive_timeout 120;
  client_max_body_size 20m;
   #gzip  on;
 include /etc/nginx/conf.d/*.conf;
 }

找到VPS文件 /etc/nginx/conf.d/default.conf ,修改为如下配置

 server {
  listen 80;
  server_name bozai.us;
   if  ($host ~*  "bozai.us$")  {
  rewrite ^/(.*)$ https://bozai.us/ permanent;
   }
  }

  server {
  listen 10110 ssl http2;
 server_name bozai.us;
  root /usr/share/nginx/html;
 index index.php index.html;
 ssl_certificate /etc/nginx/ssl/fullchain.cer;  
  ssl_certificate_key /etc/nginx/ssl/bozai.us.key;
  ssl_stapling on;
 ssl_stapling_verify on;
  add_header Strict-Transport-Security  "max-age=31536000";
 access_log /var/log/nginx/hostscube.log combined;
 location ~ \\.php$ {
 fastcgi_pass 127.0.0.1:9000;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
   }
  location /  {
  try_files $uri $uri/  /index.php?$args;
  }
}

搭建配置完毕,重启我们的NGINX服务和我们的Trojan服务。

systemctl restart nginx
systemctl restart trojan

后记

本教程只提供一种思路,其实对于NGINX的一些配置,大家可以更严谨一点。

本思路同样适用于 Trojan+宝塔面板+网站搭建 的方式。大家可以自行研究,实在不行,作者也是可以出一个教程。

本原创文章未经允许不得转载 | 当前页面:纳须弥 » Trojan+Nginx+WordPress个人博客,共用443端口!所有访问全部开启HTTPS,Trojan终极伪装! – V2RaySSR综合网

评论