一文讲懂frp内网穿透,附可选开启Dashboard的连接状态查看

2026-07-30 22:37:03 78阅读
围绕内网穿透工具frp(Fast Reverse Proxy)展开,首先提出可选开启其配套的Dashboard可视化功能,用于直观、便捷地查看frp的实时连接状态;接着直接点明核心待解答问题——“frp内网穿透是什么意思”,当前尚未补充该工具的定义、穿透原理、适用场景等关键解释信息,需等待后续输入更详尽的frp相关资料,才能进一步梳理。

轻松搞定内网穿透:frp完整配置教程与实战案例


什么是frp?为什么需要它?

在日常使用中,我们经常会遇到这样的场景:想在公司远程访问家里的NAS、树莓派,或者想把本地开发的网站临时分享给客户测试,但这些设备都在内网中,没有公网IP,直接访问是不可能的,这时候,内网穿透工具就派上用场了,而 frp(fast reverse proxy)就是其中最流行、最易用的开源工具之一。

一文讲懂frp内网穿透,附可选开启Dashboard的连接状态查看

frp 是一个专注于内网穿透的高性能反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,能让你通过一台有公网IP的服务器(如VPS),轻松访问内网中的设备和服务。

准备工作

在开始配置之前,你需要准备以下两样东西:

  1. 一台有公网IP的服务器:可以是阿里云、腾讯云等云厂商的VPS,系统推荐Linux(如Ubuntu、CentOS)。
  2. frp 安装包:服务端(frps)和客户端(frpc)需要对应版本,下载地址:frp GitHub Releases
    注意:根据服务器和内网设备的系统架构(如amd64、arm64)选择对应的压缩包。

服务端(frps)配置

服务端运行在有公网IP的VPS上,负责接收客户端的连接并转发流量。

上传并解压frp

将下载的frp压缩包上传到VPS,解压后进入目录:

tar -zxvf frp_0.52.3_linux_amd64.tar.gz  # 替换为你的版本号
cd frp_0.52.3_linux_amd64

编辑服务端配置文件 frps.ini

打开 frps.ini,配置基础参数:

[common]
bind_port = 7000  # frp服务端与客户端通信的端口,需在防火墙开放
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = your_password  # 替换为你的密码

启动服务端

  • 直接启动(测试用):
    ./frps -c ./frps.ini
  • 后台运行(生产用):
    nohup ./frps -c ./frps.ini > frps.log 2>&1 &

设置开机自启(可选)

创建systemd服务文件 /etc/systemd/system/frps.service

[Unit]
Description=frp server
After=network.target
[Service]
Type=simple
User=root
ExecStart=/path/to/frps -c /path/to/frps.ini  # 替换为实际路径
Restart=on-failure
[Install]
WantedBy=multi-user.target

然后启用服务:

systemctl daemon-reload
systemctl enable frps
systemctl start frps

客户端(frpc)配置

客户端运行在内网设备上(如NAS、本地电脑),负责将内网服务映射到公网服务器,下面介绍3种常见场景的配置。

场景1:远程SSH登录内网设备

假设内网设备的SSH端口是22,我们想通过公网服务器的6000端口访问它。

编辑客户端配置文件 frpc.ini

[common]
server_addr = 你的公网服务器IP
server_port = 7000  # 与服务端bind_port一致
token = your_token  # 可选:添加token增强安全性,服务端也需配置相同token
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000  # 公网服务器上用于访问的端口,需在防火墙开放

测试连接:在其他电脑上执行 ssh -p 6000 内网用户名@公网服务器IP,即可登录内网设备。

场景2:映射本地HTTP网站

如果本地有一个运行在8080端口的网站,想通过公网域名访问。

服务端额外配置(frps.ini):

添加HTTP代理端口:

[common]
# ... 之前的配置
vhost_http_port = 8080  # 公网访问HTTP的端口

客户端配置(frpc.ini):

[common]
server_addr = 你的公网服务器IP
server_port = 7000
token = your_token
[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
custom_domains = your_domain.com  # 替换为你的域名(需解析到公网服务器IP)

访问:在浏览器输入 http://your_domain.com:8080 即可看到本地网站。

场景3:映射内网TCP服务(如MySQL)

假设内网MySQL端口是3306,想通过公网服务器的33060端口访问。

客户端配置(frpc.ini):

[common]
server_addr = 你的公网服务器IP
server_port = 7000
token = your_token
[mysql]
type = tcp
local_ip = 127.0.0.1
local_port = 3306
remote_port = 33060  # 公网端口,需开放防火墙

启动客户端

与服务端类似,客户端也可以直接启动或后台运行:

  • 直接启动:./frpc -c ./frpc.ini
  • 后台运行:nohup ./frpc -c ./frpc.ini > frpc.log 2>&1 &
  • 开机自启:参考服务端的systemd配置,将frps改为frpc即可。

安全与注意事项

  1. 防火墙配置:务必在VPS防火墙(如ufw、iptables)中开放用到的端口(如7000、6000、8080等)。
  2. Token认证:在服务端和客户端的 [common] 中添加 token = 你的密码,避免未授权连接。
  3. 避免暴露敏感端口:如MySQL、SSH等,尽量使用非默认的remote_port,或结合IP白名单限制访问。
  4. 定期更新frp:GitHub上会更新安全补丁,建议使用最新版本。

实战案例:远程访问家里的NAS

假设你有一台群晖NAS,内网IP是192.168.1.100,管理端口是5000。

  1. 服务端配置:保持之前的frps.ini不变。

  2. 客户端配置:在NAS上安装frpc(群晖可通过Docker或手动安装),frpc.ini如下:

    [common]
    server_addr = 你的公网IP
    server_port = 7000
    token = your_token
    [nas]
    type = tcp
    local_ip = 192.168.1.100
    local_port = 5000
    remote_port = 5000
  3. 启动客户端后,在浏览器输入 http://公网IP:5000 即可远程管理NAS。

frp 以其简单的配置、丰富的协议支持和稳定的性能,成为内网穿透的首选工具,无论是远程访问内网设备,还是临时分享本地服务,都能轻松搞定,只要按照本文的步骤操作,即使是新手也能快速搭建属于自己的内网穿透服务。

快去试试吧,让你的内网设备“触手可及”!

文章版权声明:除非注明,否则均为亚朵原创文章,转载或复制请以超链接形式并注明出处。