FRP v0.65.0 内网穿透专业指南(SSH + HTTP/HTTPS 一体化配置)

FRP(Fast Reverse Proxy)是一款高性能内网穿透工具,依赖 长连接 实现内网设备被公网访问。本文聚焦 FRP 核心配置,展示如何通过 一套 frpc 配置同时实现 SSH、HTTP 和 HTTPS 内网穿透。


1️⃣ 核心架构与连接机制

  • 服务端(frps):部署在公网服务器上,监听 TCP(默认 7000)和 HTTP/HTTPS vhost 端口(默认 80/443)。

  • 客户端 (frpc):运行在内网主机或 WSL,建立持久 TCP 长连接到 frps。

  • 穿透原理:frps 接收公网请求,通过长连接转发到对应 frpc,再由 frpc 访问本地服务,响应回传给公网。

长连接的优势:

  • 避免频繁 TCP/TLS 握手,提高访问效率

  • 支持多服务复用一条连接

  • 穿透 NAT 与防火墙


2️⃣ 服务端安装与配置

下载与安装

复制代码
wget https://github.com/fatedier/frp/releases/download/v0.65.0/frp_0.65.0_linux_amd64.tar.gz
tar -zxvf frp_0.65.0_linux_amd64.tar.gz
sudo mv frp_0.65.0_linux_amd64 /usr/local/frp
cd /usr/local/frp

frps.toml 示例

复制代码
bindPort = 7000
token = "REPLACE_WITH_SECURE_TOKEN"

vhostHTTPPort = 80
vhostHTTPSPort = 443

webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "REPLACE_PASSWORD"

auth.method = "token"
auth.token = "REPLACE_WITH_SECURE_TOKEN"

logFile = "./frps.log"
logLevel = "info"
logMaxDays = 3

systemd 启动服务

/etc/systemd/system/frps.service

复制代码
[Unit]
Description=frps - fast reverse proxy server
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/usr/local/frp
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.toml
Restart=on-failure
RestartSec=5s
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload sudo systemctl enable --now frps


3️⃣ 客户端配置(SSH + HTTP + HTTPS)

将内网所有服务映射统一管理在一份 frpc.toml

复制代码
serverAddr = "YOUR_FRPS_IP_OR_DOMAIN"
serverPort = 7000

auth.method = "token"
auth.token = "REPLACE_WITH_SECURE_TOKEN"

# SSH 内网穿透
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

# HTTP 内网穿透
[[proxies]]
name = "main-http"
type = "http"
localIP = "127.0.0.1"
localPort = 3000
customDomains = ["huaxianguan.com"]

# 子域名 HTTP
[[proxies]]
name = "app-http"
type = "http"
localIP = "127.0.0.1"
localPort = 8080
customDomains = ["app.huaxianguan.com"]

# HTTPS 内网穿透(https2http 插件)
[[proxies]]
name = "secure-https"
type = "https"
customDomains = ["secure.huaxianguan.com"]

[proxies.plugin]
type = "https2http"
localAddr = "127.0.0.1:8443"
crtPath = "/path/to/secure.huaxianguan.com.crt"
keyPath = "/path/to/secure.huaxianguan.com.key"
hostHeaderRewrite = "127.0.0.1"

client systemd

/etc/systemd/system/frpc.service

复制代码
[Unit]
Description=frpc - FRP client
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/usr/local/frp
ExecStart=/usr/local/frp/frpc -c /etc/frp/frpc.toml
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

启动客户端:

sudo systemctl daemon-reload sudo systemctl enable --now frpc


4️⃣ 访问示例

  • SSH:ssh -p 6000 user@YOUR_FRPS_IP

  • HTTP:http://huaxianguan.com → 转发到 frpc 的 3000

  • 子域 HTTP:http://app.huaxianguan.com → 转发到 frpc 的 8080

  • HTTPS:https://secure.huaxianguan.com → frps 443 → frpc 插件处理 → 内网服务 8443

所有流量都通过 frps 长连接转发,实现统一穿透管理。


5️⃣ 高级配置与优化

  • 长连接优化

    transport.useEncryption = true
    transport.useCompression = true
    heartbeatInterval = 30
    heartbeatTimeout = 90

  • 多服务复用:frpc 可以在一条长连接上复用多 TCP / HTTP / HTTPS 映射,无需为每个服务新建连接。

  • 安全建议

    • 强 token

    • HTTPS 内网穿透时使用 TLS 证书

    • 日志记录与定期审计


6️⃣ 总结

  • FRP 通过长连接实现高效内网穿透,支持 TCP(SSH)、HTTP、HTTPS 等多类型流量。

  • 统一管理 frpc.toml 可同时映射 SSH、HTTP、HTTPS 服务。

  • 服务端 frps 与客户端 frpc 都可通过 systemd 管理,实现开机自启与高可用。

  • 高级配置可开启压缩、加密和心跳,保障穿透稳定性与安全。

相关推荐
.ZGR.1 天前
internet-v2-v3-evolution-blog
websocket·网络协议·https·udp·p2p
2501_915918411 天前
抓包鹰 抓包会话重放与压力测试,接口回归验证与性能压测的方法
网络协议·计算机网络·网络安全·ios·adb·https·压力测试
2501_916007471 天前
iOS App分发教程 App Store、TestFlight 与 Ad Hoc 的配置与上传方法
android·ios·小程序·https·uni-app·iphone·webview
一条泥憨鱼1 天前
【从0开始学习计算机网络】| HTTP 状态码
开发语言·网络·网络协议·计算机网络·http
驭渊的小故事1 天前
网络原理02(http协议详细解析1)
网络·网络协议·http
q567315232 天前
企业级 HTTP 代理采购选型:技术评估清单 15 项
开发语言·网络·爬虫·网络协议·http·隧道ip·代理ip
白嫖一茶2 天前
HTTP 状态码详解:五大类与常见状态码解析
网络·网络协议·http
ai_xiaogui2 天前
PanelAI没有域名也能装?IP安装+自签HTTPS+安全加固全攻略(私有化部署必备)
tcp/ip·安全·https·私有化部署·自签证书·panelai·自带https自动续证
AlanBruce2 天前
摩尔信使MThings EdgeWeb HTTP API接口
网络·网络协议·http·上位机·plc·modbus·摩尔信使
如若1232 天前
Ubuntu 无 sudo 安装花生壳并实现 SSH 内网穿透:Conda 环境部署、冲突排查与自动启动
linux·运维·ubuntu·ssh·内网穿透