LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

[点晴永久免费OA]frp:10.3万Star的内网穿透神器

admin
2026年1月18日 14:18 本文热度 30

一、引言:内网穿透的刚需

你是否遇到过这些场景?

  • 🏠 远程办公:在公司想访问家里NAS上的文件
  • 🎮 搭建游戏服务器:和朋友联机玩Minecraft,但没有公网IP
  • 📹 远程监控:外出时想查看家里的摄像头画面
  • 💻 远程控制:需要从外网SSH到家里的Linux服务器
  • 🌐 展示项目:本地开发的Web应用想给客户演示

传统的解决方案要么很贵(花生壳专业版每年几百元),要么很复杂(自己配置公网服务器+端口转发)。今天介绍的这款工具,让内网穿透变得简单又免费。

二、项目介绍

frp(Fast Reverse Proxy)是一款高性能的反向代理应用,可以轻松实现内网穿透,让内网服务暴露到公网。

核心特点

  • ⚡ 高性能:基于 Go 语言开发,并发性能强
  • 🔒 安全可靠:支持TLS加密、Token认证、端到端加密
  • 🎯 协议丰富:TCP、UDP、HTTP、HTTPS、STCP全支持
  • 🔌 功能强大:负载均衡、健康检查、端口复用等高级功能
  • 🆓 完全免费:开源无限制,自建服务器零成本
  • 📦 部署简单:单个二进制文件,配置即用

GitHub 地址:https://github.com/fatedier/frp⭐ Stars:103.0K+开发语言:Go开源协议:Apache-2.0

三、工作原理

frp 采用客户端-服务器架构:

内网设备 (frpc) → 公网服务器 (frps) ← 外网用户
     ↓                  ↓                ↓
  内网服务          代理转发         访问服务

组件说明

  • frps(frp server):运行在有公网IP的服务器上
  • frpc(frp client):运行在内网设备上

流程

  1. frpc 连接到 frps,建立控制通道
  2. 外网用户访问 frps 的指定端口
  3. frps 将请求转发给 frpc
  4. frpc 转发到内网实际服务
  5. 响应原路返回

四、核心功能

1. TCP 端口转发

最基础的功能,转发任意 TCP 端口:

应用场景

  • SSH 远程登录
  • 数据库远程连接(MySQL、PostgreSQL)
  • 游戏服务器(Minecraft、CS:GO)
  • 远程桌面(RDP、VNC)

配置示例

# frpc.ini
[common]
server_addr = your-server.com
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

访问:ssh -p 6000 user@your-server.com → 连接到内网SSH

2. HTTP/HTTPS 代理

通过域名访问内网 Web 服务:

应用场景

  • 本地开发项目演示
  • 个人博客/网站部署
  • NAS Web 界面远程访问
  • Home Assistant 远程控制

配置示例

# frpc.ini
[web]
type = http
local_port = 8080
custom_domains = demo.example.com

访问:http://demo.example.com → 内网的 localhost:8080

HTTPS 示例

[web_https]
type = https
local_port = 443
custom_domains = secure.example.com

3. UDP 端口转发

转发 UDP 协议:

应用场景

  • 游戏服务器(部分游戏使用 UDP)
  • DNS 服务器
  • VoIP 应用

配置示例

[dns]
type = udp
local_ip = 8.8.8.8
local_port = 53
remote_port = 6053

4. 加密与压缩

保护数据传输安全:

TLS 加密

# frpc.ini
[common]
server_addr = your-server.com
server_port = 7000
tls_enable = true

# frps.ini
[common]
bind_port = 7000
tls_only = true

数据压缩

# frpc.ini
[ssh]
type = tcp
local_port = 22
remote_port = 6000
use_compression = true

5. 点对点穿透(STCP)

无需通过服务器中转,直接点对点连接:

优势

  • 更低延迟
  • 不消耗服务器带宽
  • 隐私性更好

服务端配置

# frpc.ini(内网服务提供方)
[secret_ssh]
type = stcp
sk = your_secret_key
local_ip = 127.0.0.1
local_port = 22

访问端配置

# frpc.ini(访问方)
[secret_ssh_visitor]
type = stcp
role = visitor
server_name = secret_ssh
sk = your_secret_key
bind_addr = 127.0.0.1
bind_port = 6000

访问:ssh -p 6000 user@127.0.0.1 → 点对点连接

6. 负载均衡

多台服务器负载分担:

# frpc1.ini
[web1]
type = tcp
local_port = 8080
remote_port = 80
group = web
group_key = your_group_key

# frpc2.ini(另一台服务器)
[web2]
type = tcp
local_port = 8080
remote_port = 80
group = web
group_key = your_group_key

frps 自动在两台服务器间负载均衡。

