有域名但是没有带公网IP的服务器,怎么能够让服务通过域名暴露出去?

有域名但是没有带公网IP的服务器,怎么能够让服务通过域名暴露出去?

我的域名是在腾讯云上的,同时我有一台本地的主机,我准备将这台主机作为个人服务器部署一些自己的服务,但是我经常和我的服务器不在同一个局域网下,并且我希望不止有我一个人可以访问这个服务。

如果只是不在一个局域网下,只希望自己能够访问就行,那可以用一些简单的方法,比如使用 tailscale 这种自组局域网,或者使用 cloudflared 的隧道功能。

我的方案主要依赖于 cloudflared,需要提前注册一个 cloudflared 账号。

修改 NS

首先需要将域名的 DNS Server 简称 NS 交由 cloudflared,这部分可以参考一些互联网上的教程,比较简单(说我放连接是诱导,受不了这个审核机制,只有读者自己搜了),腾讯云切换 NS 可以去腾讯云官网上搜索文档。

修改 NS 以后 cloudflared 才有权限管理域名的 DNS,后续需要创建 DNS 纪录将域名关联到开通的隧道。

配置隧道

为了可以从公网访问某个机器,可以使用隧道,而 cloudflared 就提供隧道服务,有免费版,还是很不错的。

进入 cloudflared 的控制面板,在左侧的 networking 部分找到 tunnels,或者直接在左侧导航去的顶部搜索 tunnel,进入隧道的控制面板,开始创建一个隧道。

在填写完隧道名称以后,选择目标系统、机器架构,按照提示在服务器上安装好 cloudflared,并启动 tunnel。

虽然提示中的命令可能包含了认证的密钥,但是我在服务器上启动隧道的时候还是有未认证的提示,可以执行 cloudflared login 通过打开的网页重新登录一下。

隧道路由

完成上面两部分以后,我们有两个主要资源:"域名" 和 "隧道",这两部分还没有关联起来,通过域名无法知道隧道,所以还需要绑定一下。有两种方法都可以完成:

  1. 通过命令行完成:
bash 复制代码
cloudflared tunnel route dns <隧道名> <域名>

这个命令会在 DNS - Records 中创建一个 DNS 记录,将域名解析到隧道上。

  1. 通过图形化界面完成

在左侧导航中查找 DNS - Records,手动在域名上创建一个 DNS 记录,类型为 tunnel。

服务路由

现在通过域名能够将流量导航到隧道,但是隧道不知道将流量转发到服务器上的哪儿个地方,所以还需要在隧道的控制面板中,创建一个路由。

点击 Add Route,选择 Published Application,填写必要部分,确认即可。

测试

我是在我的服务器上有一个 k3s 集群,其中自带 traefik,监听了 80 端口,所以我将隧道的路由绑定为 http://localhost:80,访问我的域名可以出现 404 页面。

如果是"服务路由"之前的步骤出了问题,访问域名大概是直接浏览器报错,显示找不到网站,如果是"服务路由"配置错误,比如把 http://localhost:80 配置为了 https://localhost:80,访问域名会出现 cloudflared 的 Bad Gateway 错误。

在配置域名和隧道之前请保证服务器的服务正常在某个端口,避免后续出问题难以排查。

相关推荐
云飞云共享云桌面4 分钟前
智能装备工厂研发部门多设计师共享一台SolidWorks服务器做设备装配建模
运维·服务器·网络·人工智能·3d·自动化·制造
简简单单就是我_hehe14 分钟前
一次 ClickHouse 服务器磁盘告警的排查与修复实录
java·服务器·前端
自由彩虹15 分钟前
靶场通关16--victim1
linux·服务器·网络·安全·web安全·网络安全
叼烟扛炮18 分钟前
Linux 学习笔记(三十九):网络基石——TCP/IP 模型与 UDP 实战
linux·运维·网络·笔记·学习·tcp/ip
byte轻骑兵23 分钟前
【PBAP】规范精讲[9]: 蓝牙PBAP的互联互通法则——GOEP互操作性要求深度解析
网络协议·人机交互·蓝牙协议·pbap
路由侠内网穿透.32 分钟前
本地部署开源 WSGI HTTP 服务器 Gunicorn 并实现外部访问
运维·服务器·网络·网络协议·http·开源
刚入门的大一新生36 分钟前
Linux-线程控制
linux·运维·服务器
咖丨喱38 分钟前
【P2P 邀请后 5G 单信道扫描 dwell 加长】
服务器·5g·asp.net
箓维1 小时前
TCP Socket的基础实现
网络·网络协议·tcp/ip
广州灵眸科技有限公司9 小时前
4G 模组开机自连 systemd 服务方案:基于灵眸科技EAI1106--Core-T
运维·服务器·科技