新人下载app,立即提现现金 您的好友 送你现金 去提现

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

AlphaTheta 04-08 21:20 关注

0、参考资料

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

1、前情提要

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

然而我昨天早晨起床之后发现邮箱中收到了一堆云解析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内网穿透拯救我的个人站点

未经授权,不得转载

展开阅读全文

打开App,享最佳阅读体验
全部评论 (15)
AlphaTheta
1
04-09 08:48
铬儿: 都有服务器了,为啥还把站点搭本地[惊喜] 1

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

杏仁核桃树
0
04-11 15:55
Askr: 阿里云貌似协议限制frp,腾讯云不清楚 1

不限制,就是要把你需要的端口打开

冰火易流
0
04-09 09:30

这速度甚至不如卖frp服务的啊[尴尬]

Neilt2016
0
04-09 09:18
Askr: 阿里云貌似协议限制frp,腾讯云不清楚 1
Neilt2016: 腾讯云可以,我开过一小时的100m带宽,测试了还行 2
展开隐藏评论
AlphaTheta: 提速还是比较贵的[喜极而泣]先凑活用吧 3

现在用的是甲骨文首尔的免费机,白天能跑3m的速度,晚上拉胯[喜极而泣]

AlphaTheta
0
04-09 09:13
Askr: 阿里云貌似协议限制frp,腾讯云不清楚 1
Neilt2016: 腾讯云可以,我开过一小时的100m带宽,测试了还行 2

提速还是比较贵的[喜极而泣]先凑活用吧

AlphaTheta
0
04-09 08:51
Neilt2016: 撸的甲骨文免费首尔机,白天还行,晚上就拉胯了 1

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

AlphaTheta
0
04-09 08:50
風騷的毛毛虫: 我们学校也是公网ip,我之前用群晖的ddns,配置的时候总是提示我网内存在两个路由器,可是我就接了个路由器到网口上然后拨号 1

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

Neilt2016
0
04-09 08:31

撸的甲骨文免费首尔机,白天还行,晚上就拉胯了

Neilt2016
0
04-09 08:31
Askr: 阿里云貌似协议限制frp,腾讯云不清楚 1

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

風騷的毛毛虫
0
04-09 08:12

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

打开App,查看更多好文和评论
最新NAS存储优惠
学生专享:HIKVISION 海康威视 H99 网络硬盘盒
学生专享:HIKVISION 海康威视 H99 网络硬盘盒

存储设备热度Top2 近30日已发布新低

242.1元包邮(需用券)
京东 05:48
23 67%
16日0点:QNAP 威联通  TS-451D 四盘位 NAS网络存储服务器(J4025、4GB)
16日0点:QNAP 威联通 TS-451D 四盘位 NAS网络存储服务器(J4025、4GB)

比上次发布低9% 双核心

2129元包邮(双重优惠)
天猫精选 04-14
11 63%
HIKVISION 海康威视 Mage10 个人私有网盘 4TB
HIKVISION 海康威视 Mage10 个人私有网盘 4TB

3期分期免息 4TB大容量

1579元包邮(需用券)
京东 04-13
0 22%
QNAP 威联通 TS-532X 五盘位 NAS 网络存储服务器
QNAP 威联通 TS-532X 五盘位 NAS 网络存储服务器

价格低于双11 多方位散热

1950元包邮
拼多多 04-12
34 84%
查看更多
猜你喜欢
查看更多
相关好价
相关商品
查看更多热门商品
社区主页 文章详情
26
137
15
你已经点过赞了
新浪微博 QQ空间 微信好友 豆瓣
当前为触屏版
热门搜索