7. 端口范围映射

批量映射端口:

[range:game_server]
type = tcp
local_ip = 127.0.0.1
local_port = 6000-6010,7000-7010
remote_port = 6000-6010,7000-7010

一次性映射 22 个端口。

五、安装与配置

服务器端安装(frps)

前置条件

  • 一台有公网IP的服务器(云服务器、VPS)
  • 操作系统:Linux、Windows、macOS 均可

Linux 快速安装

# 1. 下载最新版本
wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz

# 2. 解压
tar -zxvf frp_0.54.0_linux_amd64.tar.gz
cd frp_0.54.0_linux_amd64

# 3. 配置 frps.ini
vi frps.ini

基础配置

[common]
bind_port = 7000                # frp 服务端口
dashboard_port = 7500           # 控制台端口
dashboard_user = admin          # 控制台用户名
dashboard_pwd = your_password   # 控制台密码
token = your_secure_token       # 客户端连接密钥

# 可选:日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 7

启动服务

# 前台运行(测试用)
./frps -c ./frps.ini

# 后台运行
nohup ./frps -c ./frps.ini &

# 或使用 systemd(推荐)
sudo vi /etc/systemd/system/frps.service

systemd 服务配置

[Unit]
Description=frp server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
Restart=on-failure

[Install]
WantedBy=multi-user.target
sudo systemctl enable frps
sudo systemctl start frps
sudo systemctl status frps

客户端安装(frpc)

Windows 安装

  1. 下载 frp_x.x.x_windows_amd64.zip
  2. 解压到 C:\frp\
  3. 编辑 frpc.ini
  4. 运行 frpc.exe -c frpc.ini

macOS 安装

# 使用 Homebrew
brew install frp

# 或手动下载
wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_darwin_amd64.tar.gz

Linux 安装

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

基础配置

[common]
server_addr = your-server.com    # frps 服务器地址
server_port = 7000                # frps 服务端口
token = your_secure_token         # 与 frps 一致

# SSH 穿透示例
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

# Web 服务穿透示例
[web]
type = http
local_port = 8080
custom_domains = myapp.example.com

启动客户端

./frpc -c ./frpc.ini

六、实战案例

案例1:远程SSH到家里电脑

需求:在公司访问家里的 Linux 服务器

服务器配置(frps.ini)

[common]
bind_port = 7000
token = my_secure_token_2024

客户端配置(frpc.ini)

[common]
server_addr = vps.example.com
server_port = 7000
token = my_secure_token_2024

[ssh_home]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6022

使用

ssh -p 6022 user@vps.example.com

案例2:远程访问NAS管理界面

需求:外网访问群晖NAS的Web界面

客户端配置

[common]
server_addr = vps.example.com
server_port = 7000
token = my_token

[nas_web]
type = http
local_ip = 192.168.1.100  # NAS 内网IP
local_port = 5000
custom_domains = nas.example.com

DNS 配置: 将 nas.example.com 解析到 frps 服务器IP

使用: 浏览器访问 http://nas.example.com

案例3:Minecraft 服务器穿透

需求:和朋友联机玩 Minecraft

客户端配置

[common]
server_addr = vps.example.com
server_port = 7000
token = my_token

[minecraft]
type = tcp
local_ip = 127.0.0.1
local_port = 25565
remote_port = 25565

朋友连接: 添加服务器:vps.example.com:25565

案例4:开发项目演示

需求:给客户展示本地开发的Web应用

客户端配置

[common]
server_addr = vps.example.com
server_port = 7000
token = my_token

[demo_project]
type = http
local_port = 3000  # React/Vue 开发服务器端口
custom_domains = demo.example.com

# 启用 HTTPS
[demo_project_https]
type = https
custom_domains = demo.example.com
plugin = https2http
plugin_local_addr = 127.0.0.1:3000

使用: 发送链接给客户:https://demo.example.com

案例5:远程桌面(RDP)

需求:远程控制家里的 Windows 电脑

客户端配置

[common]
server_addr = vps.example.com
server_port = 7000
token = my_token

