服务器测评网
我们一直在努力

frp域名解析怎么做,内网穿透域名解析怎么设置

实现 frp 域名解析并成功访问内网服务的核心逻辑在于:将域名的 DNS 记录精准指向 VPS 的公网 IP,同时在 frp 客户端配置文件中正确绑定该域名,并确保 frp 服务端开启了虚拟主机 HTTP 端口支持。 通过这种配置方式,用户无需记忆复杂的 IP 地址和端口号,直接通过注册的域名即可访问部署在内网中的 Web 服务、NAS 或远程桌面等应用,这不仅提升了访问的专业性,还解决了内网穿透服务在多实例共存时的路由分发问题。

frp域名解析怎么做,内网穿透域名解析怎么设置

域名解析与 frp 的工作机制

要掌握 frp 域名解析,首先需要理解其流量转发机制,frp(Fast Reverse Proxy)主要由 frps(服务端)和 frpc(客户端)组成,当用户在浏览器输入域名时,DNS 服务器会将域名解析到拥有公网 IP 的 VPS(即 frps 所在服务器),frps 监听在特定的 HTTP 端口(通常是 80 或自定义端口),接收到请求后,会根据请求头中的 Host 字段(即域名)与配置文件中的规则进行匹配,一旦匹配成功,frps 就会将流量转发给对应内网机器上的 frpc,从而实现内网服务的对外暴露。DNS 解析负责将流量引到门口,而 frp 的配置负责告诉流量该去哪个房间。

第一步:配置域名的 DNS 解析

在开始 frp 配置之前,必须先在域名服务商处完成解析设置,这是外网访问的第一步。

  1. 登录域名管理控制台:前往阿里云、腾讯云、Cloudflare 等域名注册商的管理后台。
  2. 添加 A 记录:点击“添加记录”,主机记录(Host)可以是 (代表主域名)、www 或者其他子域名(如 nas),记录类型选择 A,记录值填写你的 VPS 公网 IP 地址
  3. TTL 设置:建议设置为 600 秒或更短,以便在后续调试中快速生效。

注意:如果你使用的是 Cloudflare 等 CDN 服务,需要确保流量在测试阶段是“灰色云朵”(仅 DNS 解析,不代理),因为 frp 通常不处理经过 CDN 代理加密后的流量,除非进行了特殊配置,完成解析后,可以使用 ping 命令确认域名是否已正确指向 VPS IP。

第二步:frp 服务端 配置

服务端的核心任务是开启 HTTP 代理端口,并启用虚拟主机支持,以便根据域名区分不同的内网服务。

frps.ini 配置文件中,必须包含以下关键配置:

[common]
bind_port = 7000
# vhost_http_port 用于监听 HTTP 请求,必须设置为 80 或其他未被占用的端口
vhost_http_port = 80

vhost_http_port 是实现域名解析的关键参数,如果不设置此项,frps 将无法根据域名进行路由分发,所有通过域名访问的请求都会失败,配置完成后,重启 frps 服务,请确保 VPS 的防火墙(如 iptables、ufw 或云厂商安全组)放行了 80 端口和 7000 端口,否则流量将被拦截。

第三步:frp 客户端 配置与域名绑定

客户端配置是实现内网穿透的最后一步,也是将特定域名与内网服务关联的核心环节。

frp域名解析怎么做,内网穿透域名解析怎么设置

frpc.ini 配置文件中,你需要针对每一个内网服务定义一个代理配置块,这里有两种主要的绑定方式:自定义域名和子域名。

使用 custom_domains(推荐,最灵活)

这种方式允许你将任意已经解析到 VPS 的域名绑定到该内网服务。

[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
# 这里必须填写完整解析过的域名
custom_domains = www.yourdomain.com

使用 subdomain(适合泛域名场景)

如果你在 DNS 解析中配置了通配符 指向 VPS IP,可以使用此模式。

[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
# 访问时将使用 test.yourdomain.com
subdomain = test

专业建议:在生产环境中,强烈建议使用 custom_domains,这种方式更加明确,避免了因子域名冲突导致的访问混乱,配置完成后启动 frpc,此时在浏览器输入 www.yourdomain.com,即可直接访问内网 8080 端口的服务。

进阶方案:启用 HTTPS 与 SSL 证书

为了提升网站的安全性和可信度(符合 E-E-A-T 原则),现代 Web 服务必须支持 HTTPS,frp 提供了强大的 HTTPS 支持,无需在内网机器配置 Nginx 即可实现 SSL 加密。

frp域名解析怎么做,内网穿透域名解析怎么设置

解决方案:利用 frp 的 plugin 功能。

  1. 准备证书:申请对应域名的 SSL 证书(.crt 和 .key 文件),并将这两个文件上传到运行 frpc 的内网机器上。
  2. 修改 frpc.ini
[web_ssl]
type = https
local_ip = 127.0.0.1
local_port = 8080
custom_domains = www.yourdomain.com
# 启用 HTTPS2HTTP 插件,将 HTTPS 请求解密为 HTTP 转发给本地服务
plugin = https2http
plugin_local_addr = 127.0.0.1:8080
# 指定证书路径
plugin_crt_path = /path/to/cert.crt
plugin_key_path = /path/to/cert.key

通过这种配置,frpc 会自动处理 SSL 握手和加解密过程,用户与 VPS 之间是加密的 HTTPS 连接,而 VPS 与内网机器之间可以是高效的 HTTP 连接,这不仅简化了内网服务的配置,还降低了内网机器的 CPU 负担。

常见问题与排查思路

在配置过程中,可能会遇到“404 Not Found”或“连接超时”等问题,请遵循以下排查思路:

  1. 检查 DNS 生效:确保 ping 域名返回的 IP 确实是 VPS 的公网 IP。
  2. 检查端口占用:VPS 上 80 端口不能被其他 Web 服务(如 Apache/Nginx)占用,否则 frps 无法监听。
  3. 查看 frp 日志:这是最权威的排查手段,frps 和 frpc 的日志会详细记录连接建立、域名匹配和转发的过程,如果日志提示“no such host”,说明 custom_domains 配置与请求头中的 Host 不一致。

相关问答

Q1:为什么我已经配置了域名解析,但访问时显示的是 frps 的默认 404 页面?
A1:出现这种情况通常意味着 frps 已经成功接收到了请求,但无法找到对应的 frpc 代理,请检查 frpc.ini 中的 custom_domains 是否与浏览器访问的域名完全一致(包括是否带 www),并确保 frpc 进程正在运行且已成功连接到 frps。

Q2:一台 VPS 上可以同时运行 Nginx 和 frps 并共用 80 端口吗?
A2:不能直接共用 80 端口,因为端口冲突会导致服务启动失败。专业的解决方案是将 Nginx 配置为反向代理,监听 80 端口,将特定域名的请求通过 proxy_pass 转发给 frps 监听的另一个端口(如 8080),或者让 frps 监听非 80 端口,通过 Nginx 进行统一流量入口管理。

通过以上步骤,你可以构建一个稳定、安全且具备专业域名的内网穿透环境,如果你在配置 SSL 证书或多服务转发时有更深入的需求,欢迎在下方留言探讨,我们可以针对具体的网络架构提供更优化的解决方案。

赞(0)
未经允许不得转载:好主机测评网 » frp域名解析怎么做,内网穿透域名解析怎么设置