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

2021-04-08 21:20:17 33点赞 162收藏 18评论

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内网穿透拯救我的个人站点

展开 收起

UGREEN 绿联 DXP4800 四盘位 私有云NAS存储(Intel N100、8GB)

UGREEN 绿联 DXP4800 四盘位 私有云NAS存储(Intel N100、8GB)

2199元起

ZSpace 极空间 私有云Z2Pro 2盘位 NAS存储 水墨黑

ZSpace 极空间 私有云Z2Pro 2盘位 NAS存储 水墨黑

917.15元起

UGREEN 绿联 DXP4800 Plus 四盘位 私有云NAS存储

UGREEN 绿联 DXP4800 Plus 四盘位 私有云NAS存储

1869.15元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)黑色

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)黑色

2787.15元起

Synology 群晖 DS923+ 四盘位 NAS存储(AMD R1600、4GB)

Synology 群晖 DS923+ 四盘位 NAS存储(AMD R1600、4GB)

4158.63元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2265.25元起

UGREEN 绿联 DXP2800 双盘位 私有云NAS存储(Intel N100、8GB)

UGREEN 绿联 DXP2800 双盘位 私有云NAS存储(Intel N100、8GB)

1529.15元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2299元起

HUAWEI 华为 AS6020 双盘位 家庭存储 NAS

HUAWEI 华为 AS6020 双盘位 家庭存储 NAS

1699元起

极空间私有云Q4四盘位NAS网络存储服务器AI家庭相册个人云硬盘文件同步手机平板扩容适用iPhone16

极空间私有云Q4四盘位NAS网络存储服务器AI家庭相册个人云硬盘文件同步手机平板扩容适用iPhone16

1461元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1696元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2355.48元起

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

1649元起

ZSpace 极空间 私有云 Q2C NAS存储 水墨黑

ZSpace 极空间 私有云 Q2C NAS存储 水墨黑

899元起

UGREEN 绿联 DXP6800 Pro 六盘位 NAS存储(Intel Core i5、无盘)

UGREEN 绿联 DXP6800 Pro 六盘位 NAS存储(Intel Core i5、无盘)

4899元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核、2GB)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核、2GB)

3199元起
18评论

  • 精彩
  • 最新
  • 可以不用服务器,直接在Windows本地使用吗

    校验提示文案

    提交
    frp有windows版本的。frp其实就是在服务端和客户端之间构建通信链路。

    校验提示文案

    提交
    收起所有回复
  • 都有服务器了,为啥还把站点搭本地 [惊喜]

    校验提示文案

    提交
    首先是最近没时间把服务迁移到云上。其次是云主机的空间太小,我的本地服务是将数据都存到nas里的。

    校验提示文案

    提交
    收起所有回复
  • 我们学校也是公网ip,我之前用群晖的ddns,配置的时候总是提示我网内存在两个路由器,可是我就接了个路由器到网口上然后拨号

    校验提示文案

    提交
    我们学校估计是其他运营商进来了。学校在调整网络,现在学校自己的某些网络服务都用不了了 [皱眉]

    校验提示文案

    提交
    收起所有回复
  • 撸的甲骨文免费首尔机,白天还行,晚上就拉胯了

    校验提示文案

    提交
    我测试过阿里云的香港云主机,延迟太大了,frp服务不稳定

    校验提示文案

    提交
    收起所有回复
  • 阿里云貌似协议限制frp,腾讯云不清楚

    校验提示文案

    提交
    不限制的,我才用过

    校验提示文案

    提交
    腾讯云可以,我开过一小时的100m带宽,测试了还行

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 这速度甚至不如卖frp服务的啊 [尴尬]

    校验提示文案

    提交
  • 搞个ipv6完事,不用这么复杂

    校验提示文案

    提交
  • frps.ini文件
    vhost_http_port
    这个不要写,不要写,写了就不能用了
    我写了,中午搞到晚上,删了就OK了

    校验提示文案

    提交
  • 另外vps不要用80,我用了,刚开始好好的,差不多2个小时吧,就完蛋了

    校验提示文案

    提交
提示信息

取消
确认
评论举报

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

相关文章推荐

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