使用FRP内网穿透拯救我的个人站点

2021-04-08 21:20:17 27点赞 139收藏 16评论

0、参考资料

frp中文文档
frp内网穿透环境搭建

1、前情提要

在之前,我在学校的寝室里部署了一个铁威马的F2-220 NAS和一个当作个人服务器的NUC5PPY。其中铁威马NAS用于存储文件。NUC5用于部署wordpress博客、leanote笔记、bitwarden密码服务器。在以往的使用中,由于学校的教育网IP比较富裕,电信宽带拨号上网自动分配的就是动态公网IP。我通过调用阿里云的云解析API接口写了一个DDNS脚本实现了动态解析。

基于Docker搭建bitwarden密码管理服务器0什么是密码管理在这个数字化、信息化的时代,我们的日常生活中充斥着大量的账户信息,有银行的账户密码、手机卡的服务密码、各种社交软件的登录密码。各种密码如果设置成不一样的我们很难记住,而设置为一样的则很不安全。虽然各种服务商都在尽可能地方便用户登录,比如设置扫码登录、手机验证码登录,但这些登陆方式都无AlphaTheta| 33 评论40 收藏240查看详情基于英特尔NUC5PPYH搭建个人网络服务中心0背景一年多以前为了保持自建NAS服务的稳定性,我放弃了使用工控机搭建NAS的方案,而后入手了铁威马的F2-220成品NAS。在这一年多的使用中,铁威马的NAS基本满足我的文件服务需求。由于我的IP是公网IP,所以可以通过自己写DDNS脚本实现动态域名解析。我在F2-220上通过docker等搭建了AlphaTheta| 20 评论43 收藏99查看详情旧物利用:替换树莓派做寝室里的个人NAS在大概一个月以前,我分享了“在学生宿舍用树莓派做个NAS存储”的经验。后来经过测试,觉得树莓派的性能实在是太弱鸡了。这个性能的体现不仅是网口速度的问题,主要体现在树莓派处理器太弱,导致操作很不顺畅。举个栗子:上传一个大文件时,数据传输完毕之后树莓派需要处理好久才能完成文件的组织。再加上我因为个人专业AlphaTheta| 30 评论22 收藏135查看详情

然而我昨天早晨起床之后发现邮箱中收到了一堆云解析IP变动提醒。

使用FRP内网穿透拯救我的个人站点

并且,解析过后的域名不可访问。我比对了云解析改动后的IP和路由器WAN口IP之后,悲惨的发现,之前的公网IP变成了内网IP。估计是因为我们学校之前电信宽带的独占期结束了,移动和联动宽带入局之后教育网IP资源不够了。由于是校园宽带,打电话投诉或者申请公网IP是不可能的。

我已经用了好久的网络拓扑结构面临着瘫痪的结局。

2、确定方案

首先要明确我这次改造的目标:在尽可能减小网络结构变换对我日常工作影响的前提下恢复各种服务的正常使用。那么在这种情况下主要有三种方案:
方案一:将现有服务全部从私有云迁移到公有云中。
方案二:使用花生壳等成熟内网穿透工具。
方案三:租用公有云服务器,自建内网穿透。

使用FRP内网穿透拯救我的个人站点

最终,正好碰到了腾讯云打折,以288三年的价格拿到了一个云主机,配置为1核 2GB内存 1Mbps带宽。虽然便宜,但是这个1Mbps的带宽着实有些寒酸。不过还好的是我的NAS可以通过铁威马的远程访问使用,这个带宽足够其他服务的使用了。

3、FRP部署

3.1 什么是FRP

frp 是一个专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。

采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。

代理组间的负载均衡。

端口复用,多个服务通过同一个服务端端口暴露。

多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。

高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。

服务端和客户端 UI 页面。

这些都是frp官方的介绍。我们只需要知道frp就是一种把访问云服务器相应端口的数据流转发到客户端所在网络的工具。

3.2 frp服务器端部署

我的云主机的操作系统是Ubuntu,为了方便使用,我还是首先安装了宝塔面板,方便后续通过进程守护frp服务。

  1. 下载64位Linux版本的frp程序,官下载地址为:下载。在这里我们通过wget下载。

cd /opt # 我习惯把个人部署的源码放在这个目录下

wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz

2. 解压下载的压缩包

tar -zcvf frp_0.36.2_linux_amd64.tar.gz

3. 跳转到frp目录

cd frp_0.36.2_linux_amd64

4. 我们下载的源码中包含两个部分,分别是frp的服务器端、frp客户端。我们只需要在云主机上运行frp服务器端就可以了。修改服务器端配置文件frps.ini

vim frps.ini # 由于需要输入的东西不多,这里使用vim编辑器,也可以下载到本地修改后上传覆盖

# 按I键进入插入模式

# #输入如下内容

bind_port = 7000 # 用于接收frpc连接的端口

kcp_bind_port = 7000 # 用于接收采用 KCP 连接的端口

dashboard_port = 7500 # frp web dashboard访问端口

token = c4kTgvgW8sqVMJ # frp鉴权密钥,客户端需要使用相同配置

vhost_http_port = 80 # frp的http监听端口

vhost_https_port = 443 # frp的https监听端口

dashboard_user = xxx # frp网页dashboard访问用户名

dashboard_pwd = xxxxx # frp网页dashboard访问密码

# #输入完毕,按ESC键退出vim插入模式

# 输入 :wq (包含冒号)进行保存

上述配置需要说明的是:
由于我的云主机不再部署其他网站,因此将frp的http和https监听端口设为常用的80和443;如果你的云主机需要部署其他网站,可以设置为其他端口或设置反向代理。

其他服务器端的配置可查看官方手册

5. 部署完毕之后可以输入指令开启:

/opt/frp/frps -c /opt/frp/frps.ini

需要注意的是,由于我在配置frp服务时使用了80和443,所以可能需要以root权限运行。


运行完毕之后可以看到我们配置的端口都已经成功监听

使用FRP内网穿透拯救我的个人站点

6. 剩下的就是设置frp开机自启了。您可以将指令写入rc.local中,不过在这里我为了方便管理,还是使用了宝塔面板的supervisor管理器。这个主要还是看您的使用习惯。宝塔面板的安装教程可以看一下官方的Linux宝塔面板安装。进程守护配置如下:

使用FRP内网穿透拯救我的个人站点

7. 云服务防火墙(安全组)放行

使用FRP内网穿透拯救我的个人站点

8. 宝塔防火墙放行(如果您使用了宝塔面板的防火墙),也是放行上述端口

至此,frp服务器端就配置完成。

3.3 frp客户端部署

客户端的部署和服务器端类似。我将frp客户端部署到了NUC主机服务器上。操作系统也是Ubuntu。frp源程序和服务器端一样。在这里我们使用的frpc,因此需要配置frpc.ini。配置内容如下:

[common] # 客户端通用配置

server_addr = xxx.xxxx.com # 部署frp服务的云主机地址,也可以是IP

server_port = 7000 # frp服务器监听端口

token = c4kTgvgW8sqVMJ # 鉴权token,要和frp服务器一致

[blog] # 服务名,单一客户端下不可重复

type = https # 协议类型

local_ip = 192.168.3.226 # 数据转发目标地址

local_port = 443 # 数据转发目标端口

custom_domains = blog.xxxx.com # 服务器绑定自定义域名

[note]

type = https

local_ip = 192.168.3.226

local_port = 443

custom_domains = note.xxxx.com

[bitwarden]

type = https

local_ip = 192.168.3.226

local_port = 443

custom_domains = alpha.xxxx.com

我把所有的二级域名都解析到云主机上,下面各个服务可以根据域名确定将数据转发到什么位置。而后运行frpc

/opt/frp/frpc # 客户端会自动使用frpc.ini

接下来我们也可以使用和服务器端相同的步骤配置开机自启或守护进程。

4、总结

通过配置之后,可以正常的通过域名访问寝室中的服务了。个人日常工作流程恢复正常。1Mbps的带宽基本不影响体验(NAS没有走这个通道)。这篇文章就是使用leantoe服务写的。

使用FRP内网穿透拯救我的个人站点

未经授权,不得转载
展开 收起

