飞牛OS部署Mtab:Docker搭建自托管书签导航并实现远程访问

前言

常用网站越来越多以后,浏览器书签很容易堆成一长串。除了继续按文件夹整理,也可以把这些网址放进一个自己部署的Web导航页中,通过分类和图标集中管理。

Mtab就是这样一套自托管书签导航程序。它本身不是浏览器插件,而是运行在服务器上的Web应用,可以把常用网站、NAS服务和其他Web入口整理到一个页面中,再通过浏览器访问。

本文会在飞牛OS中通过Docker运行Mtab,将容器80端口映射到宿主机9205端口,再准备独立的MySQL数据库和应用账号,完成Mtab初始化、管理员设置、分类和基础页面配置。

这里有一个需要提前确认的网络关系:Mtab运行在Docker容器中,因此数据库地址必须是容器真正能够访问到的MySQL地址。如果MySQL运行在飞牛宿主机或另一个容器中,安装页面中的localhost通常不能直接代表那个MySQL服务,需要按照实际部署位置填写可达地址。

完成局域网测试后,还会通过cpolar为9205端口创建公网入口,用来从其他网络打开Mtab导航页。远程打开导航页并不会自动让其中保存的所有局域网地址也获得公网访问能力,这两部分需要分别配置。

1.什么是Mtab?

Mtab 是一款开源、轻量化、无广告的个性化书签导航程序,主打私有化部署与自定义主页,专为个人高效整理网址、管理书签而设计,可替代浏览器默认新标签页与商用在线导航站。

核心定位

它不是浏览器插件,而是可独立部署的网页导航系统,支持部署在本地、服务器,所有书签数据完全由用户自主掌控,私密性远高于公共导航工具。

核心特点

  1. 极简轻量化:代码精简、部署门槛低,运行占用资源极少,新手也能快速搭建。
  2. 高度自定义:支持自由排版页面、自定义图标、分类管理书签,可按需搭建专属导航主页。
  3. 功能一体化:整合书签分类、在线小工具、简易笔记、链接管理等实用功能,兼顾日常办公与上网需求。
  4. 私有化安全:全程本地 / 私有服务器存储数据,无第三方收集、无强制广告,杜绝书签数据泄露风险。
  5. 多端适配:页面自适应电脑、手机等设备,可实现多端访问、统一管理书签资源。

简单来说:Mtab 就是一套完全属于你自己、可自由改造、数据可控的私人网址书签导航系统

2.安装前提条件

2.1ssh远程连接到飞牛

  • 开启【SSH 服务】
  • 使用终端(Windows PowerShell / Mac Terminal)登录:

在设置--->SSH中开启SSH服务:

2.2验证docker是否开启

使用命令:

shell 复制代码
docker -v 
systemctl status -v

也可以直接在飞牛主页查看(其他机器也是这样的哦~)

3.安装Mtab

获取Mtab书签的Docker镜像:

shell 复制代码
docker pull itushan/mtab

运行容器:

shell 复制代码
docker run -itd --name mtab-new -p 9205:80 -v /opt/mtab:/app itushan/mtab

部署完成后,在浏览器中输入 http://飞牛IP:9205 就能看到的Mtab界面:

4.创建专门用于Mtab的数据库

登录MySQL

首先,使用具有权限的账号(如 root)登录MySQL:

shell 复制代码
mysql -u root -p

输入你的MySQL密码后进入命令行界面。

创建数据库

运行以下SQL命令来创建一个新的数据库(建议命名为mtab_db或其他你喜欢的名字):

shell 复制代码
CREATE DATABASE mtab_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • utf8mb4 支持 emoji 和中文,推荐使用
  • utf8mb4_unicode_ci 是推荐的排序规则

创建数据库用户并授权

创建一个专用用户(例如mtab_user),并赋予其对数据库的完全控制权限:

shell 复制代码
CREATE USER 'mtab_user'@'%' IDENTIFIED BY 'your_strong_password';
  • 将 'your_strong_password' 替换为你设置的强密码
  • '%' 表示允许从任意 IP 连接(生产环境建议限制为具体 IP)

然后授权:

shell 复制代码
GRANT ALL PRIVILEGES ON mtab_db.* TO 'mtab_user'@'%';
FLUSH PRIVILEGES;

