前言
在阿里云中,大学生通过身份认证后可免费直接领取一台1个月的ECS云服务器。做完任务后自动续费半年。任务简单的很。搭建一个Wordpress博客。
这台免费的服务器规格是: 2核 4GB,1Mbps带宽,40GB SSD 系统盘。100%独享CPU
不是那种以前拉垮的突发性能t5实例。
这个配置,这个性能足够用来搭建个人博客、各种小型网站、个人云盘、游戏服务器(什么Minecraft 幻兽帕鲁 七日杀(7 Days to die) balabala等等太多了)
阿里云还是很大方的。
但是!!! 当我准备在上面跑derper+tailscale的时候。发现了致命的问题= =:
问题描述
开启 Tailscale 后,使用 apt 进行软件更新时会无法连接到内网镜像站 mirrors.aliyuncs.com
问题排查
经查: tailscale 的默认ip段是固定的 100.100.x.x 且目前来看无法直接更改。
分配
100.64.0.0/10子网中的地址(从100.64.0.0到100.127.255.255)。这称为运营商级 NAT(CGNAT) 地址空间,由RFC6598(IANA 为共享地址空间保留的 IPv4 前缀)保留。 这段话取自Tailscale官方文档
戏剧性的重点来了: 阿里云默认的内网dns地址也在 100.xyz网段。这恰好和 tailscale的ip段冲突了。
这就导致了我在使用 tailscale 的同时,由于路由冲突问题,无法使用阿里云的内网解析服务,具体影响如下:
- 影响使用内网地址访问
oss等等。甚至是ecs之间的内网通信。 - 影响到我使用阿里云的内网镜像站
mirrors.aliyuncs.com,进而影响使用apt/dnf等包管理器进行更新。
本以为能通过修改 Tailscale 的ACL配置可以解决问题。但是 Tailscale 的ip段是不支持修改的。所以只能通过修改内网DNS的方式来解决这个问题。
解决方案
说了这么多。直接贴出来阿里云内网的DNS服务器ip地址吧:
- 100.100.2.136
- 100.100.2.137
- 100.100.2.138
上述3个ip地址都是可以正常解析 mirrors.aliyuncs.com 及其其他的内网服务的。
由于我采用的是Ubuntu 22.04 LTS 直接修改/etc/resolv.conf文件是不行的。因为这个文件是由systemd-resolved管理的。现在你有两个选择:
- 继续采用并保留
systemd-resolved,可以通过修改/etc/systemd/resolved.conf文件来解决这个问题。(麻烦) - 直接干掉
systemd-resolved,直接简单粗暴的管理/etc/resolv.conf文件。(推荐)
| |
ok.现在你可以直接修改/etc/resolv.conf文件了。
| |
增加如下内容:
| |
至于如何根治- -感觉需要修改tailscale分配ip的这一段的代码(?)使用Headscale魔改也许ok - -没精力折腾了。能用就行
2024-03-29 20:46:13更新: 好像也不太行. 直接看下面的临时解决方法吧= =。
临时解决方法
临时解决方案就是 tailscale down 停掉 tailscale 服务。然后这期间正常使用内网dns。使用过后再启动 tailscale 服务。
最终效果:

而且对于内网的访问也是正常的:
