Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

serv00免费10年虚拟主机安装PM2和Vless #47

Open
Meekdai opened this issue Mar 15, 2024 · 3 comments
Open

serv00免费10年虚拟主机安装PM2和Vless #47

Meekdai opened this issue Mar 15, 2024 · 3 comments
Labels

Comments

@Meekdai
Copy link
Owner

Meekdai commented Mar 15, 2024

这几天在论坛里面看到一个免费10年的虚拟主机serv00。简单注册了一下就可以使用了,账号和密码会直接发到注册的邮箱里,我这里使用了Gmail的邮箱。下面就是记录一下自己搭建的东西。

配置

  1. 【开启权限】第一步需要做的就是开启可以运行自己应用的权限。Additional services -> Run your own applications -> Enabled 如果不开启这一项,自己的用户目录下的所有文件都无法添加可执行权限。
  2. 【进入SSH】通过注册邮箱里收到的信息,用MobaXterm登录,就可以看到下面的信息。
  ____                   ___   ___
 / ___|  ___ _ ____   __/ _ \ / _ \  ___ ___  _ __ ___
 \___ \ / _ \ '__\ \ / / | | | | | |/ __/ _ \| '_ ` _ \
  ___) |  __/ |   \ V /| |_| | |_| | (_| (_) | | | | | |
 |____/ \___|_|    \_/  \___/ \___(_)___\___/|_| |_| |_|
  Revolutionary Free Hosting

 =[ Basic account info ]=
         Username: Meekdai
             Plan: FREE
  Expiration date: 2034-03-13 02:18:41

安装PM2

PM2 是一款非常优秀的node.js进程管理工具。可以通过SSH用下面的指令一键安装。

bash <(curl -s https://raw.githubusercontent.com/k0baya/alist_repl/main/serv00/install-pm2.sh)

使用pm2,请直接用路径调用:~/.npm-global/bin/pm2,例如~/.npm-global/bin/pm2 list 就可以看到自己添加的应用。

另外,在SSH中通过下面的指令就可以开启页面监控功能。

~/.npm-global/bin/pm2 monitor

如果没有账号可以按照提示创建就可以,然后会给出登录页面的地址。
https://app.pm2.io/#/bucket/65f3be6efe520b3f5503d9aa
用浏览器登录就可以看到了,非常的方便。

安装Vless

Vless是一个代理节点应用,可以通过SSH用下面的指令一键安装。

cd ~/domains && git clone https://github.com/qwer-search/serv00-vless && mv -f serv00-vless vless && cd vless && rm -f README.md

在serv00的管理页面上开启一个端口,Port reservation -> Add port添加一个TCP的端口号。再在File Manager 里面找到Vless的文件下的app.js文件,修改里面的端口号为刚刚添加的端口号。类似下面修改为了12345

const port = process.env.PORT || 12345;

安装依赖

npm install

安装完毕后,使用PM2启动并守护vless进程:

~/.npm-global/bin/pm2 start app.js --name vless

接着去你的代理客户端软件中手动添加vless配置即可:

Key Value
地址 Panel 中 WWW Websites 选项卡里的你的 Domain name
端口 你放行的端口
用户 ID 37a0bd7c-8b9f-4693-8916-bd1e2da0a817
传输协议 ws
伪装域名 同地址
ws path /

上表没有给出的可以不填。

我用的客户端是v2rayA,按照这个配置就行。目前测试下来连接不是很稳定,延迟比较高,有1000ms以上。

自动化

听说serv00会不定时重启机器,所以我们把PM2添加开机自启。而且serv00每三个月内必须要有一次登录面板或者SSH连接,不然会删号,也可以通过一个脚本解决问题,接下来我会详细说明。

自动续期

新建 auto-renew.sh 脚本:

cat > auto-renew.sh << EOF
#!/bin/bash

while true; do
  sshpass -p '密码' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt 用户名@地址 "exit" &
  sleep 259200  #30天为259200秒
done
EOF

我是新建了一个opt目录,在opt目录下创建这个脚本。另外记得把其中的密码、用户名、ssh的地址修改为你自己的。

auto-renew.sh添加可执行权限:

chmod +x auto-renew.sh

使用PM2启动:

~/.npm-global/bin/pm2 start ./auto-renew.sh

这样就会每隔一个月自动执行一次SSH连接,自己SSH自己进行续期。

自动启动

在serv00的管理页面上找到Cron jobs选项卡,使用Add cron job功能添加任务,Specify time选择After reboot,即为重启后运行。Form type选择AdvancedCommand写:

/home/你的用户名/.npm-global/bin/pm2 resurrect

添加完之后,在SSH窗口保存PM2的当前任务列表快照:

~/.npm-global/bin/pm2 save

这样每次serv00不定时重启任务时,都能自动调用PM2读取保存的任务列表快照,恢复任务列表。如果在保存了任务列表快照后又改变了任务PM2的任务列表,需要重新执行pm2 save以更新任务列表。

参考链接:https://docs.serv00.com/
参考链接:https://blog.rappit.site/2024/01/27/serv00_logs/

@Meekdai Meekdai added the 日常 label Mar 15, 2024
@haso2007
Copy link

haso2007 commented Jul 1, 2024

经过几周的测试,serv00服务器会不定时杀光所有pm2程序,但并不会检测到重启服务。我直接强抽每分钟检测pm2是否同步,未同步则执行同步。脚本如下。实测效果更好。
#!/bin/bash

检查当前进程列表与保存的列表是否同步

output=$(/home/youraccount/.npm-global/bin/pm2 status)
if echo "$output" | grep -q "Current process list is not synchronized with saved list"; then
echo "Process list is not synchronized. Executing pm2 resurrect..."
/home/youraccount/.npm-global/bin/pm2 resurrect
else
echo "Process list is synchronized."
fi

@love117788
Copy link

除了自动化的部分没有配置,我按照流程操作成功了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants
@Meekdai @haso2007 @love117788 and others