一文讲懂frp内网穿透,附可选开启Dashboard的连接状态查看
围绕内网穿透工具frp(Fast Reverse Proxy)展开,首先提出可选开启其配套的Dashboard可视化功能,用于直观、便捷地查看frp的实时连接状态;接着直接点明核心待解答问题——“frp内网穿透是什么意思”,当前尚未补充该工具的定义、穿透原理、适用场景等关键解释信息,需等待后续输入更详尽的frp相关资料,才能进一步梳理。
轻松搞定内网穿透:frp完整配置教程与实战案例
什么是frp?为什么需要它?
在日常使用中,我们经常会遇到这样的场景:想在公司远程访问家里的NAS、树莓派,或者想把本地开发的网站临时分享给客户测试,但这些设备都在内网中,没有公网IP,直接访问是不可能的,这时候,内网穿透工具就派上用场了,而 frp(fast reverse proxy)就是其中最流行、最易用的开源工具之一。
frp 是一个专注于内网穿透的高性能反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,能让你通过一台有公网IP的服务器(如VPS),轻松访问内网中的设备和服务。
准备工作
在开始配置之前,你需要准备以下两样东西:
- 一台有公网IP的服务器:可以是阿里云、腾讯云等云厂商的VPS,系统推荐Linux(如Ubuntu、CentOS)。
- 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即可。
安全与注意事项
- 防火墙配置:务必在VPS防火墙(如ufw、iptables)中开放用到的端口(如7000、6000、8080等)。
- Token认证:在服务端和客户端的
[common]中添加token = 你的密码,避免未授权连接。 - 避免暴露敏感端口:如MySQL、SSH等,尽量使用非默认的remote_port,或结合IP白名单限制访问。
- 定期更新frp:GitHub上会更新安全补丁,建议使用最新版本。
实战案例:远程访问家里的NAS
假设你有一台群晖NAS,内网IP是192.168.1.100,管理端口是5000。
-
服务端配置:保持之前的frps.ini不变。
-
客户端配置:在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
-
启动客户端后,在浏览器输入
http://公网IP:5000即可远程管理NAS。
frp 以其简单的配置、丰富的协议支持和稳定的性能,成为内网穿透的首选工具,无论是远程访问内网设备,还是临时分享本地服务,都能轻松搞定,只要按照本文的步骤操作,即使是新手也能快速搭建属于自己的内网穿透服务。
快去试试吧,让你的内网设备“触手可及”!

