家庭云:云主机+内网服务器NAS+内网穿透实现web服务
前言
很久以前就想过能不能在家里的NAS上搭建web服务,并实现外网访问。但是大多数的家庭宽带都没有公网IP,而且80端口、443端口都是被屏蔽的。由于当时对网络技术不太精通,后来通过购买云服务器搭建了自己的网站,这种想法也就没有再去深研究。但是最近在维护网站时出现的一些问题,让我又想起了当时的想法。通过查询资料,几经挫折,终于实现了上面所说的功能。
问题及方案
问题
刚才说了,我在维护网站时出现了一些问题,主要体现在:
腾讯云、阿里云等主机大厂的云服务器普遍偏贵,而且配置也较低,我用的一直是1H2G的服务器。
使用1panel+halo的组合后,发现很占用系统资源,日常内存占用量经常在70%徘徊,造成服务器经常死机。
如果升级服务器配置,费用就变得特别高,对于网站没有盈利的个人站长根本无力承担。
方案
于是,就有了本文所说的方案:云主机+内网服务器+内网穿透,搭建web服务,并实现外网访问。
需要用到的软硬件及应用:
云主机:不需要多高的配置,2H2G就够用了,现在的云主机基本都属于最低配置了。
家庭服务器:NAS、旧电脑都行,我用的是NAS。
1panel面板:在云主机和家庭服务器上都需要安装这个面板,实现全部可视化安装,对于我这种不懂代码的非常友好。
Frp应用:Frp是内网穿透软件,分为服务端frps和客户端frpc
本文默认你以准备好了上面1-3项,不过多介绍。重点对第4项Frp的安装和设置进行讲解,我好几次设置失败都是因为frp的配置不正确导致。
开始部署
frp服务端
在云主机上安装frp服务端
进入
1panel面板
-应用商店
-搜索frp
-frp服务端
,点击安装对“服务端口”、“Dashboard 端口”、“密码”、“密钥”的默认值进行修改,主要是对服务端口和密钥进行修改,密码是自动生成的,其他的可保持默认。
修改好后,点确认完成安装,在应用商店已安装页面可以看到frps已启动。
注意:一般云主机都配置了安全组、防火墙,需要在主机商的后台开放TCP端口,即步骤2填写的“服务端口”。
frp客户端
在家庭服务器上安装frp客户端
重复上面步骤1和步骤2,只不过这个时候选择“frp客户端”。这里的“服务端IP”填写云主机的外网IP地址,“服务端端口”和“密钥”填写上面步骤2的“服务端口”和“密钥”,两者要保持一致。其他保持默认即可。
在浏览器里输入:家庭服务器的IP+Dashboard 端口,例如“192.168.1.2:7400”,回车后弹出对话框,输入客户端设置的“用户名”和“密码”,进入frp设置面板。
选择设置面板的“Configure”,这里可以看到上面设置的服务IP、端口、密钥等信息,不用管它。图片中下面红色方框内的配置信息需要自己添加,这才是关键的地方。
配置好后,还是这个页面,点上面的“upload”,提示成功后,进入“Overview”,会显示如下信息,“status”那里显示“running”代表成功了。
[[proxies]]
# 隧道名称,可自定义,不能重复
name = "web_nas_http"
# 隧道类型,可用tcp, udp, http, https, tcpmux, stcp, sudp, xtcp
type = "tcp"
# 本地IP地址,如果是本机就127.0.0.1
localIP = "127.0.0.1"
# 本地端口,本地服务端口
localPort = 80
# 远程端口,连接隧道时用的端口
remotePort = 8019
[[proxies]]
name = "web_nas_https"
type = "tcp"
localIP = "127.0.0.1"
localPort = 443
remotePort = 4432
同样的,在登录服务端的面板,也能看到相关信息,状态显示“online”,这样就代表frp的安装和设置就全部完成了。
其他设置
最关键的内网穿透frp安装完毕后,网站需要正常访问,还要进行一些相关的设置才可以。
云主机端
进入1panel面板后,选择左侧的
网站
-网站
,点击创建网站
按钮。选择
反向代理
,在主域名
那里填写访问网站的域名,代理地址填写本地IP地址+远程端口号
,例如:127.0.0.1:8019,前面选择http,设置好后点确定。上面设置的是HTTP访问,现在的网站一般都采用HTTPS进行访问,可以参照步骤2设置HTTPS,就是在代理地址那里的前面选择https,IP端口换成对应的远程端口号即可。至于申请设置SSL证书不在本文讲解范围内,这里不再赘述。
家庭服务器端
参照上面步骤1,进入1panel面板后,选择左侧的
网站
-网站
,点击创建网站
按钮。这里就跟我们平常安装网站、设置网站一样了,可以选择一键部署、运行环境、静态网站等方式,在
主域名
那里填写云主机上设置的域名,设置好后点确定。
总结
通过以上的设置,我们的网站就可以正常访问了。这样设置的好处是:
网站业务部署在本地,云主机只起到跳转作用,不用担心云主机跑路数据丢失。
本地服务器配置可以随心选择,可以是旧电脑或者是专门配置的新电脑,硬件轻轻松松8H16G,方便各种折腾。
云主机不运行网站业务,只需要购买最普通的配置,选择够用的带宽就行,节省费用支出。
如有不明白的地方,以及不足或错误之处,欢迎在下方评论区讨论。