最近一个多星期,我的博客上没有更新任何文章。尽管如此,我还是会时不时地打开博客,看看友友们的动态,回回友友们的留言。此时此刻,我决定顺便写点东西,也当是记录一下生活的点滴吧。
晒伤
上个星期二(也就是7月23日),天气晴朗,阳光明媚。那天也正好是我休息的日子,我决定带孩子们去儿童水上乐园玩。那里有沙滩、海浪,还有专为孩子们设计的水上设施。大多数来这儿的都是带着孩子来玩水的吧。
太阳很大,孩子们在水里玩得不亦乐乎。我本以为自己做好了防晒措施,但回到家后,当我脱下衣服,惊讶地发现自己竟然被晒伤了。火辣辣的灼烧感让我意识到,我并没有做好防晒工作。幸运的是,我的媳妇儿和孩子们都做好了防晒,一点事也没有。
晒伤的疼痛持续了好几天,我不得不用药治疗,直到灼烧感逐渐减轻。虽然现在感觉好多了,但被晒伤的痕迹依然清晰可见。
Frp
几天前,我看到一些关于Frp(一种内网穿透工具)的文章,觉得写得还是挺不错的,也正好符合我的心里预期想法。由于我主要使用的是云服务(为主),Frp对我来说并不是经常使用的工具。尽管之前有过一些接触,但我并没有写出详细的教程或系列文章。
现在,我决定重新捣鼓一下Frp,并补充一些关于Frp的教程(简单配置),主要是为了方便自己以后的使用。如果这些内容对你也有所帮助,欢迎拿去食用。或者,你有什么补充的。亦或者,你有什么更好的方案,都可以同我一起分享。
此方法来自霁晨晨晨
Frp是什么
Frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 Frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。
Frp官网:https://gofrp.org/zh-cn/
Frp的工作原理
frp 主要由两个组件组成:客户端(frpc) 和 服务端(frps)。通常情况下,服务端部署在具有公网 IP 地址的机器上,而客户端部署在需要穿透的内网服务所在的机器上(即本地电脑)。
由于内网服务缺乏公网 IP 地址,因此无法直接被非局域网内的用户访问。用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。
Frp的代理类型
在 frp 中,一个代理对应一个需要公开访问的内网服务。一个客户端可以同时配置多个代理,以满足不同的需求。
frp 支持多种代理类型,以适应不同的使用场景。以下是一些常见的代理类型:
- TCP:提供纯粹的 TCP 端口映射,使服务端能够根据不同的端口将请求路由到不同的内网服务。
- UDP:提供纯粹的 UDP 端口映射,与 TCP 代理类似,但用于 UDP 流量。
- HTTP:专为 HTTP 应用设计,支持修改 Host Header 和增加鉴权等额外功能。
- HTTPS:类似于 HTTP 代理,但专门用于处理 HTTPS 流量。
- STCP:提供安全的 TCP 内网代理,要求在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
- SUDP:提供安全的 UDP 内网代理,与 STCP 类似,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
- XTCP:点对点内网穿透代理,与 STCP 类似,但流量不需要经过服务器中转。
- TCPMUX:支持服务端 TCP 端口的多路复用,允许通过同一端口访问不同的内网服务。
每种代理类型适用于不同的使用情境,您可以根据需求选择合适的代理类型来配置 frp。
由于frp功能和配置项比较多,有需要的可以直接去官网查看具体文档。Frp中文文档:https://gofrp.org/zh-cn/docs/
选择Frp的理由
它提供了多协议支持、TCP连接复用、负载均衡、端口复用、P2P通信、丰富的客户端和服务端插件以及用户友好的界面,使得内网服务能够高效、灵活地穿透到公网。
Frp内网穿透
演示声明:为了更好的理解 frp 的安装和简单配置,我这里用腾讯云服务器(公网)作为服务端,本地Windows作为客户端实现内网穿透效果。当然,其他系统也类似,可以参考。
准备工作
1.端口放行
为了后续可以让腾讯云服务器和本地Windows可以正常通讯,我们需要提前将相关端口放行:
2.下载安装包
根据自己所使用的服务端
和用户端
的系统版本下载(下载地址:https://github.com/fatedier/frp/releases)对应的Frp安装包,我这里服务端是:Linux服务器,用户端是本地Windows。
Linux:https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_linux_amd64.tar.gz
Windows:https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_windows_amd64.zip
服务端操作(frps)
1.创建Linux目录
这里的路径可以自定义创建,但一定要记得路径地址:/www/frp/
2.解压并上传
将下载好的https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_linux_amd64.tar.gz
压缩包解压,并将该包内前缀带有frps的所有文件上传到/www/frp/
目录下
3.修改服务端配置文件 frps.toml
[common]
# 服务端和客户端的TCP通信端口
bind_port = 7000
# 客户端访问服务端的密码
token = yjvc
# 服务端仪表盘的端口, 可以用浏览器访问查看
dashboard_port = 7500
# 服务端仪表盘的用户密码
dashboard_user = yjvc
dashboard_pwd = yjvc123
# 日志保存设定, 保存位置、保存时长
log_file = ./frps.log
log_level = info
log_max_days = 7
4.打开终端命令行窗口,cd到frps.toml文件目录
cd /www/frp/
5.启动命令(如果启动失败,需要先设置防火墙开放端口)
./frps -c frps.toml &
6.验证
启动成功后就可以去浏览器验证一下仪表盘页面是否可以正常访问了,输入刚才配置的用户名密码登录即可。
仪表盘访问地址:公网IP:[刚才配置的仪表盘端口]
用户端操作(frpc)
1.创建Windows目录
这里的路径也可以自定义创建,但一定要记得路径地址:E:\frp\
2.解压并上传
将下载好的https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_windows_amd64.zip
压缩包解压,并将该包内前缀带有frpc的所有文件上传到E:\frp\
目录下
3.修改用户端配置文件 frpc.toml
[common]
# 服务端公网IP
server_addr = [服务端公网IP]
# 客户端访问服务端的密码
token = yjvc
# 客户端与服务端通信端口
server_port = 7000
[mysql]
# 指定TCP连接类型
type = tcp
# 客户端IP, 这里填本地IP就可以
local_ip = 127.0.0.1
# 表示客户端本地的端口号
local_port = 3306
# 表示服务端的代理端口号
remote_port = 3316
此配置文件的意思是将服务端的3316端口代理到客户端本地的3306端口,当然了,你也可以根据自己的实际情况进行添加或者删减
4.打开终端命令行窗口,cd到frpc.toml文件目录
cd E:\frp\
5.启动命令
frpc.exe -c frpc.toml
注意,如果你的用户端使用的是Linux系统,可以使用以下命令启动frpc用户端:
./frpc -c ./frpc.toml &
进程守护
如果你不想一关掉你正在执行的命令行、程序…命令或程序就失效了,那你就可以使用进程守护管理工具来操作了。
如果你用的是Linux系统,这里我们以宝塔面板上的Supervisor进程管理器
为例。
1.安装Supervisor管理器
在软件商店安装Supervisor管理器,并打开
2.然后添加frp守护进程
名称:frp
启动用户:root
进程数量:1
运行目录:/frp文件路径/
注意:这里的运行目录
就是你的frps.toml或frpc.toml所在的目录路径
启动命令:
/frp文件路径/frps -c ./frps.toml
或
/frp文件路径/frpc -c ./frpc.toml
前者为服务端,后者为用户端。
小假期
从今天开始,4天的小假期开始了。这对我来说是一个难得的机会,可以好好放松一下,享受与家人的时光。我计划在这4天里,陪媳妇儿和孩子们一起度过一个愉快的假期。
由于媳妇儿不会开车,再加上带着两个孩子,我们的出行计划主要集中在省内。我们希望找到一个适合全家人的地方,既能让孩子们开心,也能让媳妇儿感到轻松。我们考虑了多个地方,最终决定选择一个既有户外活动也有室内娱乐的目的地。
前段时间,天气还不错,阳光明媚,非常适合出行。不过,似乎每次一到休息日,天气就变得不太理想。天气预报显示,假期期间可能会有雨水。虽然这让我们有些担忧,但我们已经做好了两手准备。如果外面下雨,我们也会安排一些室内活动,确保假期的每一天都能充满乐趣。
现在是早上7点39分,我的小假期正式开始了……
假期起的好早。
也不早了
夏天似乎大家都很少发文,难道是因为太热了吗?hhh
估计是天气好 都出去玩了 线下冲浪去了吧
也有道理,但是这么热的天真不如空调wifi西瓜
还挺会享受呀 空调 wifi 西瓜 哈哈
假期就要出去走走,只是太热了。最近一直在外边跑,都很少看博客了,今天休息,来看看
一样的 我是随时都可以关注博客上的消息的 只是少发文了 嘿嘿
服务器的话直接用面板更好用-。-
什么面板
宝塔或者小皮
宝塔可以
我这边三伏天喜欢下雨,凉快。等天不热了。什么天都行。嘿嘿。
如果是雨天,只要不是很大的雨都还可以接受。同样,如果是出太阳,只要不是很大,也是很不错的
假期愉快
玩的的确很开心 哈哈 但太累了
Frp 和 nps 其实都是很不错的工具,但是速度受限于中转服务器的带宽。
这也导致我最终选择了可能不是那么安全的 ipv6 直连。
每种方法都有其优缺点,选择哪种方式取决于你的具体需求、安全考虑以及对速度和稳定性的要求
你这假期就很羡慕你,加上周末两天就够6天假期了。厉害!
不用羡慕 假期都是烧钱的活动😂
假期快乐!
彼此彼此 都要快乐
可以使用docker部署frp,客户端部署frpc,服务端部署frps。挺方便的。
docker部署的没研究过