此前为pixman使用的内网穿透方案是通过cpolar实现的。(别问为什么,问就是我把pixman运行在了一个windows的docker上。)由于cpolar免费版会不定时随机分配域名,中间采取了 通过定时任务自动登录并打开cpolar dashboard触发一个油猴脚本,获取最新域名并通过CF Workers来指定一个固定域名来实现url抓发。 配置完成以后运行了一段时间,还算比较稳定。总是觉得有些繁琐。
这里优化成使用frp实现内网穿透,域名固定,不需要那么多繁琐的过程中转。还是用pixman来操作。
需要用到
- pixman: 本地运行。服务器运行的直接访问,不涉及这里的内网穿透。
- frp:详细了frp项目
- serv00: frp的服务器端我这里配置在了serv00上。
步骤
pixman: 安装及配置忽略,只需要记住其端口这里给的是 5050
frp安装配置:
run your own applications 开启
additional servers – run your own applications 开启
开放端口
prot reservation – add port
A:端口随机就行,类型选TCP
B: 端口随机,类型选TCP
// serv00免费用户端口限制在3个以内。
www website list
新增一个站点,这里使用的是serv00分配的域名,可以根据需要自定义域名只要配置好解析就行。
www websites – add new website
域名: [任意].[serv00用户名].serv00.net
类型: proxy
端口: 选择 B 端口
IP地址
SSL – SSL Management
IP:页面中的两个ip,选任意一个就行
配置frp服务器端文件
进入frp目录(ssh或者使用serv00管理页面的文件管理都可以),配置frps服务器配置文件frps.toml
1 | # frps.toml |
直接安装最新版本的就行了。
frp客户端配置
进入frp目录,修改frp客户端配置文件 frpc.toml
1 |
|
启动
serv00服务器端 : 进入目录执行 ./frpc -c ./frps.toml
windows客户端 : 进入目录执行 fprc -c frpc.toml
[访问] : 直接访问[任意].[serv00用户名].serv00.net 即可实现访问
后台保持
serv00服务器端
PM2
安装bash <(curl -s https://raw.githubusercontent.com/k0baya/alist_repl/main/serv00/install-pm2.sh) && source ~/.bashrc
// 每次ssh 都需要 更新 bashrc source ~./bashrc
PM2监控frp
根目录运行pm2 start -x ./frp/frps -n frp -- -c ./frp/frps.toml
添加定时任务:
serv00管理页面 – corn jobs – add corn job
specify time : after reboot
command: /home/你的用户名/.npm-global/bin/pm2 resurrect
我有添加了一个定时任务,每隔12分钟检查一次frps是否运行,如果未运行及时重启: */12 * * * * pgrep -x "frps" > /dev/null || pm2 resurrect
ssh保存PM2快照 pm2 save
执行命令 // serv00 没有权限,执行也没用pm2 startup
进行设置开机启动
**补充
serv00上一些命令可能你要用到:pkill -kill -U 用户名
:杀死用户的所有进程,当主机卡死时执行。pm2 在免费serv00上执行 – watch 时一定会跑满cpu,不建议监控进程ps aux
: 查看在运行的进程crontab -l
: 查看当前定时任务列表crontab -e
: 修改定时任务列表,使用的时nano编辑器pm2 list
: 看看运行列表pm2 start|stop|delete|restart name
: 实现pm2对指定进程的操作pm2 resurrect
: 从pm2快照中恢复所有进程pm2 restart all
: 重新启动当前正在运行的所有进程
[windows端]
bat文件启动frp
1 | @echo off |
开机任务
win+R : taskschd.msc
触发器: 启动时
操作: 启动程度,对应启动frp的bat文件