AI总结
这篇文章详细介绍了如何使用FRP(Fast Reverse Proxy)实现内网穿透,以便通过境外服务器访问境内服务器的服务,无需备案即可使用域名。文章首先解释了FRP的概念和工作原理,然后提供了详细的部署步骤,包括在境外服务器上部署FRPS(服务端)和在境内服务器上部署FRPC(客户端)。文章还介绍了如何配置Nginx Proxy Manager来管理域名和SSL证书,最终实现通过HTTPS访问境内服务。
English Version
This article provides a comprehensive guide on using FRP (Fast Reverse Proxy) to achieve intranet penetration, allowing access to services on domestic servers through foreign servers without domain registration. The article begins by explaining the concept and working principles of FRP, followed by detailed deployment steps for FRPS (server-side) on foreign servers and FRPC (client-side) on domestic servers. It also covers the configuration of Nginx Proxy Manager for domain and SSL certificate management, ultimately enabling HTTPS access to domestic services.
一,FRP
1,FRP概述
FRP(Fast Reverse Proxy)是一款高性能的反向代理应用,专注于内网穿透。它允许用户将内网服务安全、便捷地通过具有公网IP的服务器暴露到公网,从而实现远程访问。
2,FRP工作原理
FRP主要由两个组件组成:
- 服务端(frps):部署在具有公网IP的服务器上。
- 客户端(frpc):部署在需要穿透的内网服务所在的机器上。
用户通过访问服务端的frps,FRP会根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。这种机制使得内网设备能够被外部用户访问,而无需进行复杂的网络配置或端口映射。
3,主要作用
- 远程访问内网HTTP/HTTPS服务
- 远程桌面连接(如Windows远程桌面)
- 远程文件访问
- SSH连接
- 家庭NAS、树莓派等设备的远程控制
在本文中,FRP作为一个媒介,主要以境外服务器作为跳板,从而实现无需备案就能够以域名访问境内服务器部署的服务。其中,境外服务器是FRP-Server,境内服务器是FRP-Client。
二,前提条件
1,硬件条件
一台境内服务器(此处以阿里云新人赠送的服务器为例,位于华南河源地区,价格低廉)
一台境外服务器(此处以Azure服务器为例,推荐HK地区,无需备案且实际延迟不高)
2,软件条件
全程基于Docker进行部署,两台机器都必须有Docker环境。
境外服务器要求安装
jc21/nginx-proxy-manager
,境内服务器无要求。建议使用
portainer/portainer-ce
进行Docker管理与部署。三,FRPS境外服务器部署
1,拉取FRPS容器或软件
运行docker pull命令拉去容器
docker pull
snowdreamtech/frps:alpine
从 Releases · fatedier/frp · GitHub 中下载压缩包,解压后将
frps.toml
发送到服务器,其中frps
是FRP服务器端软件,可以不使用Docker直接运行该软件。2,frps.toml配置
frps.toml
配置如下所示:plain
3,开放端口并运行
运行
sudo ufw allow 7070/tcp
命令在防火墙开放7070端口,同时在VPS管理端开放7070端口(1)使用docker部署运行FRPS
Image:snowdreamtech/frps:alpine
Port Mapping:
host 7070
→ container 7070
Volumes:
/etc/frp/frps.log
bind /path/to/frps.log
/etc/frp/frps.toml
bind /path/to/frps.toml
Network:bridge、docker-frps-ipv4-address
Restart Policy:Always
点击
Deploy the Container
部署完成(2)服务器部署运行
powershell
四,FRPC境内服务器部署
1,拉取FRPC容器或软件
运行docker pull命令拉取容器
docker pull
snowdreamtech/frpc:alpine
若无法拉去,可使用镜像
docker pull
dockerpull.com/snowdreamtech/frpc:alpine
2,frpc.toml配置
frpc.toml
配置如下所示:plain
3,开放端口并运行
(1)使用docker部署运行FRPC
Image:snowdreamtech/frpc:alpine
Volumes:
/etc/frp/frpc.log
bind /path/to/frpc.log
/etc/frp/frpc.toml
bind /path/to/frpc.toml
Network:bridge、docker-frpc-ipv4-address
Restart Policy:Always
点击
Deploy the Container
部署完成(2)服务器部署运行
powershell
五,配置Nginx-Proxy-Manager
1,配置域名SSL证书
SSL Certificates
→ Add SSL Certificate
→ 两种方法任意2,域名映射到境内服务器Docker
Dashboard
→ Proxy Hosts
→ Add Proxy Hosts
Domain Names: www.nginxmanager.com
Scheme: http
Forward Hostname/IP:docker-frps-ipv4-address
Forward Port:8080
3,访问域名
域名可通过HTTPS访问,该SSL证书部署在境外服务器,但境外服务器通过内网穿透以HTTP形式访问境内服务。