Tailscale
约 1278 字大约 4 分钟
2026-08-24
在 Proxmox VE 的 LXC 容器中安装 Tailscale,实现安全内网穿透和远程访问。
背景与动机
Tailscale 是一款基于 WireGuard 的零配置 VPN 服务,可以让你的设备组成一个安全的虚拟网络。相比传统的 VPN 方案,Tailscale 无需复杂的端口转发和防火墙配置。
为什么选择 LXC 而非虚拟机
LXC 容器相比完整虚拟机有以下优势:
- 资源占用更低:共享宿主机内核,内存和 CPU 开销更小
- 启动速度更快:几乎秒级启动
- 网络性能更好:无虚拟化层开销
- 管理更方便:可以直接访问宿主机文件系统
适用场景
- 家庭服务器远程访问
- NAS 安全互联
- 开发环境内网穿透
- 多地理位置设备组网
前置条件
在开始之前,确保你已准备好:
- 已安装 Proxmox VE 7.0 或更高版本
- 拥有 Tailscale 账号(可在 Tailscale 官网 免费注册)
- 一个可用的 LXC 容器(建议基于 Debian 或 Ubuntu)
步骤一:创建或选择 LXC 容器
创建新容器
- 在 PVE Web 界面点击「Create CT」
- 选择模板(推荐
debian-12-standard或ubuntu-22.04-standard) - 设置 CPU 和内存(Tailscale 本身占用很少,1 核 512MB 足够)
- 网络配置保持默认即可
关键配置:启用 TUN 设备
LXC 容器默认无法访问 /dev/net/tun 设备,这是 Tailscale 运行的必要条件。
在 PVE Shell 中编辑容器配置文件:
nano /etc/pve/lxc/容器ID.conf在文件末尾添加:
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file保存后重启容器:
pct stop 容器ID
pct start 容器ID验证 TUN 设备
进入容器检查:
pct enter 容器ID
ls -la /dev/net/tun输出应该类似:
crw-rw-rw- 1 root root 10, 200 Aug 24 10:00 /dev/net/tun步骤二:安装 Tailscale
进入 LXC 容器后,执行官方安装脚本:
Debian/Ubuntu
curl -fsSL https://tailscale.com/install.sh | sh手动安装(可选)
如果容器没有 curl,可以手动添加软件源:
# 添加 Tailscale GPG 密钥
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
# 添加软件源
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | tee /etc/apt/sources.list.d/tailscale.list
# 安装
apt update
apt install tailscale步骤三:连接 Tailscale 网络
启动 Tailscale 并登录:
tailscale up终端会输出一个认证链接,类似:
To authenticate, visit:
https://login.tailscale.com/a/xxxxxxxxxxxxx在浏览器中打开链接,使用你的 Tailscale 账号授权即可。
验证连接状态
tailscale status输出示例:
100.64.0.1 your-container-name linux -
100.64.0.2 other-device linux -步骤四:配置子网路由(可选)
如果你想让其他设备通过这台 LXC 访问 PVE 内网,可以配置子网路由。
启用 IP 转发
echo 'net.ipv4.ip_forward = 1' | tee /etc/sysctl.d/99-tailscale.conf
sysctl -p /etc/sysctl.d/99-tailscale.conf配置子网路由
假设你的 PVE 内网是 192.168.1.0/24:
tailscale up --advertise-routes=192.168.1.0/24然后在 Tailscale 管理后台 中批准该路由:
- 找到对应的设备
- 点击「...」→「Edit route settings」
- 勾选要启用的子网路由
步骤五:设置开机自启
确保 Tailscale 随容器启动:
systemctl enable tailscaled
systemctl status tailscaled常见问题与解决方案
问题一:TUN 设备不存在
现象:启动 tailscaled 报错 can't create /dev/net/tun
原因:容器未正确挂载 TUN 设备
解决方案:确认容器配置中添加了 lxc.mount.entry 行,并重启容器
问题二:无法访问宿主机网络
现象:Tailscale 已连接,但无法访问 PVE 或其他内网设备
原因:防火墙规则阻止了流量
解决方案:检查 PVE 防火墙设置,或在容器中添加路由规则:
# 查看路由表
ip route
# 如需手动添加网关
ip route add default via 192.168.1.1问题三:DNS 解析失败
现象:能 ping 通 IP,但无法解析域名
原因:容器 DNS 配置问题
解决方案:编辑 /etc/resolv.conf:
nameserver 100.100.100.100 # Tailscale Magic DNS
nameserver 8.8.8.8 # 备用 DNS问题四:重启后 TUN 设备丢失
现象:每次重启容器都需要手动创建 TUN 设备
解决方案:在容器内添加启动脚本:
nano /etc/rc.local添加:
#!/bin/bash
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 666 /dev/net/tun
exit 0赋予执行权限:
chmod +x /etc/rc.local安全建议
- 使用 ACL 控制访问:在 Tailscale 管理后台设置访问规则,限制不必要的设备互联
- 定期更新:
apt update && apt upgrade保持 Tailscale 版本最新 - 启用 MFA:为 Tailscale 账号开启多因素认证
- 监控活跃设备:定期检查
tailscale status,清理不再使用的设备
总结
本文介绍了在 Proxmox VE 的 LXC 容器中安装 Tailscale 的完整流程:
- LXC 容器比虚拟机更轻量,适合部署 Tailscale
- 核心配置是启用 TUN 设备访问权限
- 可选配置子网路由实现内网穿透
- 注意防火墙和 DNS 配置
通过 Tailscale,你可以安全地远程访问家庭网络,无需暴露端口或配置复杂的 VPN。
