WangQiFei

蒸 馏 器


思想提纯
  • 首页
  • 归档
  • 标签
  • 关于
  •     

© 2024  by  Wangqifei

在serv00上使用frp实现内网穿透的示例

发布于 2024-10-25 12:10 内网穿透 

此前为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
2
3
4
# frps.toml
bindPort = A // 根据自己的端口填写
vhostHTTPPort = B // 根据自己的端口填写,https穿透时使用,不需要可以不配置。
auth.token = "123456" // 认证密码随便修改[可选]

直接安装最新版本的就行了。

frp客户端配置
进入frp目录,修改frp客户端配置文件 frpc.toml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# frpc.toml
serverAddr = "X.X.X.X" // serv00的IP
serverPort = A // 根据自己的端口填写

[[proxies]]
name = "pixman" // 按需修改
type = "http"
localPort = 5050 // 需要穿透的本地端口号
customDomains = ["[任意].[serv00用户名].serv00.net"] // serv00上配置的域名(注意对应端口号)

[[proxies]]
name = "allinone" // 按需修改
type = "http"
localPort = 35455 // 需要穿透的本地端口号
customDomains = ["[任意].[serv00用户名].serv00.net"] // serv00上配置的域名(注意对应端口号)

启动

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
执行命令 pm2 startup 进行设置开机启动 // serv00 没有权限,执行也没用

**补充
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
2
3
@echo off
cd /d "FRP安装路径"
start /min frpc -c frpc.toml

开机任务
win+R : taskschd.msc
触发器: 启动时
操作: 启动程度,对应启动frp的bat文件

 上一篇: 直播源的获取终极方案 

下一篇: 酒店组播源的查找实例 

© 2024  by  Wangqifei