内网穿透实现公网访问
FRP 内网穿透核心原理是:公网服务器跑 frps(服务端)、内网设备跑 frpc(客户端),通过配置建立隧道,把内网服务暴露到公网。
一、准备工作
- 一台有公网 IP 的云服务器(阿里云 / 腾讯云 / 华为云等,2 核 2G 即可)
- 内网设备(电脑 / NAS / 树莓派等,需访问的服务已运行)
- 下载 FRP:https://github.com/fatedier/frp/releases
安装解压
1 | # 以 Linux 64 位为例 |
二、配置 frps(服务端)
编辑 frps.ini:
1 | [common] |
启动服务端:
1 | #前台运行(测试用) |
开放端口(安全组 + 防火墙)
- 云服务器控制台安全组:放行 7000、7500(及后续业务端口)
- 系统防火墙(如 ufw):
1 | ufw allow 7000/tcp |
设置开机自启(Systemd)
sudo vim /etc/systemd/system/frps.service
1 | [Unit] |
启用 frps 服务
1 | sudo systemctl daemon-reload |
二、配置 frpc(客户端) 内网设备
1、安装与解压(同服务端,下载对应系统版本)
2、编辑 frpc.ini:
1 | [common] |
3、启动客户端:
1 | #前台运行(测试用) |
Linux开机自启(Systemd)
sudo vim /etc/systemd/system/frpc.service
1 | [Unit] |
1 | sudo systemctl daemon-reload |
三、验证访问
- 公网访问:
ssh -p 5081 root@你的服务器公网IP(默认 22 端口) - 公网访问:
http://你的服务器公网IP:5082(默认 80 端口)
四、常见问题
- 连接失败:检查服务器安全组、防火墙是否放行端口
- 访问慢:可能是网络问题,尝试更换服务器位置或优化网络
- 无法访问服务:确认内网服务正常运行;local_port 正确配置