行业资讯

谷歌云服务器搭建frp:从零到上线的完整攻略

2025-09-25 11:46:47 行业资讯 浏览:10次


在互联网的世界里,内网的服务想要被外界访问,往往需要穿越防火墙和 NAT 的障碍。frp 是一个高效的内网穿透工具,能把你家里或局域网里的小应用,借助公网上的 frps 服务器,安全地映射到外网。本文围绕在谷歌云服务器(Google Cloud,简称 GCP)上搭建 frp 的全流程展开,目标是把一个本地服务暴露到公网,同时保持尽量简单、稳定和可维护。你不需要成为云端高手,也能在几步内把隧道搭起来,之后再用几分钟把域名、证书和鉴权落地。顺带一句,若你正在玩游戏、做远程办公或搭建自己的小型对外服务,frp 都能提供一个成本低、上手快的隧道入口。

首先要明确的是,使用谷歌云搭建 frp 的核心步骤其实并不复杂,关键在于正确分工:在 GCP 上部署 frps 服务端,配置好防火墙规则以开放必要端口;在本地或另一台机器上部署 frpc 客户端,建立到 frps 的连接,并映射出你需要暴露的服务端口或 HTTP/HTTPS 服务。整个过程可以看作三件事:准备工作、服务端配置、客户端配置。整个链路需要关注的重点包括端口选择、鉴权令牌、证书与 TLS 加密、以及稳定运行的系统服务化。现在进入具体步骤。

准备工作方面,先确认你在 GCP 的账户与项目状态正常,确保你有一个可用的虚拟机实例(VM),操作系统通常选择 Ubuntu 20.04LTS 或 Debian,这些发行版在 frp 社区中使用广泛、文档较完善。给 VM 绑定一个静态外部 IP,方便未来的域名解析直接指向该 IP。同时,在网络防火墙层面开放 frps 的监听端口(默认 7000)以及用于 http/https 的端口(如 80、443,若使用 http 直连或 Web TAR 的需求)。如果你计划通过 TLS 加密,未来还需要布置证书文件与加密参数。需要注意的是,暴露端口会带来潜在的安全风险,务必使用强鉴权和必要的访问控制策略来降低风险。

谷歌云服务器搭建frp

接下来是下载和部署 frp。本地准备阶段通常包含两部分:服务器端(frps)与客户端(frpc)。服务器端是一台公共云服务器,负责接收来自客户端的连接并把内网服务映射到公网端口;客户端则在本地或内网机上运行,建立与服务器端的连接。frp 的官方发行包中包含 frps、frpc 两个可执行文件,以及若干示例配置文件。解压后按照文档改写 server.ini 与 client.ini,核心区域只要涵盖公共部分([common])和各自的代理段(如 [ssh]、[web]、[tcp] 等)。在 server.ini 里,设置 bind_port、dashboard_port、token 等,以实现端口监听、仪表盘访问与鉴权。<\/p>

关于服务端的配置示例,常见做法是:在 frps 的 server.ini 里写入以下核心字段:
[common]
_bind_port = 7000
_dashboard_port = 8080
_masq_ipv6 = false
token = your_secure_token
tls_enable = true(如需要 TLS 加密,后文再讲证书路径)

而在客户端的 client.ini 里,核心要素包括:server_addr(frps 的公网 IP)、server_port(frps 的监听端口,通常是 7000)、token(和服务端保持一致的鉴权令牌)。再根据要映射的服务,添加一个或多个代理段,例如:
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
# 将本地 SSH 映射到公网端口 6000

如果你要暴露的是 Web 服务,frp 也支持 http/https 的方式。可以在 client.ini 增加一个 type = http 的代理段,配合 http_proxy、host_header 等选项,实现域名级别的反向代理。在这种场景下,通常还需要在 frps 的 server.ini 配置一个 vhost_http_port(如 80)或通过 TLS/443 的组合来实现安全的访问。使用 http 类型时,frp 会将你本地的 80/8080 等端口通过一个映射,外部直接通过域名访问本地应用,省去了复杂的端口跳转流程。注意在域名解析方面,建议将域名的 A 记录指向 frps 的公网 IP,或通过 CNAME 指向一个已解析的域名,以便未来维护起来更方便。

