Trojan Panel 配置


搭建一个多用户管理的 Trojan 面板,用于多用户管理和流量管理。这个配置教程使用的是 Debian 9 系统。Ubuntu 也可以,但有版本要求,Ubuntu>=16.04,Debian>=9。

我使用的 VPS 是谷歌云,关于谷歌云的免费申请可以去翻我之前的文章。

安装 bbr plus 加速

wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

更新系统等操作

apt-get update
apt -y install software-properties-common apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://mirror.xtom.com.hk/sury/php/apt.gpg
wget -O /etc/apt/trusted.gpg.d/php.gpg https://mirror.xtom.com.hk/sury/php/apt.gpg
sh -c 'echo "deb https://mirror.xtom.com.hk/sury/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
apt-get update

安装基础依赖

apt install nginx curl socat sudo git unzip wget -y

配置 Nginx

备份 nginx.conf,并创建编辑新的 nginx.conf 文件

备份:

mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.def

创建新的 nginx文件并编辑

vim /etc/nginx/nginx.conf

填入以下配置并保存

user  root;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
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;
    server {
        listen       80;
        server_name  你的域名;
        root /usr/share/nginx/html;
        index index.php index.html index.htm;
    }
}

重启 Nginx

systemctl restart nginx

在浏览器中输入域名,验证 Nginx 是否可以正常运行

安装 Trojan

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

安装 acme.sh 并申请证书

curl https://get.acme.sh | sh

关闭 ssh,重新连接

验证域名

acme.sh --issue -d 域名 --nginx

申请签发证书

acme.sh --installcert -d 域名 --key-file /usr/local/etc/trojan/private.key --fullchain-file /usr/local/etc/trojan/certificate.crt

设置证书自动续签,并设置文件夹权限

acme.sh --upgrade --auto-upgrade

chmod -R 755 /usr/local/etc/trojan
apt-get update

apt upgrade

安装 PHP7.2、MariaDB

apt install -y  mariadb-server php7.2-fpm php7.2-mysql php7.2-cli php7.2-xml php7.2-json php7.2-mbstring php7.2-tokenizer php7.2-bcmath

配置 MariaDB 数据库

设置密码:

mysql_secure_installation

提示问题时依次选择为:NYYYY

进入 MariaDB

mysql -u root -p

创建 trojan 数据库以及 trojan 数据库用户

CREATE DATABASE trojan;

GRANT ALL PRIVILEGES ON trojan.* to trojan@'%' IDENTIFIED BY '密码';

密码和上面设置的密码一致即可

重载权限并退出 MariaDB 数据库

FLUSH PRIVILEGES;

quit

安装 PHP 软件包管理系统

切换到 www 目录

cd /var/www
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer 

安装 Node.js 和 npm

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
apt install -y nodejs

查看是否成功安装 Node.js,如果成功会显示其版本号

查看 node:
node -v

查看 npm:
npm -v

安装 Trojan-Panel

拉取 trojan-panel 项目:

git clone https://github.com/trojan-gfw/trojan-panel.git

切换到项目目录:

cd /var/www/trojan-panel

安装:

composer install

npm install

配置 Trojan-Panel 运行环境

cp .env.example .env
php artisan key:generate

编辑 .env 文件,修改下面的参数

APP_URL=https://域名

DB_PASSWORD=数据库密码

运行下列代码,在提示框中输入 yes

php artisan migrate

设置文件夹权限

chown -R www-data:www-data /var/www/trojan-panel

再次配置 Nginx

删除 nginx.conf,并恢复备份的 conf 文件

rm -rf /etc/nginx/nginx.conf
mv /etc/nginx.conf.def /etc/nginx/nginx.conf

编辑 default 配置文件

vim /etc/nginx/sites-available/default

填入以下内容,注意修改 域名ip地址 为自己的域名和 VPS 的 ip 地址。

server {
listen 127.0.0.1:80 default_server;
 
server_name 域名
 
location / {
proxy_pass https://github.com;
}
 
location /config {
alias /var/www/trojan-panel/public;
index index.php;
try_files $uri $uri/ @config;
 
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
 
location ~ /\.(?!well-known).* {
deny all;
}
}
 
location @config {
rewrite /config/(.*)$ /config/index.php?/$1 last;
}
 
}
 
server {
listen 127.0.0.1:80;
 
server_name ip地址;
 
return 301 https://域名$request_uri;
}
 
server {
listen 0.0.0.0:80;
listen [::]:80;
 
server_name _;
 
return 301 https://$host$request_uri;
}

修改 Trojan 配置文件

vim /usr/local/etc/trojan/config.json

修改内容如下:

删除多余的密码选项,并修改为上面设置的 数据库密码

"password": {  
"数据库密码"
}

修改证书路径,也就是 ssl 中的 cert 和 key,如下:

"ssl": {
"cert": "/usr/local/etc/trojan/certificate.crt",
    "key": "/usr/local/etc/trojan/private.key",
}

修改 mysql 的内容如下:

"mysql": {
"enabled": true,
    "server_addr": "127.0.0.1",
"server_port": 3306,
    "database": "trojan",
    "username": "trojan",
    "password": "数据库密码"
}

重启 Trojan 和 Nginx

systemctl restart trojan nginx

至此,搭建完成。

查看并设置

在浏览器输入 域名/config,查看是否可以访问 Trojan-Panel,如果可以访问,那么就说明搭建成功了。

注册账户,第一个账户为管理员账户。

注册成功后,可以设置账户的流量,选项为 Quota,设置为 -1 时,就是无限流量。

在客户端使用时,注意密码要设置为:账户用户名:用户密码