FRP(Fast Reverse Proxy)是一种高性能的反向代理应用,广泛用于内网穿透。它允许用户通过一个公有IP地址访问位于内网中的服务。下面将介绍如何使用FRP将家庭局域网中的多个Web程序通过云服务器暴露到互联网上。
一、准备工作
- 云服务器: 首先需要一台可以公开访问的云服务器(如阿里云、腾讯云等)。
- 家庭局域网: 确保在家中有一台运行Windows的主机,且上面已经部署好各类Web服务(如Apache、Nginx等)。
- FRP软件: 下载FRP的服务端和客户端,可以在FRP的GitHub页面下载。
二、部署FRP服务端
- 在云服务器上安装FRP: 登录到云服务器,下载FRP的最新版本并解压:
bash
wget https://github.com/fatedier/frp/releases/download/v0.51.0/frp_0.51.0_linux_amd64.tar.gz
tar -zxvf frp_0.51.0_linux_amd64.tar.gz
cd frp_0.51.0_linux_amd64
- 配置FRP服务端:
编辑
frps.ini
文件,配置FRP服务器的基本信息:
ini
[common]
bind_port = 7000
# 设置多个web服务的访问
vhost_http_port = 8080
vhost_https_port = 8443
启动FRP服务端:
bash
./frps -c ./frps.ini
三、部署FRP客户端
-
在家庭Windows主机上安装FRP: 下载FRP的Windows版本,解压到指定目录。
-
配置FRP客户端: 编辑
frpc.ini
文件,将家庭主机上的Web服务映射到云服务器:
```ini [common] server_addr = YOUR_CLOUD_SERVER_IP server_port = 7000
[web1] type = http local_ip = 127.0.0.1 local_port = 8081 # 家庭主机上Web服务运行端口 remote_port = 81 # 云服务器上的映射端口
[web2] type = http local_ip = 127.0.0.1 local_port = 8082 # 另一个运行在家庭主机上的Web服务 remote_port = 82 # 云服务器上的映射端口 ```
启动FRP客户端:
cmd
frpc -c frpc.ini
四、访问服务
完成以上步骤后,你就可以通过访问云服务器的IP地址和远程端口来访问家庭局域网中的Web服务。例如:
- 访问第一个Web服务:
http://YOUR_CLOUD_SERVER_IP:81
- 访问第二个Web服务:
http://YOUR_CLOUD_SERVER_IP:82
五、安全配置
为了保证我们的FRP服务更安全,建议采取以下措施:
- 使用token进行身份验证。在
frps.ini
和frpc.ini
中添加:
```ini # frps.ini [common] token = your_secure_token
# frpc.ini [common] token = your_secure_token ```
- 对于外部访问的Web应用,应考虑HTTPS加密,FRP支持通过Let's Encrypt进行SSL证书自动申请。
六、总结
通过FRP内网穿透,可以方便地将家庭局域网中的多个Web服务映射到云服务器,达成互联网访问的目的。可以根据实际需求自由增加和配置服务。使用FRP的过程中,确保对安全进行适当的考虑,以防止未授权访问。