云主机Serv00 搭建frps 服务

Serv00 提供三个端口,可以安装软件,浅试下可以使用,就是延迟感人。

一、配置DevilWEB

根据Serv00 发送的邮件账号信息,登录DevilWEB
在这里插入图片描述

1、设置端口

serv00搭建frps服务

点击添加端口,可以添加3个

serv00搭建frps服务

添加完成后如下

在这里插入图片描述

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

file

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"

3、添加定时任务

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值