基础知识

Typecho
一个国内开发者开发的,基于PHP、内核强健、扩展方便、体验友好的轻量级开源博客程序。
官网:Typecho Official Site

Trojan
一种将互联网通信流量伪装https流量,从而有效防止流量被检测和干扰的代理协议。

https
HyperText Transfer Protocol Secure,又称为HTTP over TLS、HTTP over SSL或HTTP Secure,是一种通过计算机网络进行安全通信的传输协议,默认使用443端口。

443端口
https 请求的默认端口,搭建开启安全访问的 typecho 博客和 trojan 服务器都需要使用443端口。

教程目的

在一台VPS上同时搭建 typecho 博客和 trojan 服务

  • 以域名 example.comwww.example.com 为例:

    • 博客 example.com 套用cdn服务以达到隐藏VPS真实IP、加速博客访问速度的目的;
    • 博客example.comwww.example.com 均能通过 https 访问;
    • Trojan 服务器 www.example.com 在 Quantumult X 等工具上能正常运行。

选购域名和服务器

1.域名购买

国内域名需要备案,so:

  • 免费域名推荐 freenom.com
  • 付费域名推荐 godaddy.com

2.VPS购买

不怕跑路,哪里买都行;
希望稳定推荐 腾讯云阿里云等大厂,推荐香港、新加坡、美国等地的机器。

推荐配置:CentOS7X+、内存1G+、硬盘20G+

域名解析

1.使用 Cloudflare 免费服务

  • 点击 添加站点/Add a Site ,输入你的域名 example.com,点击 添加站点/Add Site
  • 选择 Free 免费开始使用 - 继续

2.修改网站 DNS 服务器

  • Freenom 设置

    • Manage Domain - Management Tools - Nameservers - Use custom nameservers
    • 修改 Nameserver1 为 gina.ns.cloudflare.com
    • 修改 Nameserver2 为 jason.ns.cloudflare.com
    • 完成后,点击 Change Nameservers 确定,几分钟后收到来自Cloudflare的网站成功激活邮件。
  • Godaddy 设置

    • 管理域名 - DNS - 管理区域 - 搜索你自己的域名 example.com
    • 域名服务器 - 使用自定义域名服务器 - 更改 - 使用自己的域名服务器
    • 修改 Nameserver1 为 gina.ns.cloudflare.com
    • 修改 Nameserver2 为 jason.ns.cloudflare.com
    • 点击保存,几分钟后收到来自Cloudflare的网站成功激活邮件。

3.在 Cloudflare 解析域名

  • 登陆Cloudflare,选择新添加的网站,点击 DNS
  • 新增A记录,Name 输入 @IPv4地址 输入你的 VPS IP地址,关闭代理并保存;
  • 新增A记录,Name 输入 wwwIPv4地址 输入你的 VPS IP地址,关闭代理并保存;

通过宝塔面板安装 Typecho

1.DD系统(非必要,自行斟酌)

获取vps root权限后,推荐使用一键DD命令,选择对应的系统进行纯净重装:

wget --no-check-certificate -O AutoReinstall.sh https://git.io/AutoReinstall.sh && bash AutoReinstall.sh

⚠️注意记录新系统登陆密码,CentOS 默认密码为 Pwd@CentOS、Debain默认密码为 Pwd@Linux

  • 出现Not Found grub.错误提示,使用以下命令解决:
grub2-mkconfig -o /boot/grub2/grub.cfg
  • dd结束后,用新密码重新登陆vps,并使用 passwd 命令重置密码

2.安装宝塔面板

  • 重新连接vps,运行宝塔面板安装命令。
    以下宝塔一键安装命令仅限CentOS系统,其它系统安装命令请查看官网安装方法
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

⚠️安装完毕会提示宝塔面板登录地址、用户名及密码,记录下来登录宝塔面板

  • 进入宝塔面板后会提示安装LNMP,选择 LNMP(推荐)
    PHP版本选择 PHP 7.1 ,勾选极速安装 ,点击 一键安装 后等待安装完成。
  • 绑定宝塔账号,点击 面板设置 ,自定义修改 安全入口面板用户面板密码
    若未修改安全入口、面板用户及密码,可在SSH连接VPS后使用 /etc/init.d/bt default 命令查看面板登陆地址、用户名和密码

3.创建网站

  • 点击 网站 - 添加站点,域名填写我们已经解析好的两个域名;
  • 数据库 选择 MySQL-utf8 ,账号密码默认;
  • 其它都可默认,确定 提交
    ⚠️记录下数据库名数据库用户名(备用)、密码(备用)
  • 网站创建完成后,点击左侧栏中 数据库 进入,点击 root密码
    ⚠️查看并记录 root 密码

4.下载并安装Typecho

  • 进入Typecho官网下载正式版安装包;
  • 在宝塔面板点击 网站 - 根目录 进入后,删除当前全部文件,然后将下载好的 Typecho 文件压缩包上传至网站目录并解压,得到 build 文件夹;
  • 把 build 文件夹中的文件全部复制到根目录中,然后删除 build 文件夹 和 Typecho 压缩包;

5.配置 Typecho

  • 浏览器访问 example.com/install.php ,进入配置页面。

    • 数据库用户名 默认 root;
    • 数据库密码 需填写 数据库root密码;
    • 数据库名记录下来的数据库名
  • 创建管理员账号,设置用户名和密码

6.修改默认Nginx配置

  • 宝塔面板内找到:软件商店已安装Nginx - 设置 - 配置修改
  • 在 http 模块前面增加如下代码并保存
    ⚠️请将代码中的域名对应替换为你自己的域名
stream {
    map $ssl_preread_server_name $backend_name {
        example.com web;
        www.example.com trojan;
        default web;
    }
 
    upstream web {
        server 127.0.0.1:4433;
    }
 
    upstream trojan {
        server 127.0.0.1:10110;
    }
 
    server {
        listen 443 reuseport;
        listen [::]:443 reuseport;
        proxy_pass  $backend_name;
        ssl_preread on;
    }
}

7.为域名申请证书并修改网站Nginx 配置文件

点击网站 - 设置 ,进入设置界面

  • 域名管理 界面下,点击 SSL - Lets Encrypt ,勾选绑定的两个域名,点击 申请 证书;
    申请成功后打开界面右上角 强制HTTPS 开关
  • 点击 伪静态 ,选择配置为 typecho - 保存
  • 点击 配置文件 ,找到 server 模块:

    • 找到 server 下的 server_name ,把二级域名删除,只保留主域名;
    • 找到 server 下的 listen 443 ssl http2 ,将443改为为 4433;
    • 找到 server 下的 if ($server_port !~ 443) ,将443改为为 4433。
  • 在原有的 server 模块下面增加如下代码并保存
    ⚠️请将代码中的域名对应替换为你自己的域名
server
{
    listen 10111;
    server_name www.example.com;
    location / {
        
        if ($http_host !~ "^example.com$") {
          rewrite  ^(.*)    https://example.com$1 permanent;
        }
 
       if ($server_port !~ 4433){
        rewrite ^(.*)   https://example.com$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 服务。
  • 刷新 Typecho 博客地址,https 成功开启。

8.为主域名开启Cloudflar CDN 服务

返回 Cloudflare ,点击网站进入设置页面

  • 点击 DNS ,将主域名 example.com 的代理打开
    (⚠️黄色云朵点亮)
  • 点击 SSL/TLS ,将 加密模式 选择为 完全(严格)/FULL 模式

安装 Trojan 服务

1.官方一键安装命令

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"

2.设置Trojan开启自动启动

systemctl enable trojan

3.修改Trojan配置文件

  • 在宝塔面板点击 文件 ,进入根目录,找到以下文件
 /usr/local/etc/trojan/config.json
  • 点击 编辑 ,全选内容,替换为以下代码:
{
    "run_type": "server",
    "local_addr": "127.0.0.1",
    "local_port": 10110,
    "remote_addr": "127.0.0.1",
    "remote_port": 10111,
    "password": [
        "example"
    ],
    "log_level": 1,
    "ssl": {
        "cert": "/www/server/panel/vhost/cert/example.com/fullchain.pem",
        "key": "/www/server/panel/vhost/cert/example.com/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": ""
    }
}
  • password 下的 example 替换为你自己的 Troajn密码
    sslcertkey 路径中的 example.com 替换为你自己的域名
  • 点击 保存 ,命令重启 Trojan 服务
systemctl restart trojan
  • 安装BBR加速(可选)
wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

4.在 Quantumult X 内添加 Trojan 节点

  • 点击 Qutumult X 右下角 小风车 - 配置文件 - 配置片段 - 节点
  • 在打开的文档界面输入
trojan=www.example.com:443, password=你的密码, over-tls=true, tls-verification=false, fast-open=true, udp-relay=false, tag=给自己的节点命名

⚠️将代码中的域名及密码替换为你自己的

  • 点击 保存 ,文件名随意,例如 我的节点
  • 节点 - 引用(订阅) - 右上角 添加

    • 标签 随意填写,例如:自用
    • 资源路径 填写保存的文件名,例如:我的节点
  • 保存,enjoy!

可能遇到的一些问题

1.Typecho 管理后台能访问但无法登陆

  • 症状:

Typecho 域名套用 Cloudflare CDN 服务,且强制开启 https 访问;
正常打开 Typecho 管理后台,输入用户名和密码点击登陆,页面刷新一下,无法登陆。

  • 解决办法:

进入宝塔面板点击 网站 - 根目录 ,在 /example.com 下找到 config.ini.php 文件并打开,在文件内复制粘贴以下内容

/** 开启HTTPS */
define('__TYPECHO_SECURE__',true);

2.Typecho 无法开启伪静态

  • 症状:

无法隐藏 独立页面:example.com/index.php/example.html 中的 index.php

  • 解决办法:

    • 在 Typecho 后台配置伪静态

    进入后台,设置 - 永久链接

    • 是否启用地址重写功能 ,选择 启用
    • 自定义文章路径 ,选择 wordpress风格 /archives/{slug}.html
    • 保存时如果提示 重写功能检测失败... ,选择 如果你仍然想启用此功能,请勾选这里 并继续
    • 通过apache配置伪静态

    进入宝塔面板,点击 网站 - 根目录 ,在 /example.com 下新建空白文件并命名为 .htaccess ,双击打开文件,复制以下代码至文件并保存

    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /index.php/$1 [L]
    </IfModule>
最后修改:2021 年 08 月 20 日
如果觉得我的文章对你有用,请随意赞赏