2核2G轻量服务器自托管实践:Docker部署青龙面板 + Tailscale内网访问
【摘要】 在一台2核2G轻量服务器上用Docker部署青龙面板,并通过Tailscale组网实现管理面只在内网可达:部署步骤、内存/DNS/镜像加速等踩坑记录与安全小结。
背景
手里有一台 2 核 2G 的轻量应用服务器,想在上面跑一个定时任务面板(青龙),用来管理几个日常签到类脚本。但管理面板直接暴露在公网一直让我不放心:端口扫描和弱口令爆破是常态。最终方案是:面板只绑内网,通过 Tailscale 组网访问,公网一个管理端口都不开。
整体方案
- 青龙面板用 Docker 部署,数据目录挂载到宿主机持久化
- 服务器和手机、电脑都加入同一个 Tailscale 网络(tailnet)
- 面板端口只监听 Tailscale 内网地址,手机在外用 Tailscale App 连回 tailnet 即可打开面板
- 公网侧不开放任何管理端口
部署步骤
- 安装 Docker(发行版仓库或官方脚本均可;国内网络记得给 Docker 配置镜像加速,拉取基础镜像会顺畅很多)
- 拉取并启动青龙镜像,给容器设置内存上限,并用 restart=unless-stopped 保证重启自恢复。示例(100.x.x.x 替换为本机 Tailscale 地址):
docker run -d --name qinglong --restart unless-stopped --memory 512m -v /root/qinglong/data:/ql/data -p 100.x.x.x:5700:5700 whyour/qinglong:latest
- 安装 Tailscale 并登录组网,在管理后台确认设备在线;之后用 Tailscale 分配的 100.x 内网地址访问面板
- 首次打开面板完成初始化,设置强密码
踩过的坑
- 内存:2G 机器没有 swap 时,多个服务一起跑容易触发 OOM 把整机拖到无响应。建议加 1–2G swap 兜底,并给每个容器都设内存上限——资源规划比功能本身更重要。
- DNS:个别云厂商内网 DNS 偶发无响应、容器里解析失败,可以把宿主机 DNS 换成公共 DNS(如 223.5.5.5)再重启 Docker。
- 镜像拉取:默认源在小带宽机器上很慢,配置镜像加速后明显改善;个别加速站对大层文件支持不好,换一个前缀源再试。
- 凭证维护:脚本依赖的 Cookie/Token 会过期,失效后任务会静默失败,建议定期看一眼任务日志,别等断签了才发现。
安全小结
- 管理面不进公网:面板只在 tailnet 内可达,攻击面小很多
- 账号用强密码、不复用
- 敏感 Token 只存面板环境变量,不写进脚本正文
总结
轻量服务器跑自托管服务,先算内存、再谈部署。Tailscale 这类组网工具把「安全访问内网服务」的成本降得很低,对个人自托管场景非常合适。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)