用自定义域名访问Tailscale节点

这篇具有很好参考价值的文章主要介绍了用自定义域名访问Tailscale节点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用自定义域名访问Tailscale节点

需求

tailscale 是好东西,在任何地方都可以和在局域网访问一样,但是也有着 IP 访问的不便,一方面 IPtailscale 分配的(非子网路由模式),另一方面还要记住各种端口

tailscale 也考虑到了这些问题,所以推出了 MagicDNS,允许你为 tailscale网络中的节点配置 SSL 证书,让你可以通过域名来访问

用自定义域名访问Tailscale节点

但这种方式也不好用,因为:

  • 这个域名中后面的 tailnet name 也是固定分配的,又长又难记;
  • 一个节点(也就是一台设备),只能有一个域名,这也就导致只能是类似 DDNS 的用法,每个服务都要加端口访问;
  • 最重要的是,老苏不会玩。在群晖上执行 tailscale cert ds3617xs.tailxxxxx.ts.net 获取证书时遇到了错误,一直也没找到解决的办法
500 Internal Server Error: acme.GetReg: Get "https://acme-v02.api.letsencrypt.org/directory": tls: failed to verify certificate: x509: certificate signed by unknown authority

老苏理想中的玩法应该是👇这样的:

  • 不需要公网 IP,因为 vps 不便宜;
  • 能使用自定义域名,毕竟老苏在 freenom申请了好几个好记的短域名;
  • 能够让 tailnet 中的节点能够支持泛域名,这样就不用记端口了;
  • 最好能使用默认的 80443 端口,这样就不用带尾巴了;

解决方案

老苏设想了下面的应用场景:

用自定义域名访问Tailscale节点

  1. 访问机器上安装 tailscale 客户端;
  2. 群晖上也要安装 tailscale 套件,假设其 tailscale IP100.x.y.z
  3. 因为访问机器上已经安装了 tailscale 客户端,所以我们可以将 100.x.y.z 视为是公网 IP,我们需要将域名解析到 100.x.y.z
  4. 但实际上100.x.y.z 并不是公网 IP,所以 SSL 证书无法通过 HTTP 方式验证,而只能通过 DNS 方式验证;
  5. 要想使用默认的 80443 端口,需要更改群晖 WebStation 的默认端口;
  6. 使用 npm 作为反代服务器,并自动完成 SSL证书的申请和管理;

思路理顺了,接下里就是按部就班的实施、验证了

DNS 解析

老苏选择了 cloudflareDNS 解析

浏览器中打开 https://dash.cloudflare.com/ ,先 添加站点,然后添加 DNS 记录

用自定义域名访问Tailscale节点

  1. 只要添加两条 A 记录,一条名称是 @,一条名称是 *
  2. 关闭代理,仅使用 DNS

Cloudflare API 令牌

在此处创建 Cloudflare API 令牌:https://dash.cloudflare.com/profile/api-tokens

创建令牌

用自定义域名访问Tailscale节点

拉到最下面,创建自定义令牌

用自定义域名访问Tailscale节点

检查权限设置

  • 区域:区域:读取
  • 区域:DNS:编辑

用自定义域名访问Tailscale节点

如果你是英文界面,应该是这样

用自定义域名访问Tailscale节点

确认权限

用自定义域名访问Tailscale节点

创建令牌

【注意】:这个令牌只会显示一次,请务必保存好

用自定义域名访问Tailscale节点

修改 WebStation 端口

SSH 客户端登录到群晖,在命令行执行下面的命令

# 进入目录
cd /usr/syno/share/nginx

用内置的 vi编辑器修改 server.mustacheDSM.mustacheWWWService.mustache 中的 80443 端口改为1508015443

老苏只改了 IPv4,没有改 IPv6,当然你要都改,也没问题;

用自定义域名访问Tailscale节点

重启 WebStation,可以在套件中心中操作,也可以用命令行

# 重启 WebStation套件
synoservice --restart  pkgctl-WebStation

用自定义域名访问Tailscale节点

再次查看端口,nginxIPv4 已经变成了 15080

用自定义域名访问Tailscale节点

