本文记录了如何安装docker 和使用国内源安装Tailscale及解决Tailscale和阿里云内网DNS冲突问题。
Docker
1.更新您的包管理工具:
sudo apt-get update
2.添加阿里云源到您的实例中,这个源包含Docker软件包,方便您使用命令来安装和更新Docker。
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable"
sudo apt-get update
3.安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件:
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4.启动Docker并设置Docker守护进程在系统启动时自动启动,这样可以确保每次系统启动时,Docker服务也会自动启动:
sudo systemctl start docker
sudo systemctl enable docker
5.阿里云容器镜像服务ACR提供了官方的镜像加速器,从而加速官方镜像的下载:
– 登录容器镜像服务控制台,在左侧导航栏选择镜像工具 > 镜像加速器,在镜像加速器页面获取加速器地址。
- 创建并编辑
/etc/docker/daemon.json
文件(如果文件不存在,则创建):{ "registry-mirrors": ["<镜像加速器地址>"] }
- 重启Docker使配置生效。
sudo systemctl restart docker
Tailscale
官方教程,选择对应的版本进行安装,不使用一键安装脚本,比如我是Debian12
1.添加 Tailscale 的软件包签名密钥和存储库:
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
2.使用中科大的镜像,给Tailscale加速:
sudo sed -i 's,pkgs.tailscale.com/stable,mirrors.ustc.edu.cn/tailscale,g' /etc/apt/sources.list.d/tailscale.list
3.安装Tailscale:
sudo apt-get update
sudo apt-get install tailscale
sudo tailscale up
4.解决Tailscale与阿里云内网DNS冲突
参考教程 运行 iptables -S
,找到和Tailscale相关的有如下几条
下面这条规则drop掉了整个IP段的数据包,使用iptables -D 删除规则
-A ts-input -s 100.64.0.0/10 ! -i tailscale0 -j DROP
找规则编号:
iptables -L ts-input --line-numbers
root@cn-pek-aliyun:~# iptables -L ts-input --line-numbers
Chain ts-input (1 references)
num target prot opt source destination
1 ACCEPT all -- cn-pek-aliyun anywhere
2 RETURN all -- 100.115.92.0/23 anywhere
3 DROP all -- 100.64.0.0/10 anywhere
4 ACCEPT all -- anywhere anywhere
5 ACCEPT udp -- anywhere anywhere udp dpt:41641
运行以下命令,根据编号删除规则:
iptables -D ts-input 3
此时去ping 阿里云内网域名是可以ping通的。