新闻资讯

内网穿透需求高涨,frp内网穿透教程带你轻松实现异地访问

2026-08-19

在数字化办公与远程协作日益普及的今天,将内网服务安全地暴露到公网已成为许多技术人员的刚需。无论是远程连接家中NAS、访问公司内部的ERP系统,还是调试本地开发的Web应用,内网穿透都是一项不可或缺的技能。本文将以详实的步骤为你拆解一套完整的frp内网穿透教程,帮助你从零开始搭建稳定、高效的远程访问通道。

1. 什么是frp?为什么选择它?

frp(Fast Reverse Proxy)是目前使用最广泛的开源内网穿透工具之一。它的核心原理是在一台拥有公网IP的服务器(服务端)和内网设备(客户端)之间建立隧道,将内网请求转发到公网,从而实现外网访问内网服务。相比于商业方案,frp内网穿透教程的优势在于:

完全开源免费:代码托管在GitHub,社区活跃,安全性可审计。

支持丰富协议:TCP、UDP、HTTP、HTTPS均可代理,满足远程桌面、SSH、Web服务等多种场景。

轻量灵活:客户端与服务端程序体积小,可在Linux、Windows、macOS、路由器甚至单片机等设备上运行。

自带管理面板:通过Dashboard可以实时查看连接状态、流量统计,运维方便。

准备好了吗?跟随这套frp内网穿透教程,你将实现从零到一的完整部署。

2. 环境准备与基础架构

在开始动手前,你需要准备以下资源:

一台有公网IP的服务器(VPS):作为frp服务端,用于接收外网请求并转发给内网设备。推荐内存不低于512MB,系统为Linux(如Ubuntu 20.04)。

一台内网设备:作为frp客户端,即需要被远程访问的机器(例如你的办公电脑、NAS或树莓派)。

域名(可选但推荐):用于绑定HTTP/HTTPS服务的访问入口,避免直接暴露IP。

架构简图:


外网用户 → 域名/IP:端口 → 公网服务器(frps) → 内网设备(frpc)

下面进入正式的frp内网穿透教程操作环节。

3. 服务端搭建(frps)

步骤1:下载frp并解压

登录你的VPS,执行以下命令下载最新版frp(以Linux amd64为例,其他架构请前往GitHub Releases选择对应文件):


wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz

tar -zxvf frp_0.54.0_linux_amd64.tar.gz

cd frp_0.54.0_linux_amd64

步骤2:编辑服务端配置文件

使用vim或nano编辑 frps.toml 文件(新版frp采用toml格式,旧版本为ini,原理相同):

图片2


[common]

bind_port = 7000               # frps监听端口,用于与frpc通信

vhost_http_port = 8080         # HTTP代理端口(可选)

token = your_secure_token      # 安全验证令牌,客户端需一致

dashboard_port = 7500          # 管理面板端口(可选)

dashboard_user = admin

dashboard_pwd = admin123

步骤3:启动服务端


./frps -c frps.toml

若输出类似 start frps success 的日志,说明启动成功。建议使用 systemd 将其注册为服务,实现开机自启。

至此,服务端搭建完成,接下来进入frp内网穿透教程的第二阶段。

4. 客户端配置(frpc)

步骤1:在客户端设备下载并解压frp

同样下载frp,但注意目标系统架构。Windows用户选择 windows_amd64 版本;树莓派用户选择 linux_arm 版本。

步骤2:编辑客户端配置文件

编辑 frpc.toml,添加需要暴露的内网服务。以下是一个远程桌面(RDP)和HTTP网站的例子:


[common]

server_addr = your_vps_ip       # 你的公网服务器IP

server_port = 7000              # 与服务端bind_port一致

token = your_secure_token       # 与服务端一致

**远程桌面(RDP)**

[rdp]

type = tcp

![图片1](https://public-cdn.orayimg.com/help/eb4149891f6376cb894106b5368cef5d)

local_ip = 127.0.0.1

local_port = 3389

remote_port = 7001              # 访问时使用VPS的7001端口

**HTTP网站**

[web]

type = http

local_port = 80

custom_domains = your-domain.com # 或直接使用IP:端口

步骤3:启动客户端


./frpc -c frpc.toml

客户端连接成功后,你在外网可以通过 http://your_vps_ip:7001 访问内网远程桌面,或通过 http://your-domain.com:8080 访问内网Web服务。

5. 进阶优化与安全加固

完成上述frp内网穿透教程后,你已具备基本的远程访问能力。但生产环境中还需注意以下几点:

配置systemd自启:参考frp官方文档编写服务文件,确保重启后自动运行。

使用证书加密:若需代理HTTPS服务,可在frps中配置证书路径,或通过Nginx反向代理进行SSL卸载。

限制访问IP:在frpc配置中对特定服务设置 allow_ipsdeny_ips,防止未授权访问。

开启Dashboard:通过管理面板可监控各隧道的连接数、流量,便于排障。

这套frp内网穿透教程不仅适用于个人开发者,也适合小团队快速搭建远程办公环境。理解其底层原理后,你还可以将其集成到自动化部署脚本中,实现一键式内网穿透。

FAQ(常见问题)

Q:服务端和客户端连接后,外网无法访问,如何排查?

A:首先确保VPS防火墙放行了相关端口(如7000、7001、8080、7500)。其次检查 frpcfrps 日志,看是否有认证失败或连接超时的提示。最后验证内网服务是否正常运行(本地 telnet 127.0.0.1 端口 是否通)。

Q:frp支持UDP协议吗?我想远程联机打游戏。

A:支持。在配置文件中将 type 设为 udp 即可,例如代理Minecraft服务器的25565端口。注意游戏对延迟敏感,建议选择离你地理位置较近的VPS。

Q:frp域名绑定后,访问出现502错误是什么原因?

A:可能是 vhost_http_port 未开放,或 custom_domains 未正确指向VPS IP。请确认域名A记录解析正确,且防火墙允许访问该端口。另外,若内网服务本身未正常监听,也会导致502。

新闻资讯
热门专题
最新专题
友情链接