Pterodactyl,以下简称翼龙面板。这是一款开源免费的游戏服务器管理面板,部署主要分为前端和后端(节点)两个部分。
这个面板的特色就是节点端全部容器化了,每个游戏运行相互都是独立的,安全性大幅度提高,另外前端的WEBUI功能非常丰富,可以非常方便的管理你的游戏服务器。
其实官网的安装文档写的算很详细了,有能力的可以直接去看官方的文档:
https://pterodactyl.io/
具体支持的游戏可以在项目页面下看:
https://github.com/pterodactyl/panel
这边我会把前后端搭建起来,然后部署一个CSGO服务器测试。
准备工作:
1.前端系统Debian10,任意虚拟化均可。
2.节点端系统Debian10,因为要使用Docker,OpenVZ这种类型的虚拟化无法搭建,需要注意一下。
3.一个独立域名。
首先我们来部署前端,安装常用工具以及Nginx/MariaDB/Redis:
apt -y install git curl unzip python-certbot-nginx nginx mariadb-server redis-server
这个程序目前只支持PHP7.2,我之前手贱装了个PHP7.3,后来发现依赖装不上,所以我这边先把PHP7.3给卸载了:
apt --purge remove php7.3-common
Debian10要装PHP7.2得添加sury源,其实自PHP5以来,Debian/Ubuntu官方存储库的PHP基本都是他打包的:
apt -y install apt-transport-https ca-certificates lsb-release wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list apt -y update
添加好源,现在我们就可以安装PHP7.2了:
apt -y install php7.2 php7.2-common php7.2-cli php7.2-cgi php7.2-fpm php7.2-gd php7.2-mysql php7.2-sqlite3 php7.2-pgsql php7.2-opcache php7.2-mbstring php7.2-curl php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-intl php7.2-json php7.2-bz2 php7.2-bcmath
安装作曲家:
curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/bin/composer
初始化MySQL:
mysql_secure_installation
登录到MySQL的Shell:
mysql -u root -p
创建数据库/用户/授权:
CREATE DATABASE panel CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY '设置你的数据库用户密码'; GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION; FLUSH PRIVILEGES; quit
拉取项目文件/给予正确的权限:
cd /var/www wget https://github.com/pterodactyl/panel/releases/download/v0.7.14/panel.tar.gz tar -xzvf panel.tar.gz mv panel-0.7.14 pterodactyl chown -R www-data:www-data pterodactyl cd pterodactyl chmod -R 755 storage/* bootstrap/cache/
复制一份配置文件/安装依赖包/生成Key:
cp .env.example .env composer install --no-dev --optimize-autoloader php artisan key:generate
走安装流程(其实接下来这几个artisan控制台的命令就是在辅助你去配置.env):
php artisan p:environment:setup
按如图填写:
之前配置的都是Redis,所以接下来会让我们填写Redis连接相关的东西,还是一样按如图填写即可:
注:Redis默认是空密码,这里直接回车就行了。你也不用担心安全问题,Redis默认只监听在本地。
执行如下命令开始配置MySQL数据库:
php artisan p:environment:database
按如图填写即可:
初始化数据库:
php artisan migrate --seed
按如图填写即可:
这里还有一个配置SMTP发信的命令,但这边我先忽略掉不执行,实际上等搭建完,可以自己在WEBUI后台设置:
php artisan p:environment:mail
创建管理员账号:
php artisan p:user:make
按如图填写即可:
新建计划任务:
crontab -e
写入:
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
新建systemd服务文件:
nano /etc/systemd/system/pteroq.service
写入:
[Unit] Description=Pterodactyl Queue Worker After=redis-server.service [Service] User=www-data Group=www-data Restart=always ExecStart=/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3 [Install] WantedBy=multi-user.target
启动pteroq:
systemctl start pteroq.service systemctl enable pteroq.service
顺带把需要用到的软件都设置一下开机启动:
systemctl enable nginx systemctl enable mariadb systemctl enable php7.2-fpm systemctl enable redis-server
新建Nginx站点配置文件:
nano /etc/nginx/conf.d/pterodactyl.conf
写入:
server { listen 80; server_name panel.koko.cat; index index.html index.htm index.php; root /var/www/pterodactyl/public; client_max_body_size 128g; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
签SSL证书:
certbot --nginx --agree-tos --no-eff-email
签发流程如下:
前端这部分就完成了。现在挂个梯子打开你的站点域名看看能不能访问并登录到面板,正常情况下你应该看到下图的界面,不能的话自己排错吧:
注意这里我说了要挂个梯子访问,因为这个登录界面默认使用了Google的验证码,都懂的。其实你也可自己在.env里面把这个功能关掉,或者登录到后台后,通过后台关闭:
首先安装Docker:
curl -sSL https://get.docker.com/ | sh systemctl enable docker
接着安装Nodejs:
apt -y install build-essential curl -sL https://deb.nodesource.com/setup_10.x | bash - apt -y install nodejs
再装一下这个Unzip,后端启动的时候依赖它:
apt -y install unzip
自己先解析好一个二级域名,然后安装Certbot并签发SSL证书:
apt -y install certbot certbot certonly --standalone --agree-tos --no-eff-email -d node1.koko.cat
现在就可以安装后端了:
mkdir -p /srv/daemon /srv/daemon-data cd /srv/daemon curl -L https://github.com/pterodactyl/daemon/releases/download/v0.6.12/daemon.tar.gz | tar --strip-components=1 -xzv npm install --only=production
注意:一般的VPS都是直接把硬盘容量全部划分给根(也就是/)但如果你的机器大部分硬盘容量都挂载到其他的目录了,例如home,那这边新建文件夹的时候,就把srv改成home吧,总而言之看你自己挂载的目录哪个空闲空间大就用哪个。
现在我们需要登录到前端面板添加节点,首先点击Locations,新建:
完成之后点击Nodes,按照下图的示例添加你的节点:
之后点击Allocation,添加服务器公网IP以及端口,这里的端口我们可以直接设置端口范围,这样一次性就能创建多个端口了:
然后点击Configuration,复制里面那一段配置文件信息:
在节点端新建配置文件:
nano /srv/daemon/config/core.json
写入你刚才复制的这一段配置信息,例如我这样:
现在执行如下命令启动节点:
npm start
如果正常,你将看到类似如下图回显:
正常的话就Ctrl+C退出运行,然后将其放到后台运行,新建systemd服务文件:
nano /etc/systemd/system/wings.service
写入:
[Unit] Description=Pterodactyl Wings Daemon After=docker.service [Service] User=root #Group=some_group WorkingDirectory=/srv/daemon LimitNOFILE=4096 PIDFile=/var/run/wings/daemon.pid ExecStart=/usr/bin/node /srv/daemon/src/index.js Restart=on-failure StartLimitInterval=600 [Install] WantedBy=multi-user.target
启动以及设置开机启动:
systemctl start wings systemctl enable wings
现在我们可以尝试创建一台CSGO服务器了,首先我们需要打开下面的网址生成一个Steam服务器令牌:
https://steamcommunity.com/dev/managegameservers
如图所示就是生成好了,复制这一串代码:
回到面板点击Servers,按照下图填写基本信息,然后附加一个端口给服务:
设置这台服务器可用的资源,CSGO服务器硬盘至少25G:
选择你要搭建的游戏类型:
最后在下面这块粘贴你之前生成的Steam服务器令牌:
等待片刻,你的CSGO服务器应该就部署好了:
点击进去可以在线管理这台服务器,还支持中文:
测试服务器正常,可以正常连接并玩耍。。
最后稍微提一下,这个面板可以和WHMCS对接,具体的自己Google,这里就不多说了。。
最新评论
5211314
能不能教我 一点不会