这样修改带来的后遗症就是,假如原本访问 phpMyAdminhttp://192.168.0.197/phpMyAdmin/,现在要加上端口 15080 ,变成 http://192.168.0.197:15080/phpMyAdmin/,这个问题,后面用域名很容易解决

安装 npm

如果是新安装,将下面的内容保存为 docker-compose.yml 文件

本次安装使用了默认的 SQLite 作为数据库,如果要使用 MySQL,可以去看往期的文章

version: '3'

services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: npm
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

然后执行下面的命令

# 新建目录
mkdir -p /volume1/docker/npm/{data,letsencrypt}

# 进入目录
cd /volume1/docker/npm

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

如果已经安装过 npm,只要修改端口就可以, npm 前置的 frp或者 cloudflard 转发的端口也要同步修改,这样可以多个应用共用同一个 npm

证书设置

Add SSL Certification --> Let's Encrypt

用自定义域名访问Tailscale节点

启用 Use a DNS Challenge 才是 DNS 验证

用自定义域名访问Tailscale节点

  • Domain Names 中填 *.域名,例如 *.laosu.ml
  • DNS Provider 中选择 Cloudflare
  • Credentials File Content 中,涂抹的地方,填入之前获取的 Cloudflare API 令牌

更详细的说明可以去看『 nginx-proxy-manager在线申请证书』

用自定义域名访问Tailscale节点

稍等一会儿,就会看到证书,有效期是 3 个月,到期会自动续期

用自定义域名访问Tailscale节点

示例

将本机的 npm 管理界面反代处理

如果服务在其他主机上,IP 可以填局域网 IP ,也可以填 Tailscale IP

用自定义域名访问Tailscale节点

证书选择前面申请的 Cloudflare 证书

用自定义域名访问Tailscale节点

现在在浏览器中直接打开 https://npm.laosu.ml 就会看到登录界面了

用自定义域名访问Tailscale节点

共享服务

到目前为止,只有你自己(Tailscale 管理员),有权访问这些服务。

当你希望将服务分享给别人时,可以在 https://login.tailscale.com/admin/machines 中,生成分享链接

在这里插入图片描述

虽然老苏没试过分享,但是从原理来说,肯定是没问题的

小结

这是目前老苏找到的最安全的一种随时随地访问群晖服务的方案

  • 不需要买 vps更省钱
  • 虽然使用域名,但没有公网 IP,所以更安全
  • 相比纯 Tailscale IP,不用记 IP 和端口,使用更简单
  • 相比 cloudflare tunnel,因为未使用 Cloudflare代理,所以带宽和流量都没有了限制,使用起来更放心

如果大家还在找内网穿透方案,老苏强烈建议你试试这个,当然,如果你清楚了这里面的逻辑,Zerotier 等其他的 vpn 应该也是可以这么折腾的

参考文档

Failed to get cert on Synology · Issue #4060 · tailscale/tailscale
地址:https://github.com/tailscale/tailscale/issues/4060

Tailscale to the Rescue - Self-Hosted Services without Port-Forwarding + your Domain and SSL Certificates
地址:https://www.ajfriesen.com/tailscale-to-the-rescue/

Exploring the Tailscale-Traefik Integration | Traefik Labs
地址:https://traefik.io/blog/exploring-the-tailscale-traefik-proxy-integration/文章来源地址https://www.toymoban.com/news/detail-506322.html

