为frp进行域名解析设置是内网穿透服务中实现便捷访问的关键步骤,frp(Fast Reverse Proxy)作为一款高性能的反向代理工具,能够将内网服务暴露到公网,而通过域名解析替代直接使用IP地址,不仅能提升访问的友好性,还能结合SSL证书实现HTTPS加密,增强安全性,本文将详细介绍frp域名解析的完整流程,从准备工作到配置验证,帮助用户顺利搭建稳定的服务。

准备工作:明确需求与资源
在开始配置前,需确认以下基础资源与需求:
- frp服务端:一台具有公网IP的云服务器或VPS,已安装frp服务端程序(frps),建议使用最新稳定版(可从GitHub releases下载)。
- frp客户端:内网需要穿透的服务器或设备,已安装frp客户端程序(frpc),与服务端版本需保持一致。
- 域名:已注册的域名(如example.com),并拥有该域名的DNS管理权限(可在域名注册商处获取,如阿里云、腾讯云、Cloudflare等)。
- 服务规划:明确需要穿透的内网服务类型(如HTTP、HTTPS、TCP)、端口号及期望的公网访问域名(如web.example.com)。
frp服务端基础配置
服务端配置的核心是定义服务监听参数,确保客户端能正确连接并转发流量,编辑frps.ini文件(通常位于frp服务端解压目录),关键参数如下:
[common] bind_port = 7000 # frp服务端监听端口,用于客户端连接 vhost_http_port = 8080 # HTTP虚拟主机端口,用于接收HTTP请求(可选,若需HTTPS可单独配置) dashboard_port = 7500 # frp管理面板端口,用于查看服务状态(可选,建议设置) dashboard_user = admin # 管理面板用户名(可选) dashboard_pwd = admin123 # 管理面板密码(可选,需设置强密码) token = your_secure_token # 客户端与服务端通信的认证令牌,需与客户端一致 max_pool_count = 10 # 每个客户端最大连接池数量(可选,默认10)
说明:
bind_port是服务端与客户端通信的端口,需确保云服务器安全组(防火墙)已放行。vhost_http_port用于HTTP服务穿透,当客户端配置HTTP类型代理时,所有对该端口的HTTP请求会根据域名转发到对应内网服务。token是安全关键项,建议使用复杂字符串(如16位以上字母+数字组合),防止未授权访问。
配置完成后,启动frp服务端:
./frps -c frps.ini
frp客户端配置:关联内网服务与域名
客户端配置需指定服务端地址、认证令牌,并定义需要穿透的内网服务,编辑frpc.ini文件(位于frp客户端解压目录),以HTTP服务为例:
[common] server_addr = 1.2.3.4 # frp服务端公网IP server_port = 7000 # 服务端bind_port token = your_secure_token # 与服务端一致的token [web_service] # 自定义服务名称,需唯一 type = http # 代理类型:http/https/tcp/udp等 local_port = 8080 # 内网服务的本地端口(如内网Web服务端口) custom_domains = web.example.com # 期望绑定的公网域名
说明:

type根据服务类型选择:HTTP/HTTPS适用于Web服务,TCP/UDP适用于数据库、SSH等通用端口转发。local_port为内网服务实际监听的端口(如内网服务器部署的Nginx端口为8080)。custom_domains需提前注册的域名,且该域名的DNS解析需指向frp服务端公网IP(详见下文)。
若需HTTPS服务,可增加以下配置(需提前申请SSL证书):
[web_service] type = https local_port = 8443 # 内网HTTPS服务端口 custom_domains = web.example.com plugin = https # 启用HTTPS插件 plugin_local_cert_path = /path/to/cert.pem # 证书文件路径 plugin_local_key_path = /path/to/key.pem # 私钥文件路径
启动frp客户端:
./frpc -c frpc.ini
域名解析设置:将域名指向frp服务端
域名解析的核心是将用户访问的域名(如web.example.com)指向frp服务端的公网IP,确保请求能到达服务端,以下是常见DNS服务商的操作步骤:
添加A记录(推荐,直接指向IP)
登录域名DNS管理控制台,添加A记录记录:
- 记录类型:A
- 主机记录:
web(子域名,若需主域名访问可填) - 记录值:frp服务端公网IP(如1.2.3.4)
- 线路类型:默认(或“默认”+“境外”确保全球访问)
- TTL:默认(如600秒,数值越小解析生效越快)
添加CNAME记录(若服务端有域名)
若frp服务端已绑定域名(如frp.example.com),可使用CNAME记录指向该域名:
- 记录类型:CNAME
- 主机记录:
web - 记录值:
frp.example.com - TTL:默认
验证解析生效
使用nslookup或dig命令检查域名是否解析到正确IP:

nslookup web.example.com
若返回IP为frp服务端公网IP,则解析生效(等待时间通常为几分钟到几小时,受DNS缓存影响)。
验证与故障排查
配置完成后,通过以下方式验证服务是否正常:
- 访问测试:浏览器输入
http://web.example.com:8080(若服务端配置了HTTP虚拟主机端口为8080),若能访问内网服务内容,则配置成功。 - 日志检查:查看frp服务端(frps)和客户端(frpc)日志,确认无连接错误或端口占用提示:
- 服务端日志:
./frps -c frps.ini -d(后台运行)或直接查看终端输出。 - 客户端日志:
./frpc -c frpc.ini -d,关注new proxy [web_service]等成功提示。
- 服务端日志:
- 管理面板:访问
http://服务端IP:7500,输入用户名密码,查看客户端连接状态和服务列表。
常见问题:
- 无法访问域名:检查DNS解析是否生效、服务端防火墙是否开放
vhost_http_port、客户端custom_domains是否与域名一致。 - 连接超时:确认
server_addr和server_port是否正确、内网服务是否正常运行、token是否匹配。 - HTTP 400错误:检查域名解析是否指向服务端IP、客户端
local_port是否与内网服务端口一致。
相关问答FAQs
Q1:为什么配置了域名解析后,访问web.example.com仍提示“连接超时”?
A:可能原因包括:① frp服务端防火墙(如云服务器安全组)未开放vhost_http_port(如8080);② frp客户端未启动或配置错误(如custom_domains拼写错误);③ 内网服务未启动或local_port错误,建议依次检查服务端防火墙规则、客户端日志及内网服务状态。
Q2:如何为frp配置HTTPS访问,避免浏览器“不安全”提示?
A:可通过两种方式实现:① frp内置HTTPS插件:在客户端配置中启用plugin = https,并上传SSL证书(可通过Let’s Encrypt免费申请),配置plugin_local_cert_path和plugin_local_key_path;② 服务端配置反向代理:在frp服务端部署Nginx,将80/8080端口请求转发到HTTPS端口(如443),并配置SSL证书,推荐使用方式①,配置更简洁。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复