trojan-go相比GFW版(原版),在拓展了更多功能的情况下兼容GFW版配置文件格式,在传输性能、优化内存占用方面也有提升。

trojan-go项目地址

https://github.com/p4gefau1t/trojan-go

后端介绍

我的第一个golang练手项目,用于对接 sspanel 面板的 trojan-go 后端,仅供学习交流测试使用。大家在免费使用的同时,请多多提交使用问题和bug,将问题留言发给我。
后端安装一共两个步骤:下载使用trojan-go、下载使用后端。我把后端命名为:mebi,我所写的也正是这个,mebi主要功能是将trojan-go和面板sspanel对接。
因为免费版不提供一键脚本,所以要求使用者有一定的linux技术和动手能力。目前只支持数据库对接。

测试环境

Amazon EC2、Vultr、Lindo 测试通过。

可以实现的功能

  • 节点服务器信息上报
  • 节点服务器流量上报
  • 节点服务器流量限制
  • 用户流量上报
  • 用户动态增删
  • 用户在线ip数上报
  • 支持用户分组
  • 支持用户限速
  • 支持用户ip数限制
  • 支持获取用户真实ip

服务器信息包括:服务器的负载、运行时间;服务器流量只上报出站流量;用户限速和ip数(设备数)限制是trojan提供的功能,是否有效需要自测,不归我管。其实设备数限制并没有多大意义,一台路由器下接100台设备,你看到的也就一个ip而已。

无法实现的功能

  • 审计规则
  • 封禁ip

部署

安装必要软件

# Debian/Ubuntu系统
apt-get install wget unzip -y
# CentOS系统
yum install wget unzip -y

创建必要目录

mkdir /usr/local/trojan
mkdir /var/log/trojan
mkdir -p /etc/trojan/pem

下载trojan

默认安装linux 64位,其他环境请转至:此处 下载

wget -O /usr/local/trojan/trojan-go.zip https://github.com/p4gefau1t/trojan-go/releases/download/v0.8.2/trojan-go-linux-amd64.zip
unzip -d /usr/local/trojan/ /usr/local/trojan/trojan-go.zip

添加trojan-go到环境变量

vi /etc/profile.d/customer.sh
export PATH=$PATH:/usr/local/trojan

使其立即生效

source /etc/profile

配置trojan

写一个trojan的配置文件

vi /usr/local/trojan/config.json
{
    "run_type": "server",
    "local_addr": "0.0.0.0",
    "local_port": 443,
    "remote_addr": "127.0.0.1",
    "remote_port": 80,
    "log_level": 1,
    "log_file": "/var/log/trojan/info.log",
    "password": [
        "pwd001", "pwd002"
    ],
    "ssl": {
        "cert": "/etc/trojan/pem/server.cer",
        "key": "/etc/trojan/pem/server.key",
        "sni": "域名"
    },
    "api": {
        "enabled": true,
        "api_addr": "127.0.0.1",
        "api_port": 10001
    },
    "router": {
        "enabled": true,
        "block": [
            "geoip:private"
        ],
        "geoip": "geoip.dat",
        "geosite": "geosite.dat"
    }
}

上面只做简单的配置介绍,你还可以添加更多的功能,如:websocket,路由控制,嵌套shadowsocks等,但必须:
1、必须配置api,端口设定必须为10001
2、必须搭建web服务,并使用remote_port指向其端口。
3、必须有与sni域名相对应的ssl证书。

local_port 为trojan的监听端口,默认是443。可以换成其他端口,但你需要手动修改面板前端的端口已保持一致。修改其他端口还能实现443端口复用。
申请ssl证书,把公钥和秘钥放到/etc/trojan/pem目录下并重命名为server.cer和server.key。快速申请ssl证书一键脚本看这里。


trojan支持websocket传输,但我测试8.0版本开启websocket无法会导致api无效,所以对接面板就先不要用8.0及以上版本开启websocket。

运行trojan

因为加入了系统环境,运行直接可以使用如下,使用nohup命令将其放至后台运行。

trojan-go -config /usr/local/trojan/config.json

安装vnstat

mebi后端通过vnstat获取节点服务器流量,优点是服务器重启不会丢失流量信息,能够以任一一天按月统计流量。

# CentOS
yum install vnstat -y
# Debian/Ubuntu
apt-get install vnstat -y

默认vnstat 1号为每月的统计日。你还可以设定统计日为10号,那么按月统计为2月10号——3月9号(包含9号全天),这就很方便流量重置日就是账单日的服务器。修改统计日方法:打开 /etc/vnstat.conf

MonthRotate 1

修改1为你想要的流量充值重置日,然后重启vnstat

service vnstat restart

提醒一下:面板里填的流量重置日无效,必须修改vnstat的才有效,对于服务器不是无限流量的尤其要重视。另外 MonthRotate 只能是1-28。

安装后端

mkdir /usr/local/mebi
wget --no-check-certificate -O /usr/local/mebi/mebi.tar.gz https://www.mebi.me/room/software/mebi.tar.gz
tar -xvf /usr/local/mebi/mebi.tar.gz -C /usr/local/mebi/

同样把后端加入系统环境中

vi /etc/profile.d/customer.sh
export PATH=$PATH:/usr/local/trojan:/usr/local/mebi

使其立即生效

source /etc/profile

配置后端配置文件

新建 /etc/trojan/config.conf 文件

vi /etc/trojan/config.conf

写入下面配置,暂时只支持数据库对接,所以要开放面板服务器的数据库端口。

db_host=127.0.0.1                           # 数据库地址
db_port=3306                                 # 数据库端口
db_name=test                               # 数据库名
db_user=test                                 # 数据库用户名
db_password=abcd1234                        # 数据库密码

node_id=1                                    # 节点id
interval=60                                  # 监听频率 单位秒
     

运行后端

mebi

显示如下信息表示成功。nohup将mebi放入后台即可,实测内存占用很少。

20:20:20 [info] current user num: 588

Last modification:April 30th, 2021 at 12:57 pm
如果觉得我的文章对你有用,请随意赞赏