验证数据库和用户

你可以通过以下命令查看是否创建成功:

shell 复制代码
SHOW DATABASES;

应该能看到 mtab_db。

检查用户权限:

shell 复制代码
SELECT User, Host FROM mysql.user WHERE User = 'mtab_user';

填写安装页面信息

回到mTab安装页面,填入如下信息:

字段 内容
数据库地址 localhost(或你的数据库服务器 IP)
数据库端口 3306(默认)
数据库用户名 mtab_user
数据库用户密码 你刚才设置的密码
数据库名称 mtab_db

点击 测试连接,如果成功,就可以点击 下一步 继续安装。

  • 确保MySQL版本 ≥ 5.7(如提示所示)

  • 如果是远程服务器,请确保防火墙开放了 3306 端口

  • 生产环境建议使用独立数据库,避免与其他应用混用

  • 定期备份数据库

5.使用Mtab

数据库测试成功后,输入管理员账号密码(第一次登录自己设置):

安装完成:

成功进入页面!

这是他们自带的,随便点一个跳转即可成功:

还可以设置分类:

常规设置:

用cpolar一穿,mTab就能从内网直接安全地访问公网,不用公网IP也能随时随地打开自己的新标签页。

接下来跟我一起安装cpolar吧~

6.安装cpolar实现随时随地开发

6.1 什么是cpolar?

cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。

6.2 部署cpolar

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

使用一键脚本安装命令:

shell 复制代码
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

shell 复制代码
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

7.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理------创建隧道:

  • 隧道名称:可自定义,本例使用了:mtab,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:9205
  • 域名类型:随机域名
  • 地区:选择China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

访问成功。

8.保留固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是mtab,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道,点击右侧的编辑

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

总结

完成以上配置后,Mtab已经通过Docker运行在飞牛OS中,并可以通过9205端口打开书签导航页面。

本文同时为Mtab准备了独立的MySQL数据库和数据库用户,再通过Web安装页面完成管理员初始化,并实际测试了导航链接、分类和常规设置等基础功能。

由于Mtab运行在Docker容器中,长期使用前应特别确认数据库连接地址和数据持久化方式。如果MySQL运行在宿主机或另一个容器中,应使用Mtab容器实际能够访问的数据库地址,而不能简单把localhost作为所有部署环境的通用配置。Mtab数据和MySQL数据库也应分别做好备份。

通过cpolar为9205端口建立公网隧道后,还可以从其他网络环境打开Mtab。远程登录时应优先使用HTTPS入口,并为管理员账号设置独立强密码,不应把随机公网地址或固定二级子域名本身当作安全措施。

还需要区分导航页和导航目标本身的网络访问。Mtab公网地址只能保证导航页面可达,如果其中保存的是192.168.x.x等局域网链接,外部设备点击后仍然无法直接访问,对应服务还需要根据实际安全要求分别配置远程访问方式。

从Docker部署、MySQL配置,到书签整理和远程访问,本文完成了一套基于飞牛OS的Mtab自托管导航页基础搭建流程。

相关推荐
张忠琳2 小时前
【k3s】AutoK3s v0.9.3 —— Part 7 辅助模块超深度逐行分析
云原生·容器·kubernetes·k3s·autok3s
jerryinwuhan11 小时前
《系统部署与运维》开篇 课程介绍
运维
张忠琳12 小时前
【k3s】AutoK3s v0.9.3 Part 1 入口与 CLI 命令模块 — 超深度逐行分析之三
云原生·容器·kubernetes·k3s·autok3s
我是谁??13 小时前
Ubuntu22.04更换清华源
linux·运维·服务器
Shell运维手记14 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
朴马丁14 小时前
国际与国产PLM在精细化工赛道的布局:2026年主要厂商技术特色
大数据·运维·人工智能·流程行业plm·化工新材料
Elastic 中国社区官方博客15 小时前
Elasticsearch:使用 AI Agent 来创建 workflow
大数据·运维·人工智能·elasticsearch·搜索引擎·自动化·全文检索
测试运维日常笔记15 小时前
Linux系统安装配置TigerVNC服务器完整指南
linux·运维·服务器
喜欢的名字被抢了16 小时前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库