🌐FRP内网穿透Docker部署
2024-10-14
| 2025-9-14
字数 0阅读时长 1 分钟
type
status
date
slug
summary
tags
category
icon
password
🤖
AI总结 文章介绍了使用FRP(Fast Reverse Proxy)实现内网穿透,以便通过境外服务器访问境内服务器的服务,无需备案即可使用域名。文章详细讲解了FRP的概念和工作原理,包括FRPS(服务端)在境外服务器的部署和FRPC(客户端)在境内服务器的部署。使用Docker进行部署,并配置Nginx Proxy Manager管理域名和SSL证书,最终实现HTTPS访问境内服务。涵盖了FRP的主要作用和部署的前提条件,以及具体的配置步骤。
English Version
The article introduces the use of FRP (Fast Reverse Proxy) to achieve intranet penetration, enabling access to services on domestic servers via overseas servers without the need for domain registration. It provides a detailed explanation of FRP's concepts and working principles, including the deployment of FRPS (server) on overseas servers and FRPC (client) on domestic servers. Docker is used for deployment, and Nginx Proxy Manager is configured to manage domain names and SSL certificates, ultimately achieving HTTPS access to domestic services. The article covers the main functions of FRP, prerequisites for deployment, and specific configuration steps.
 

一,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 配置如下所示:

3,开放端口并运行

运行sudo ufw allow 7070/tcp 命令在防火墙开放7070端口,同时在VPS管理端开放7070端口
(1)使用docker部署运行FRPS
Image:snowdreamtech/frps:alpine
Port Mapping: host 7070container 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)服务器部署运行

四,FRPC境内服务器部署

1,拉取FRPC容器或软件

运行docker pull命令拉取容器docker pull snowdreamtech/frpc:alpine
若无法拉去,可使用镜像docker pull dockerpull.com/snowdreamtech/frpc:alpine
Releases · fatedier/frp · GitHub 中下载压缩包,解压后将frpc.toml 发送到服务器,其中frpc 是FRP客户端软件,可以不使用Docker直接运行该软件。

2,frpc.toml配置

frpc.toml 配置如下所示:

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)服务器部署运行

五,配置Nginx-Proxy-Manager

1,配置域名SSL证书

SSL CertificatesAdd SSL Certificate → 两种方法任意

2,域名映射到境内服务器Docker

DashboardProxy HostsAdd Proxy Hosts
Domain Names: www.nginxmanager.com
Scheme: http
Forward Hostname/IP:docker-frps-ipv4-address
Forward Port:8080

3,访问域名

域名可通过HTTPS访问,该SSL证书部署在境外服务器,但境外服务器通过内网穿透以HTTP形式访问境内服务。
 
  • 工具
  • 网络
  • RustDesk中继服务器Docker部署公益AI站点
    Loading...