Serv00 提供三个端口,可以安装软件,浅试下可以使用,就是延迟感人。
一、配置DevilWEB
根据Serv00 发送的邮件账号信息,登录DevilWEB
1、设置端口
点击添加端口,可以添加3个
添加完成后如下
2、查看设置IP
给自己的域名DNS解析添加A记录 x.xx.com,方便后续日常使用
二、配置服务端,安装frp
根据Serv00 发送的邮件信息,登录SSH
1、安装软件frp,frp 项目地址,执行以下命令,下载frp
wget https://github.com/fatedier/frp/releases/download/v0.35.0/frp_0.35.0_freebsd_amd64.tar.gz
tar -zxvf frp_0.35.0_freebsd_amd64.tar.gz && mv frp_0.35.0_freebsd_amd64 frp && chmod 777 frp
此时会在当前文件夹生成frp 文件夹
2、配置frps.ini
进入frp 文件夹
[common]
bind_port = A #这个替换成上面配置的A端口
bind_addr = 0.0.0.0
# 日志的输入方式,如果设置log_file的话日志就输出到日志文件中保存在硬盘中,需要注意绝对路径和相对路径,还要注意Linux系统和Windows系统下 / 和 的区别。
log_file = /home/<code class="notranslate">你的用户名</code>/frp/logs/frps.log #这个替换路径
# 日志的记录级别,分为debug, info, warn, error四级,日志保存的天数,默认3天
log_level = info
log_max_days = 7
# 特权模式。
privilege_mode = true
privilege_allow_ports = B,C #这个替换成上面配置的B,C端口
token=xxxxxxxx
# 心跳配置,默认的心跳配置时间是30
heartbeat_timeout = 90
#客户端与服务端时间相差验证
authentication_timeout = 0
#连接池的数量,如果frp内网穿透客户端设置的连接池的数量大于下面的数值,就会修改frp客户端的连接池为下面的数值
max_pool_count = 100
3、配置frpc.ini
[common]
server_addr = 127.0.0.1
server_port = A #这个替换成上面配置的A端口
token = xxxxxxxx #这个输入上面设置的token
[route_webs_visitor]
type = stcp
role = visitor
server_name = route_webs
sk = 123456 #这个输入服务sk
bind_addr = 0.0.0.0
bind_port = B #这个替换成上面配置的B端口
[route_rdp_visitor]
type = stcp
role = visitor
server_name = route_rdp
sk = 123456 #这个输入服务sk
bind_addr = 0.0.0.0
bind_port = C #这个替换成上面配置的C端口
三、配置本地服务
1、本地配置frpc.ini
这里以docker 为例,
vim /data/docker/frp/frpc.ini
[common]
server_addr = x.xx.com #上面配置的服务,或者直接用IP
server_port = A #这个替换成上面配置的A端口
token = xxxxxxxx
[route_webs]
type = stcp
sk = 123456
local_ip = 192.168.1.1 #这个替换成本地IP
local_port = 80 #这个替换成本地端口
[route_rdp]
type = stcp
sk = 123456
local_ip = 192.168.1.2
local_port = 3389
2、运行frpc docker 容器
docker run -d
--restart unless-stopped
-v /data/docker/frp/frpc.ini:/etc/frp/frpc.ini
-v /data/docker/frp/logs:/etc/frp/logs
--name frpc-01
snowdreamtech/frpc:0.35.0
查看运行状态
docker logs frpc-01
四、设置守护进程
1、安装PM2监控
bash <(curl -s https://raw.githubusercontent.com/k0baya/alist_repl/main/serv00/install-pm2.sh) && source ~/.bashrc
pm2 start -x ./frp/frps -n frps -- -c ./frp/frps.ini
pm2 start -x ./frp/frpc -n frpc -- -c ./frp/frpc.ini
查看运行状态
pm2 ls
查看日志
pm2 logs
2、添加Cron jobs
在DevilWEB 中找到Cron jobs选项卡,使用Add cron job功能添加任务,Specify time选择After reboot,即为重启后运行。Form type选择Advanced,Command写:
/home/你的用户名/.npm-global/bin/pm2 resurrect
3、保存pm2任务快照
pm2 save
五、测试效果
后记
运行几天发现DevilWEB 的Cron jobs 会被清空掉,遂添加脚本处理这个问题
此次用的是青龙面板,用其他调度工具也大差不差
1、添加依赖 sshpass
2、添加脚本
#!/bin/bash
URL="x.xx.com:B" #之前配置的端口,部署成web 服务了,可以检测frps是否掉线
HTTP_STATUS=$(curl -o /dev/null --silent --head --write-out '%{http_code}\n' "${URL}")
echo "HTTP status code ${HTTP_STATUS}"
if [ $HTTP_STATUS -ne "000" ]; then
echo "连接正常,跳过"
echo "finished"
return 0
fi
HOST="" #Serv00 SSH host
USERNAME= #Serv00 SSH user
PASSWORD= #Serv00 SSH password
sshpass -p ${PASSWORD} ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt ${USERNAME}@${HOST} << EOF
if ps ax | grep -v grep | grep "frps" > /dev/null; then
echo "进程存在,跳过"
else
echo "进程不存在,恢复pm2快照"
/home/username/.npm-global/bin/pm2 resurrect
fi
exit
EOF
echo "finished"