[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389

使用: Windows 远程桌面连接:vps.example.com:3389

七、安全加固

1. Token 认证

防止未授权访问:

# frps.ini
[common]
token = use_a_very_strong_random_token_here

使用强随机 Token(推荐 32+ 字符)。

2. TLS 加密

加密控制通道:

# frps.ini
[common]
tls_only = true

# frpc.ini
[common]
tls_enable = true

3. 端到端加密(STCP)

连接完全不经过服务器:

# 使用 STCP 类型
type = stcp
sk = your_secret_key

4. IP 白名单

限制访问来源:

# frpc.ini
[ssh]
type = tcp
local_port = 22
remote_port = 6000
allow_users = user1,user2  # 只允许特定用户

5. 端口复用

隐藏 frp 服务端口:

# frps.ini
[common]
bind_port = 7000
vhost_http_port = 80
vhost_https_port = 443
bind_addr = 0.0.0.0

HTTP/HTTPS 服务和普通网站共用 80/443 端口。

八、对比分析

特性
frp
花生壳
ngrok
ZeroTier
费用
免费(自建)
免费版功能受限
免费版限制多
免费
带宽
取决于服务器
1Mbps(免费)
受限
点对点,无限
自定义域名
❌(付费版)
✅(付费版)
协议支持
TCP/UDP/HTTP/HTTPS
TCP/HTTP
HTTP/HTTPS/TCP
IP层
部署难度
中等
简单
简单
简单
性能
一般
中等
隐私性
高(自建)
极高
稳定性
取决于服务器
一般

适用场景

  • ✅ 长期使用:frp 成本最低(服务器月付)
  • ✅ 高带宽需求:frp 无限制
  • ✅ 隐私敏感:frp 完全自建,数据可控
  • ✅ 复杂场景:frp 功能最丰富
  • ❌ 临时演示:ngrok 更快
  • ❌ 组网需求:ZeroTier 更合适

九、常见问题

Q1:需要什么样的服务器?

最低配置

  • 1核 CPU
  • 512MB 内存
  • 1Mbps 带宽
  • 公网IP(必须)

推荐配置

  • 1核 CPU
  • 1GB 内存
  • 5Mbps+ 带宽

云服务器推荐

  • 阿里云轻量应用服务器(月付24元起)
  • 腾讯云轻量应用服务器(月付32元起)
  • Vultr VPS(月付 $6 起)

Q2:连接失败怎么办?

排查步骤

  1. 检查 frps 是否运行:systemctl status frps
  2. 检查防火墙是否开放端口:
    sudo firewall-cmd --add-port=7000/tcp --permanent
    sudo firewall-cmd --reload
  3. 检查云服务器安全组规则
  4. 检查 token 是否一致
  5. 查看日志:tail -f /var/log/frps.log

Q3:如何提升性能?

优化方法

  • 启用压缩:use_compression = true
  • 使用TCP多路复用:tcp_mux = true
  • 选择地理位置近的服务器
  • 升级服务器带宽

Q4:如何实现开机自启?

Windows: 使用任务计划程序创建开机启动任务

Linux

# 使用 systemd
sudo systemctl enable frpc

macOS: 创建 LaunchAgent 配置文件

Q5:域名如何配置?

  1. 在域名提供商处添加 A 记录
  2. 将域名指向 frps 服务器IP
  3. 在 frpc 配置中使用 custom_domains
  4. frps 需要监听 80/443 端口(或使用 Nginx 反向代理)

Q6:可以穿透多台设备吗?

可以!每台设备运行 frpc,使用不同的配置段名:

# 电脑1
[pc1_ssh]
type = tcp
local_port = 22
remote_port = 6001

# 电脑2
[pc2_ssh]
type = tcp
local_port = 22
remote_port = 6002

十、总结

frp 的核心优势

  • 🆓 成本低:开源免费,只需服务器费用(月付20-50元)
  • ⚡ 性能强:Go 语言开发,高并发无压力
  • 🔒 安全性高:TLS加密、Token认证、端到端加密
  • 🎯 功能丰富:TCP、UDP、HTTP、HTTPS、STCP 全支持
  • 🔧 高度定制:负载均衡、端口复用、健康检查等高级功能

适合你吗?

✅ 适合

  • 有一台云服务器或愿意购买(月付20+元)
  • 长期需要内网穿透
  • 注重隐私和安全
  • 需要高带宽、低延迟

❌ 不适合

  • 只是临时用一次(用 ngrok 更快)
  • 完全不懂技术(用花生壳更简单)
  • 不想买服务器

frp 虽然需要一定的学习成本,但一旦配置好,就是最强大、最灵活、性价比最高的内网穿透解决方案。

快速开始

  1. 购买一台最便宜的云服务器
  2. 部署 frps 服务端
  3. 在本地安装 frpc 客户端
  4. 配置并启动
  5. 享受自由的内网穿透

推荐资源

  • 📚 官方文档:https://gofrp.org/zh-cn/docs/
  • 🎯 配置示例:https://github.com/fatedier/frp/tree/dev/conf
  • 💬 问题讨论:https://github.com/fatedier/frp/discussions
  • 📖 中文教程:https://gofrp.org/zh-cn/

让 frp 成为你的内网穿透利器,随时随地访问内网资源!


阅读原文:原文链接


该文章在 2026/1/19 10:55:54 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved