有域名frp配置的核心逻辑,就是把你的自定义域名解析到frp服务器所在VPS的IP上,再在frps和frpc的配置里绑定这条隧道。 这套组合拳打下来,你访问内网服务再也不用记那串难看的IP加随机端口,直接用“https://你的域名”就能像访问公网网站一样顺畅进入家里的群晖、公司电脑或开发环境。
有域名frp配置教程:两条隧道三种玩法
为什么大家都在问“有没有域名frp教程”?因为用IP加端口的方式是真的折磨人,你想想,每次想连一下家里路由器的管理页面,要么翻聊天记录找IP,要么输错端口连到别的东西上,有了域名,情况完全不一样你给内网里的每个服务都起了个响亮的名字,frp这个“快递员”负责把用户请求准确送到对应服务门口。
基础玩法是HTTP穿透,这最适合用于nas、路由器、监控后台这类管理页面。 就算路由器本身不支持HTTPS,你也能在frp层把证书挂上,浏览器小锁头不慌。
进阶玩法是TCP穿透,这就不限协议了。 比如你想远程SSH到内网Linux服务器,或者连一串数据库,用TCP隧道加域名也能实现,只是通常还得配合端口号使用,因为域名本身不带服务区分能力。
高阶玩法是HTTPS穿透,也就是用域名+证书直接暴露Web服务。 这一步省去路由器上做端口映射的麻烦,还能活用泛解析和虚拟主机转发。
frp配置域名教程:frps.ini与frpc.ini的分工
先别急着改配置,你得问自己一个单选题:域名到底部署在服务端还是客户端? 行业共识认为,在大多数场景下,域名解析和HTTPS证书通常放在服务端frps这一侧,因为那里是流量的汇聚点。
我直接给你一套实测有效的操作路径。
第一步,登录你的VPS,找到frps.ini,在里面加上:
[common] bind_port = 7000 vhost_http_port = 80 vhost_https_port = 443
这里要认清,vhost_http_port和vhost_https_port是两个值,一个管80,一个管443,如果你的IPv4和IPv6都在同一个VPS上,映射时一定把这两个值都写全。

第二步,在VPS防火墙和安全组里放行7000、80和443,这步不做,后面神仙也救不了。
第三步,打开你客户端的frpc.ini,这是多数“有域名frp”配置出错的重灾区,因为很多人在客户端配了域名,却在服务端没绑虚拟主机端口。
[common] server_addr = 你的VPS IP server_port = 7000 [web] type = http local_ip = 192.168.1.100 local_port = 80 custom_domains = nas.yourdomain.com
注意,custom_domains这个字段,不是local_host,也不是remote_port,你要是不想用IP访问,就必须把这个字段写对,有些老版本还支持subdomain,但这两年新版frp里,subdomain和custom_domains不能同时写,否则会爆冲突。
frp域名解析失败排查:DNS与端口两手抓
经常有人问“为什么我的域名解析好了但还是打不开?”这种frp域名解析失败的问题,九成出在三个地方。
第一个是DNS没生效。 常年用本地hosts改的习惯,刚切到云解析时傻等五分钟就慌了,你先去命令行ping一下你的域名,看看解析出来的IP到底是不是VPS的IP,不是就回DNS服务商再检查A记录。
第二个是vhost_http_port没匹配上浏览器默认端口。 你要是把vhost_http_port改成8080,浏览器却访问“http://域名”,那就必然失败,因为浏览器默认走80,解决方案:要么改浏览器访问地址为“域名:8080”,要么干脆别改端口。
第三个容易被忽略的是CNAME冲突。 如果你域名在其他平台做过CDN或邮箱验证,根域名的CNAME和A记录可能互相打架,解析记录类型对不上,那frp转发得再积极也白费。
frp使用自己的域名,与IP直连有什么不同
有域名frp和纯IP直连,表面看就是访问方式不同,实际体验和运维上的差距并不小。
从安全角度来看,域名能帮你省下下意识问“这IP可信吗”的顾虑。 现在的浏览器对IP访问有各种限制,尤其是涉及摄像头权限、麦克风调用时,域名+证书这套组合,让Chrome和Edge把你的页面当成正规站点对待,而不是当成钓鱼网站。

