侧边栏壁纸
博主头像
问道小站 博主等级

行动起来,活在当下

  • 累计撰写 5 篇文章
  • 累计创建 3 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

frp教程笔记

亦然
2025-12-07 / 0 评论 / 0 点赞 / 15 阅读 / 0 字

好的 👍 我帮你写一篇完整的 frp 内网穿透教程博文,内容会包含:

  • frp 简介

  • 使用场景

  • 服务端(frps)配置

  • 客户端(frpc)配置

  • 常见问题和优化


frp 内网穿透教程:轻松实现远程访问内网服务

什么是 frp?

frp (Fast Reverse Proxy) 是一款高性能的反向代理应用,用于内网穿透。它可以将内网中的服务(例如 Web 服务、SSH、远程桌面等)暴露到公网,方便远程访问。

常见应用场景:

  • 在家远程访问公司或家庭内网服务器

  • 将本地开发环境映射到公网,方便测试和演示

  • 为树莓派、NAS 等设备提供外网访问入口


安装 frp

frp 是 Go 写的单个二进制程序,部署非常简单:

# 下载 frp(以 0.60.0 为例,可去 GitHub Releases 获取最新版本)
wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz
tar -zxvf frp_0.60.0_linux_amd64.tar.gz
cd frp_0.60.0_linux_amd64

解压后会看到:

  • frps:服务端程序

  • frps.toml:服务端配置文件

  • frpc:客户端程序

  • frpc.toml:客户端配置文件


服务端配置(frps)

服务端需要有 公网 IP 的 VPS,比如阿里云、腾讯云、搬瓦工等。

编辑配置文件 frps.toml

# frps.toml
bindPort = 7000                # frpc 客户端连接 frps 的端口
dashboardPort = 7500           # Web 管理面板端口
dashboardUser = "admin"        # 面板用户名
dashboardPwd = "admin123"      # 面板密码
auth.method = "token"          # 使用 token 验证
auth.token = "1234567890"      # 客户端和服务端必须一致

启动服务端:

./frps -c frps.toml

后台运行(推荐使用 systemd 管理):

# /etc/systemd/system/frps.service
[Unit]
Description=frp server
After=network.target

[Service]
ExecStart=/root/frp/frps -c /root/frp/frps.toml
Restart=always
User=root

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

客户端配置(frpc)

客户端运行在 内网机器(例如你的家用电脑、树莓派、NAS)。

编辑 frpc.toml

# frpc.toml
serverAddr = "你的VPS公网IP"
serverPort = 7000
auth.method = "token"
auth.token = "1234567890"

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

[[proxies]]
name = "web"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["example.com"]

说明:

  • ssh:把内网的 22 端口映射到 VPS 的 6000 端口。

    • 使用时直接 ssh -p 6000 user@你的VPS_IP 即可远程登录。
  • web:把内网的 Web 服务映射到公网域名 example.com

启动客户端:

./frpc -c frpc.toml

同样可以用 systemd 托管。


常见问题

  1. 防火墙问题

    • 确保 VPS 开放了 bindPortdashboardPort 和所有 remotePort

    • 例如用 ufw

      sudo ufw allow 7000
      sudo ufw allow 7500
      sudo ufw allow 6000
      
  2. Token 验证失败

    • 检查 frps.tomlfrpc.tomlauth.token 是否一致。
  3. HTTP 映射无效

    • 确保域名解析到 VPS 的公网 IP。

    • 如果用 80/443 端口,需要在 VPS 开放这些端口。


总结

frp 的优点是:

  • 配置简单

  • 支持多种协议(TCP、UDP、HTTP、HTTPS、STCP、XTCP)

  • 有 Dashboard 方便管理

在实际使用中,建议:

  • 使用 Token 或 TLS 加强安全性

  • 配合 Nginx 反向代理,让多个服务共享 80/443

  • 配合 systemd 实现开机自启

这样一来,就可以非常方便地在公网访问内网服务了 🚀


要不要我帮你把这篇文章再改写成 Jekyll 博文格式(带 front matter),直接放到 _posts/ 就能用?

0

评论区