到了这里,关于用自定义域名访问Tailscale节点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Github Pages使用自定义域名

    部署好网站后默认访问地址是xxx.github.io,我们想要自定义为自己的域名 这里我使用的是腾讯云,DNS解析DNSPod 添加两条解析记录: 第一个解析记录的记录类型为A,主机记录为@,记录值为ping 你的github用户名.github.io的ip地址,填入为下列 IP 中的至少一个 185.199.108.153 185.199.109.153

    2024年02月16日
    浏览(52)
  • vite搭建vue3项目本地环境自定义域名及端口配置

    本blog讲述的是vite直接创建的vue3的项目的本地环境自定义域名配置。 windows 首先配置本地的一个域名代理指向。 在windows环境下host文件的位置是 C:WindowsSystem32driversetc 我们需要打开目录下的hosts文件然后在 其中找到127.0.0.1然后在后面追加一行 Mac 在mac系统中我们需要打开终

    2024年02月06日
    浏览(121)
  • 阿里云对象存储OSS配置自定义域名、CDN加速及设置跨域

    采用阿里云OSS服务,对资源文件管理和提供全球化CDN服务 OSS官方文档   OSS每次发布涉及的功能变更及对应的文档_对象存储 OSS-阿里云 https://help.aliyun.com/document_detail/114894.html 开通对象存储OSS服务       如果域名不是托管给阿里云管理,不能勾选自动添加CNAME记录。 需要手动

    2023年04月09日
    浏览(43)
  • 七牛云如何绑定自定义域名-小白操作说明——七牛云对象储存kodo

    七牛云如何绑定自定义域名 **温馨提示:使用加速cdn自定义域名是必须要https的,也就是必须ssl证书,否则类似视频mp4 之类会无法使用。 ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 点击首页————对象储存——进入点击空间管理——点击对应空间名称进入

    2024年02月13日
    浏览(37)
  • 解决:使用hexo deploy部署之后,github page的custom domian自定义域名失效

    使用hexo搭建个人博客网站,将个人博客托管导github上,并设置在github page设置custom damain自定义域名 然后每次部署完,自定域名都会消失 在hexo项目的source文件夹下新建CNAME文件,里面填入你的域名,并保存,这样每次hexo deploy后,github page就不会出现域名重置了

    2024年03月14日
    浏览(50)
  • 线性代数的学习和整理13: 定义域,值域,到达域 和单射,满射,双射,反函数,逆矩阵

    目录 1 函数与 向量/矩阵 2 初等数学的函数 2.1 函数 2.2 函数的定义:定义域  →映射→  值域 3  高等数学里的函数:定义域和陪域/到达域(非值域)的映射关系 3.1 函数 3.2 单射,满射,双射等都是针对定义域 和 陪域的 3.3 易错地方:值域较小且是被决定的 3.4 单射,满射,

    2024年01月20日
    浏览(47)
  • 智能路由器中的 dns.he.net可使用自定义域名的免费 DDNS 服务配置方法

    今天介绍的这个是可以使用自定义域名同时支持使用二级域名的免费DDNS服务 dns.he.net的动态DDNS服务的配置方法,  这个服务相对还是比较稳定的,  其配置也和其他的DDNS服务有些不太一样, 首先他的主机名: 这里需要设置为登录后分配的区域域名:  ipv6.he.net  然后就是 DDNS 用户

    2024年02月02日
    浏览(97)
  • 如何使用 Cloudflare 为 S3 存储桶网站添加 HTTPS在支持 HTTPS 和自定义域的 S3 存储桶中托管静态网站

    如何使用 Cloudflare 为 S3 存储桶网站添加 HTTPS在支持 HTTPS 和自定义域的 S3 存储桶中托管静态网站 AWS S3 提供了一种将文件存储在高度可用的对象存储中的简单方法,它还支持设置静态网站。如果您不需要动态内容,那么使用 S3 存储桶是一个很有吸引力的托管选项。您几乎不需

    2024年02月04日
    浏览(53)
  • docker部署Tailscale的节点中继derper 纯 IP 无需域名

    tailscale代码仓库 修改之后记得提交代码 构建镜像可能需要科学上网,下载一些依赖包。 !!!注意build_cert.sh和Dockerfile应该在在同一目录下 进入Dockerfile所在目录下执行构建镜像命令 将443和3478端口映射到宿主机上; 云服务器若是开启了防火墙记得开放相关端口,云服的安全

    2023年04月17日
    浏览(84)
  • Tailscale的子网路由和出口节点

    2 年前,老苏写了 『 外网访问群晖的新方案Tailscale 』,第一次隆重的给大家推荐了 Tailscale ,但当时还有很多功能并不具备,比如今天要介绍的 Subnet Router 和 Exit Node 【特别说明】:老苏使用的是 DSM6 ,所以下面的操作都是在 DSM6 上完成的。 DSM7 据说对权限引入了更严格的限

    2023年04月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包