内网穿透frp配置外网访问内网:Frp内网穿透配置教程
为什么需要内网穿透?
很多家庭或公司内网的服务器、NAS、开发机没有公网 IP,出门后无法直接访问。frp(Fast Reverse Proxy) 是最流行的内网穿透工具之一,它能借助一台有公网 IP 的服务器,把内网服务“映射”到外网。
本文围绕 内网穿透frp配置外网访问内网 展开,手把手教你完成整个流程。
准备工作:你需要什么?
- 一台有公网 IP 的服务器(VPS 或云服务器),操作系统推荐 Ubuntu 20.04+ 或 CentOS 7+。
- 一台需要被穿透的内网机器(Linux/Windows 均可)。
- frp 软件包:从 GitHub Releases 下载最新版,服务端和客户端都用同一个包,区分配置文件即可。
- 基本网络知识:了解防火墙放行、端口号概念。
小提示:下载时选择对应系统架构(如 linux_amd64、windows_amd64),解压后得到 frps(服务端)、frpc(客户端)两个二进制文件。
服务端配置:VPS 上安装 frps
- 上传并解压:将 frp 压缩包传到 VPS,解压后进入目录。
- 编辑服务端配置文件
frps.toml(新版本使用 .toml,旧版为 .ini,建议用新版):
bindPort = 7000 # frp 控制端口,客户端通过这个端口连接
vhostHTTPPort = 8080 # HTTP 穿透默认端口(可选)
auth.method = "token"
auth.token = "your-secret-token" # 自定义一个强密码,客户端要一致
webServer.addr = "0.0.0.0"
webServer.port = 7500 # 管理面板端口
webServer.user = "admin"
webServer.password = "admin"
- 启动服务端:
./frps -c frps.toml &
或者用 systemd 做成服务(参考官方文档)。
- 防火墙放行:VPS 安全组/防火墙放行
7000、7500和你要映射的外网端口(如8080)。
客户端配置:内网机器上安装 frpc
- 同样下载解压 frp 包到内网机器。
- 编辑客户端配置文件
frpc.toml:
serverAddr = "你的VPS公网IP"
serverPort = 7000
auth.method = "token"
auth.token = "your-secret-token" # 必须与服务端一致
[[proxies]]
name = "test-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000 # 外网访问时用 VPS 的 6000 端口映射到内网 22 端口
如果想穿透 HTTP 服务,增加一个 [[proxies]] 块,type 改为 http,并设置 customDomains。
- 启动客户端:
./frpc -c frpc.toml &
- 检查日志:看到
start proxy success表示连接成功。
避坑指南:常见问题与解决方法
- 防火墙/SELinux 未关闭:VPS 安全组需要在控制台放行端口,同时内网机器防火墙不能阻止出站(通常没问题)。
- Token 不一致:服务端和客户端的
token值必须完全一样,否则无法认证。 - 端口冲突:
bindPort或remotePort被占用会启动失败,换一个数字即可。 - 客户端断线重连:默认自带重连机制,但如果网络不稳定,可以在
frpc.toml中增加transport.heartbeatInterval = 30来保持心跳。 - 管理面板无法访问:检查
webServer.port = 7500是否放行,访问http://VPS公网IP:7500输入账号密码。
效果验证:从外网访问内网服务
完成以上配置后,你就可以在外网的任意电脑(或手机)上测试了:
- SSH 穿透示例:执行
ssh -p 6000 user@你的VPS公网IP,成功连接即表示穿透生效。 - HTTP 穿透示例:在浏览器打开
http://你的VPS公网IP:8080,应该看到内网 Web 服务的内容。 - 查看 frps 日志:VPS 上
tail -f frps.log能看到连接记录,客户端也能看到流量统计。
如果访问失败,优先检查 VPS 安全组、防火墙和配置文件中的端口号是否一致。
写在最后
内网穿透frp配置外网访问内网 是运维和开发中非常实用的技能。
按照本文步骤,你可以在 30 分钟内让内网服务暴露到公网。
遇到问题不要慌,逐一排查 token、端口、防火墙这几个关键点。
后续还可以配置 frp 的 http 类型域名转发、stcp 安全隧道等高级功能。
建议先把这篇基础配置跑通,再根据实际需求做扩展。