从记忆成本来看,域名就是你的数字门牌。 比如你想给家里老人配一个内网相册服务,用“photo.yourdomain.com”比“http://47.95.x.x:32567”可爱太多了,串门串多了,自然知道敲哪个门。
从服务扩展来看,域名能挂多个子服务。 你同一个frps后面能挂一堆web、ftp、gameserver,每个占一个子域名,没有域名的你再开第二个服务,就得端到端重新记一遍新端口,翻车概率成倍增长。
我用个表格把两者的差异摊开来说:
| 对比项 | 使用域名frp | 纯IP+端口直连 |
|---|---|---|
| 端口记忆成本 | 无需关注,80/443标准端口 | 每次要手动记录端口号 |
| 浏览器权限兼容性 | 可上HTTPS,API权限好通过 | 容易触发混合内容拦截 |
| 多服务可扩展性 | 子域名无限扩展 | 全靠不同端口区分,非常容易混乱 |
| 内网穿透失败排查 | 域名解析加frps日志两层可控 | 端口不通光靠ping很难定位 |
| 外网演示观感 | 专业感强,像正式站点 | 一股黑客测试页既视感 |
frp域名访问内网:安全提速两不误
配置只是万里长征第一步,真正要把frp域名访问内网用得顺心,你得在细节上做打磨。
证书别用自签,能申请免费证书就别省事。 你可以用acme.sh在VPS上一键申请Let’s Encrypt的证书,然后在frps.ini里加上:
tls_cert_file = /etc/frp/server.crt tls_key_file = /etc/frp/server.key
这样输完域名按回车,地址栏的感叹号就永远消失。
frp域名端口设置:简写美化是最大陷阱
很多教程为了让配置好写好看,推荐把客户端local_port写成80,但这其实是个大坑,比如你本地有另一个服务占了80,就直接冲突了,我强烈建议你把local_ip和local_port写得一行一行清清楚楚,遇到问题好排查。

还有一点值得写进你的备忘录:frpc的common段里server_addr写域名也可以。 但这有个前提,就是你的VPS已经被域名解析到了,这适合不想把IP硬写进机器里的场景,万一VPS换IP你不必再跑一遍远程改配置。
多个域名映射同一个frp
如果你手头有两个域名,想让他们同时指向家里的同一个服务,也完全可行,只需要在[common]后加一行:
[web] type = http local_ip = 127.0.0.1 local_port = 80 custom_domains = nas.yourdomain.com, nas2.yourdomain.com
用逗号分割,frp会把这俩域名一并接管,这个法子对你来说,在区分朋友访问和自用时特别好用。
有域名frp常见问题
frp配置域名后访问系统一直转圈,一般卡在哪?
先看客户端frpc启动时有没连接上服务端,如果frpc日志显示“login to server success”还是转圈,就有99%的概率是vhost_http_port与访问端口不一致的问题,捋一捋:浏览器访问域名默认请求80,你的frps要监听80,中间的VPS防火墙还得放行80入站,三层都有协议你都没漏,页面基本秒开。
域名解析没问题,但手机上网页打不开怎么办?
常见于手机用了运营商的自带DNS,域名解析生效了但缓存没刷新,切一下Wi-Fi或者用流量测试就知道是解析的事还是frp隧道的事,还有一种情况是你配置启用了IPv6的AAAA解析,但VPS并不支持IPv6的TCP回源,这种情况下直接删掉AAAA记录就能恢复。
frp服务端用域名还是公网IP?
完全看场景,服务端用域名更适合你用多客户端分散连接但服务器的IP时常变动的场景,同时对TLS证书的域名匹配也更通融,要说明的是,frp本身不强制要求TLS证书,但如果你用域名,浏览器标准就摆在那里,把证书配好会更省心。
归根结底,有域名frp的价值不在炫技,而在于把那些时时访问、藏在局域网里的服务,变成一个个能叫得上名字的“公网邻居”,你花半天时间把域名解析、frps和frpc的双端配置捋顺,往后每一次远程连接都是舒适的访问体验。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/678219.html


评论列表(4条)
读了这篇文章,我深有感触。作者对有域名的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
读了这篇文章,我深有感触。作者对有域名的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于有域名的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于有域名的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!