关于防火墙和网络的设置,谷歌云端有两层防护需要注意:一是云端网络防火墙规则,需要明确放行 frps 的端口(默认 7000,必要时也放行 8080、443 等),二是本地设备防火墙,确保本地端口映射所需的端口在本机层面开放。你可以在 GCP 的“VPC 网络 -> 防火墙规则”中创建一条规则,允许从任意来源进入到你的 frps 监听端口;同时,确保本地机器的防火墙策略允许 frpc 与 frps 的通信。为了便于运维,建议把防火墙策略写得尽量精准,只放行必要的端口与来源。<\/p>

安全性方面,FRP 原生提供 token 鉴权,以避免未授权连接直接拿到隧道控制权。如果你对安全性要求较高,可以开启 TLS 加密(tls_enable = true),并提供 tls_cert_file 与 tls_key_file,配合域名使用一个合法证书。对于证书,可以选择 Let's Encrypt 自动化签发与续期,结合 nginx 或直接在 FRP 服务端配置路径来实现证书的加载。若你使用自签名证书,请确保客户端也信任该证书。对于远程管理,避免把仪表盘暴露在公网上,或者给仪表盘设置单独的访问控制机制。配合 token 的使用,可以降低暴露风险。<\/p>

部署好 frps 与 frpc 后,务必把它们做成系统服务,确保机器重启后可以自动启动。常见做法是给 frps、frpc 写一个 systemd 服务单元,例如 frps.service 和 frpc.service,分别指定可执行文件路径、配置文件路径以及自启动参数。这样你就不需要每次都手动启动、重启。日志通常位于 /var/log/frp/ 或你在 service 文件中定义的日志路径,便于排错。对运行状态的监控也很重要,可以用 systemctl status 查看服务状态,或结合云监控/日志服务实现告警。<\/p>

在实际使用中,一个常见场景是把一个家庭局域网中的远程桌面、HTTP 服务、内网数据库等暴露到公网。举个简单例子:你家里有一台树莓派运行在本地,提供一个 Python-fastapi 应用或 80 端口的网页。通过 frp,可以把这个应用映射到公网的 8080 端口,外部访问域名后就能看到你本地应用的页面。若要 SSH 远程管理,也可以把本地 22 端口映射到一个公网端口,例如 6000,确保服务器端的 frps 与客户端的 frpc 设置正确,且你的 SSH 配置允许来自指定公网端口的连接。实际操作中,建议尽量使用域名 + TLS 的组合,避免暴露裸露的公网 IP 与端口。<\/p>

除了基础映射,日常运维中还需要考虑日志、证书续期、版本更新和备份策略。把 frp 的配置文件定期备份到安全的位置,及时关注 frp 官方发布的版本更新与安全修复;对于证书,尽量设置自动续期的机制,避免服务中断。若你需要对接持续交付、自动化部署,可以把 frps 和 frpc 的安装、配置和启动打包成一个脚本或 Ansible/Terraform 的自动化流程。持续的自动化会让你在后续扩展多个隧道时,工作变得可重复、可追踪。<\/p>

在实际使用过程中,也会遇到一些常见问题。比如 frps 无法启动、端口冲突、token 不匹配、客户端连接不上等。遇到这类问题,先检查服务器的端口状态与防火墙规则,确认 frps 日志中有没有明确的错误信息;再检查 client.ini 的 server_addr、server_port、token 是否一致;如果使用 TLS,请确认证书路径正确且证书未失效。很多时候,重新检查一遍配置文件、重启服务,就能解决大多数问题。若你在某些网络环境下遇到连接不稳定,可以尝试开启 keepalive 设置,或者调整 frps/frpc 的重试策略与连接超时参数,以获得更好的稳定性。<\/p>

广告时间来了,顺带买点别的:玩游戏想要赚零花钱就上七评赏金榜,网站地址:bbs.77.ink。好用的工具和好玩的梗也能带来许多灵感,正如 frp 让内网的宝藏服务走向世界,广告也只是路过的一块小甜点,别太上头。接下来,继续回到正题。<\/p>

最后,把所有步骤串起来的效果是:你在谷歌云上有一台公开 IP 的服务器,frps 端口对外开放,frpc 端在内网或个人电脑上稳定连通,映射的服务就能通过公网域名访问。整个过程看似繁琐,实际分解为三件事就可以完成:服务器端的搭建与暴露、客户端的映射配置、以及防火墙/证书/运维的日常维护。掌握了这些,你就能像搭积木一样,把更多内网服务一块块接入公网,且后续维护也能像更新插件一样轻松。就像 frp 的隧道一样,入口在前方,门尽在你掌控的手里。就问你,下一档映射想放哪儿?