威联通(QNAP) TS-212P3 2盘位NAS网络存储器 四核心处理器 TS-212P3 TS-212P3(空机)

威联通(QNAP) TS-212P3 2盘位NAS网络存储器 四核心处理器 TS-212P3 TS-212P3(空机)

879元起

ZSpace 极空间 Z2 2盘位NAS (RTD1296、2GB)

ZSpace 极空间 Z2 2盘位NAS (RTD1296、2GB)

1199元起

QNAP 威联通 TS-473A 四盘位 NAS存储 V1500B 8GB

QNAP 威联通 TS-473A 四盘位 NAS存储 V1500B 8GB

暂无报价

QNAP 威联通 TS-673A 六盘位 NAS存储 V1500B 8GB

QNAP 威联通 TS-673A 六盘位 NAS存储 V1500B 8GB

暂无报价

QNAP 威联通 TS-873A 八盘位 NAS存储 Ryzen V1500B 8GB

QNAP 威联通 TS-873A 八盘位 NAS存储 Ryzen V1500B 8GB

暂无报价

华硕 ThunderboltEX 3 PCI-E转雷电3 主板扩展卡

华硕 ThunderboltEX 3 PCI-E转雷电3 主板扩展卡

699元起

海康威视H101 nas网络存储个人私有云盘家用网盘家庭云存储 闲小盘手机备份百度云积分 【心款】MAGE10 内置4T硬盘

海康威视H101 nas网络存储个人私有云盘家用网盘家庭云存储 闲小盘手机备份百度云积分 【心款】MAGE10 内置4T硬盘

1549元起

威联通(QNAP)TS-253D 4G两盘位企业级nas网络存储服务器 文件共享备份私有云盘磁盘阵列 0TB 空槽

威联通(QNAP)TS-253D 4G两盘位企业级nas网络存储服务器 文件共享备份私有云盘磁盘阵列 0TB 空槽

4130元起

HIKVISION 海康威视 Mage10 个人私有网盘 4TB版

HIKVISION 海康威视 Mage10 个人私有网盘 4TB版

1699元起

QNAP威联通TS453Bmini 8G内存 四盘位磁盘阵列网络存储NAS办公私有云家庭网络存储服务器

QNAP威联通TS453Bmini 8G内存 四盘位磁盘阵列网络存储NAS办公私有云家庭网络存储服务器

2099元起

群晖(Synology)DS1821+ 搭配8块希捷(Seagate) 8TB酷狼IronWolf ST8000VN004硬盘 套装

群晖(Synology)DS1821+ 搭配8块希捷(Seagate) 8TB酷狼IronWolf ST8000VN004硬盘 套装

22363元起

QNAP威联通TVS-672N-i3-4G企业级网络存储NAS

QNAP威联通TVS-672N-i3-4G企业级网络存储NAS

12000元起

群晖(Synology)DS1821+ 搭配3块希捷(Seagate) 4TB酷狼IronWolf ST4000VN008硬盘 套装

群晖(Synology)DS1821+ 搭配3块希捷(Seagate) 4TB酷狼IronWolf ST4000VN008硬盘 套装

11069元起

铁威马 TERRA MASTER D5-300 5盘RAID磁盘阵列盒 阵列柜 硬盘盒(6TB硬盘5块)

铁威马 TERRA MASTER D5-300 5盘RAID磁盘阵列盒 阵列柜 硬盘盒(6TB硬盘5块)

7399元起

QNAP威联通TS-453BT3影音/企业级 雷电3 NAS网络存储服务器私有云(TS-453BT3/8G内存+酷狼24T(8T*3))

QNAP威联通TS-453BT3影音/企业级 雷电3 NAS网络存储服务器私有云(TS-453BT3/8G内存+酷狼24T(8T*3))

8290元起

铁威马 TERRA MASTER F4-421 intel四核,4G内存 四盘NAS(4TB硬盘4块)

铁威马 TERRA MASTER F4-421 intel四核,4G内存 四盘NAS(4TB硬盘4块)

5299元起
16评论

发表评论请 登录
  • 最新
  • 最热
评论举报

请选择举报理由

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
139
扫一下,分享更方便,购买更轻松