VPS没有域名怎么用FRP?_三种方法实现无域名内网穿透

没有域名如何使用FRP在VPS上实现内网穿透?

方法名称 适用场景 优势 限制
使用IP地址直接访问 临时测试、个人使用 无需域名,配置简单 需要记忆IP地址,不便于长期使用
使用免费动态域名 个人项目、预算有限 免费、可绑定自定义子域名 稳定性较差,域名可能变更
自建DNS解析 企业内网、技术爱好者 完全自主控制,灵活性高 需要额外维护DNS服务

VPS没有域名怎么用FRP?三种方法实现无域名内网穿透

对于许多开发者和网络爱好者来说,内网穿透是一个常见的需求。FRP(Fast Reverse Proxy)作为一款优秀的内网穿透工具,通常需要域名来提供服务。但是当你只有VPS而没有域名时,仍然有多种方法可以实现内网穿透功能。

主要实现方法对比

方法 配置复杂度 稳定性 成本 推荐场景
直接使用IP地址 ★☆☆ ★★☆ 免费 临时测试、个人使用
免费动态域名 ★★☆ ★★★ 免费 个人项目、长期使用
自建DNS服务 ★★★ ★★★★ 较低 企业环境、技术爱好者

方法一:直接使用IP地址配置FRP

操作说明

通过VPS的公网IP地址直接配置FRP服务端和客户端,无需域名解析。

使用工具提示

  • 需要确保VPS有固定的公网IP地址
  • 防火墙需要开放相应端口
  • 适用于HTTP/HTTPS和TCP服务

配置步骤

1. FRP服务端配置(VPS端)
# frps.ini
[common]
bindaddr = 0.0.0.0
bindport = 7000

使用IP地址而非域名

privilegetoken = yourtokenhere

配置web服务(可选)

vhost
httpport = 8080 vhosthttpsport = 8443
2. FRP客户端配置(内网机器)
# frpc.ini
[common]
serveraddr = yourvpsipaddress  # 直接使用VPS IP
serverport = 7000
privilegetoken = yourtokenhere

映射本地web服务

[web] type = http local
port = 80 localip = 127.0.0.1

使用自定义端口而非域名

custom
domains = yourvpsipaddress:8080

方法二:使用免费动态域名服务

操作说明

利用免费的动态域名服务(如DuckDNS、No-IP等)获取一个可用的域名,然后配置到FRP中。

使用工具提示

  • 推荐使用DuckDNS(完全免费)
  • 需要定期更新IP地址(通常自动)
  • 提供稳定的子域名访问

配置步骤

1. 注册并获取免费域名 访问DuckDNS官网,注册账号并添加一个子域名,如:yourname.duckdns.org 2. 在VPS上配置域名更新
#!/bin/bash

duckdnsupdate.sh

TOKEN="yourduckdnstoken" DOMAIN="yourname" echo "更新DuckDNS记录..." curl "https://www.duckdns.org/update?domains=$DOMAIN&token=$TOKEN&ip="
3. 配置FRP服务端
# frps.ini
[common]
bindaddr = 0.0.0.0
bindport = 7000
privilegetoken = yourtokenhere

启用虚拟主机

vhost
httpport = 80 vhosthttpsport = 443

子域名配置

subdomain
host = duckdns.org
4. 配置FRP客户端
# frpc.ini
[common]
serveraddr = yourname.duckdns.org  # 使用免费域名
serverport = 7000
privilegetoken = yourtokenhere
[web]
type = http
localport = 80
localip = 127.0.0.1
subdomain = yourservice  # 访问地址:yourservice.yourname.duckdns.org

方法三:自建DNS解析服务

操作说明

在VPS上搭建本地DNS服务器,实现自定义域名的解析,完全摆脱对公共域名服务的依赖。

使用工具提示

  • 需要安装DNSmasq或Bind9
  • 适合技术能力较强的用户
  • 提供最大的灵活性和控制权

配置步骤

1. 安装和配置DNSmasq
# 安装DNSmasq
sudo apt update
sudo apt install dnsmasq

配置本地DNS解析

sudo nano /etc/dnsmasq.conf
2. DNSmasq配置文件
# /etc/dnsmasq.conf

监听所有接口

interface=*

不读取/etc/hosts

no-hosts

添加自定义域名解析

address=/myvps.local/your
vpsipaddress address=/myservice.local/yourvpsipaddress
3. 配置FRP使用自定义域名
# frpc.ini
[common]
serveraddr = myvps.local  # 使用自定义域名
serverport = 7000
privilegetoken = yourtokenhere
[web-service]
type = http
localport = 8080
customdomains = myservice.local

常见问题及解决方案

问题 原因 解决方案
连接FRP服务端失败 防火墙未开放端口 检查VPS安全组规则,开放7000、8080等端口
客户端显示认证失败 token配置不一致 确保服务端和客户端的privilege_token完全相同
访问服务超时 IP地址变更或DNS缓存 清除DNS缓存或直接使用IP地址测试
端口被占用 其他服务使用了相同端口 更改FRP配置中的端口号,使用空闲端口
服务不稳定经常断开 网络质量差或配置错误 调整FRP心跳参数,增加连接超时时间

操作注意事项

在实施上述方法时,需要注意以下几点:
  1. 安全性考虑:使用IP地址直接访问时,建议设置复杂的token并定期更换
  2. 端口管理:合理规划端口使用,避免与系统服务冲突
  3. 备份配置:定期备份FRP配置文件,防止配置丢失
  4. 监控日志:关注FRP运行日志,及时发现和解决问题
通过以上三种方法,即使没有购买域名,也能在VPS上成功部署FRP实现内网穿透。根据自身需求和技术能力选择最适合的方案,可以有效解决网络访问的难题。

发表评论

评论列表