搭建一个多用户管理的 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
提示问题时依次选择为:N
、Y
、Y
、Y
、Y
进入 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 时,就是无限流量。
在客户端使用时,注意密码要设置为:账户用户名:用户密码