新闻详情

新闻详情

首页 / 资讯中心 / 详情

Tabby SSH 终端工具实战:会话配置、密钥认证与连接排障

发布时间:2026/10/1 3:34:46来源:尧图网络
Tabby SSH 终端工具实战:会话配置、密钥认证与连接排障
凌晨两点被电话叫醒说业务机器磁盘告警要在一分钟内连上去看一眼。这种时候决定你手速的不是你打字有多快而是你的终端工具——会话是不是已经存好了、密钥是不是配好了、点一下能不能直接落到目标服务器上。我折腾过各式各样的 SSH 远程登录方式从最原始的ssh userip手敲到 PuTTY、Xshell、Windows Terminal再到 VS Code Remote-SSH最后把日常主力换成了 Tabby它的前身叫 Terminus。这是一款跨平台的终端工具同时也是一个能把 SSH 会话、密钥、SFTP、分屏、批量操作打包在一起的运维工作台。下面我把从安装、建连接、配密钥到排障碍的整条链路讲清楚适合刚接手服务器的新人也适合用惯了老工具、想换一套顺手方案的老手参考。1. 从 PuTTY 换到 Tabby我为什么把默认终端改掉了先说结论如果你只是偶尔连一台机器跑两条命令任何工具都够用但只要你手上有三台以上的服务器、需要反复登录、需要在多机之间来回切那么会话能不能被记住这件事就直接决定了你的工作效率。我第一次认真考虑换工具是因为一次线上故障——我需要同时盯着四台机器的滚动日志PuTTY 开了四个窗口在任务栏里挤成一排我点错两次窗口白白浪费了三分钟。1.1 老工具的痛点会话散落、复制粘贴别扭、多机切换靠记忆PuTTY 的经典问题在于它的会话管理是半成品会话存了但存的是连接参数不是一个可以随手打开的对象复制粘贴默认是右键选中、中键粘贴在 Windows 上经常误触窗口最小化之后不知道自己连的是哪台机因为标题栏只显示 IP。Xshell 好不少但免费版有会话数量限制团队协作时把配置导给别人也很麻烦。Windows Terminal 是目前最好用的原生终端之一可它本质上是个终端模拟器SSH 只是它调用系统 ssh 客户端的一个入口会话、密钥、文件传输还是要你自己在命令行里解决。这些工具的共同点是它们假设你记得住自己要连什么。而真实的工作场景恰恰相反——你记不住你也不想记。你要的是打开就能用而不是每次开工前先在脑子里过一遍 IP、端口、用户名、密钥路径。1.2 Tabby 的定位一个能记住上下文的终端工作台Tabby 是一款开源、跨平台的终端工具支持 Windows、macOS 和 Linux 三个桌面平台界面用的是现代前端技术栈所以你能看到标签页、分屏、主题、插件这些应用级的东西。它内置的东西相当多SSH 客户端、串口连接、SFTP 文件面板、端口转发、会话分组、密码保险箱、插件市场。你可以把它理解成终端模拟器 SSH 客户端 会话管理器的三合一。对我而言它最核心的价值就是三条第一SSH 连接是一个可命名的配置对象双击就进去不用记参数第二多标签、多分屏加同步输入让多机操作从开一堆窗口变成一个窗口内搞定第三SFTP 面板内嵌在同一个会话里不用再单开一个文件传输工具。这三点加起来才是顺手的真正含义。顺便回答一个被问得很多的问题Tabby 有安卓版吗没有。它只有桌面端官方并没有移动端客户端。如果你想在手机或者平板上临时看一下服务器状态应该去找别的方案比如服务器本身提供的浏览器端管理界面或者专门的移动端连接应用不要把期待放在 Tabby 上。这不是缺点桌面端才是它的主战场。1.3 哪些人不建议急着换以及它和 VS Code 怎么分工有一种情况我建议先别换你所在的环境有严格管控只允许通过统一的跳板门户访问服务器本地不许保存密钥和会话。这种情况下换任何客户端都意义不大你的操作路径是被入口决定的。另一个常见疑问是我已经在用 VS Code Remote-SSH 了还需要 Tabby 吗。我的习惯是分工VS Code 用来写代码、改配置、调试因为它要拉远端文件、跑语言服务资源占用高、启动慢Tabby 用来做纯运维动作——看日志、查进程、跑一次性命令、传文件、多机对比。两者的定位不冲突反而是互补的。VS Code Remote-SSH 有时会提示某些扩展在工作区被禁用、需要在远端扩展主机里运行这属于它自身的扩展模型问题跟终端工具没关系理解这一点能省掉不少困惑。2. 安装与初始配置把 Tabby 调到顺手的状态装软件这件事听起来没什么可讲的但 Tabby 的初次配置直接决定了你后面几周的使用体验。我的建议是别急着连服务器先用二十分钟把字体、编码、快捷键、备份这几件事定下来否则你会在后面每次使用时都被小问题硌一下。2.1 下载渠道与版本选择获取 Tabby 的渠道主要有两个一是官网二是它在代码托管平台上发布的 Release 页面。两者的安装包内容是一致的我通常用 Release 页因为能看到版本号和更新日志出问题也方便回退到上一个版本。关于安装包类型Windows 上有安装版和便携版两种。便携版解压即用配置存在程序目录旁边特别适合放在 U 盘里做应急工具安装版会写注册表、关联协议、放进开始菜单适合当主力。macOS 上是常规的 dmgLinux 上提供 AppImage、deb、rpm 几种格式按发行版选就行。另外提醒一句网上有不少打着Tabby 加速版Tabby 汉化增强版旗号的第三方包来源不明的一律不要装配置里是有密钥和服务器密码的这种风险完全没有必要冒。2.2 第一次启动值得动手改的几个设置打开设置面板快捷键通常是 Ctrl, 或者点左下角的齿轮我按优先级列一下必改项设置项建议值为什么这么改字体带等宽特性的编程字体如 JetBrains Mono / Cascadia Mono中文与英文混排时不会错位代码对齐才准字号与行高14px 起步行高 1.2 左右长时间看日志不费眼注意别设太小回滚缓冲5000 到 10000 行默认值跑一次编译日志就冲没了日志翻不回去很痛苦字符编码UTF-8连国产 Linux 发行版时默认编码不对会出现中文乱码终端类型xterm-256color保证颜色和光标控制正常否则 vim 里全是花屏粘贴确认对超过 3 行的粘贴做二次确认防止误把大段脚本糊进生产环境其中粘贴确认这一条我是吃过亏之后才打开的。有一次我把一段十几行的 SQL 误粘到生产库的交互终端里幸好那是个只读会话。多行确认等于给你一个回头机会成本几乎为零。2.3 配置文件在哪、备份策略怎么定Tabby 的所有配置——包括会话、主题、插件列表、快捷键——都集中在一个 YAML 文件里。常见位置是Windows 在%APPDATA%\tabby\config.yamlmacOS 在~/Library/Application Support/tabby/config.yamlLinux 在~/.config/tabby/config.yaml。这个设计的最大好处是可迁移换电脑的时候把文件拷过去会话和分组就都还在。提示密钥本身不会明文写在这个文件里但会话里的主机名、用户名、跳板机路径都会进去。往代码仓库里提交这个文件之前先想清楚里面有没有不该外露的内网拓扑信息。我的备份策略很简单每周把 config.yaml 复制一份到加密的同步盘改名带上日期。这样即使某次升级插件把配置搞坏了回滚也就是覆盖一个文件的事。见过太多人换电脑时手忙脚乱重建几十个会话那才是真正的时间浪费。3. 建一个能救命的 SSH 连接配置会话配置是 Tabby 的核心。很多新手在这里卡住是因为面对一堆字段不知道哪些必须填、哪些填了反而添乱。我把一个 SSH 会话拆成必填和按需两类来看。3.1 SSH Profile 里那几个字段到底填什么创建会话时选择 SSH 类型弹出的表单里大致有这些字段主机地址填 IP 或域名。如果填写的是域名确保本机能解析到可以用nslookup或ping先确认一遍。端口默认 22。云主机如果改过端口这里必须同步改否则会一直超时。用户名就是你登录后whoami看到的那个。很多认证失败其实不是密钥问题而是这里用了 root 但服务器禁止 root 直连。认证方式密码、私钥、以及走系统的密钥管理服务三种任选。私钥路径选私钥文件不是公钥。这是最高频的低级错误。跳板机需要经过中转主机才能到达目标时填写。端口转发本地转发、远程转发、动态转发按需配置即可。我的习惯是给每个会话起一个人能看懂的名字比如生产-订单服务-01而不是172.16.8.31。半年之后你只会记得业务名不会记得 IP。3.2 密码认证和密钥认证我为什么坚持用密钥密码登录的门槛最低输一次就能进但它的三个问题是躲不开的第一密码会在网络上被反复尝试暴露面大第二密码没法做权限精细化谁拿到谁就是完整身份第三自动化脚本没法用密码你想写个批量巡检脚本还得先装个辅助工具。密钥认证的逻辑不太一样你手里有一个私钥永远不出本机服务器上存着对应的公钥。登录时服务器发一个随机挑战你用私钥签名回应私钥本身不传输。所以即使链路被人截获也拿不到可以复用的凭证。另外密钥可以加口令保护等于你有的东西 你知道的东西双重验证。我现在的做法是所有服务器一律禁用密码登录只留密钥同时在服务器配置里关掉 root 直连日常操作走普通账号加sudo。这样即便有人拿到某个账号的密钥也需要再过一层提权才能造成大范围影响。3.3 生成、分发、验证密钥的完整流程整个流程分四步我按顺序写清楚你照着做就行。第一步在本机生成密钥对。推荐用 ed25519比 RSA 更短、更快也更安全ssh-keygen -t ed25519 -C your_namelaptop执行时会问你保存路径默认在~/.ssh/id_ed25519。接着会问你要不要设口令我建议设一个——这样私钥文件被拷贝走也没法直接用。生成完成后你会得到两个文件id_ed25519是私钥权限必须是 600id_ed25519.pub是公钥可以随便给别人看。第二步把公钥传到服务器上。Linux 和 macOS 上有现成的命令ssh-copy-id -i ~/.ssh/id_ed25519.pub userhost如果服务器改过端口加-p 端口号。Windows 上没有这个命令可以手动操作先把公钥内容复制出来登录服务器后追加到~/.ssh/authorized_keys文件里然后确认权限chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys第三步让本机的密钥管理服务认识这把钥匙。Windows 上需要启用系统自带的 ssh-agent 服务Get-Service ssh-agent Set-Service -Name ssh-agent -StartupType Automatic Start-Service ssh-agent ssh-add $env:USERPROFILE\.ssh\id_ed25519macOS 和主流 Linux 桌面一般开机就带 agent直接ssh-add即可。这一步的意义是你在 Tabby 里选从密钥管理服务认证就不用每次走一遍选文件、输口令的过程。第四步验证。先在本机命令行里试ssh -i ~/.ssh/id_ed25519 -o IdentitiesOnlyyes userhostIdentitiesOnlyyes这个参数很关键它强制只使用指定的那把钥匙能避免agent 里塞了太多钥匙导致认证次数超限这种莫名其妙的问题。能进之后再回到 Tabby 里配同样的参数。3.4 跳板机、端口转发和密钥转发的实际用法跳板机是从外网进入内网的唯一入口这是很常见的架构。Tabby 的会话配置里可以直接指定跳板主机它会先连跳板、再从跳板连目标你看到的是一层透明的会话。我没有特殊需求时基本都这么做唯一的注意点是跳板机上不要做耗时操作它只是个通道。端口转发我用得最多的是本地转发——把远端的数据库端口映射到本机然后用本地客户端连。配置上填本地端口、目标主机、目标端口三样理解方式就是在本机开一个洞这个洞的出口在服务器那侧的网络里。动态转发相当于在本机开一个本地端口让浏览器或其他程序走服务器的网络出口去访问做接口联调时很方便。密钥转发是另一件容易被误用的事。开启之后你在服务器上可以继续用本机的密钥登录下一台机器适合多级跳转的场景但它同时也意味着服务器上的其他有权限用户可能借用你的身份所以只在你完全信任的机器上开用完立刻关。4. Tabby 里那些上手就会上瘾的功能会话配好之后Tabby 真正的差别化体验才开始显现。下面这几个功能我在别的终端里没找到同等好用度的替代品。4.1 分屏与同步输入一条命令同时打到三台机器分屏的操作很简单右键标签或者用快捷键拆分默认快捷键大致是 CtrlShiftE 和 CtrlShiftD不同版本可能略有调整在设置里搜 split 确认一下即可。拆出多个窗格之后每个窗格是独立会话你可以左边开应用日志、右边开系统日志、下面留一个交互终端。真正让我离不开的是同步输入。打开之后你在当前标签的一个窗格里敲的命令会同时发到所有窗格里。多机场景下这个功能省下的时间非常可观检查三台机器的负载、统一更新一下时间、批量看一眼磁盘都是一次输入的事。但这里必须有一句严肃的提醒——注意同步输入是把双刃剑。在执行任何写操作、删除操作、重启命令之前务必先关掉同步输入。我给自己定的规矩是只读命令才开同步带 rm、stop、restart、drop 字样的命令一律单独执行。4.2 SFTP 面板与文件拖拽SSH 会话建立之后Tabby 通常会提供一个文件面板入口点开就是当前登录身份的家目录可以浏览、上传、下载、改权限。这个功能的实用之处在于它和命令行是同一个会话上下文你在命令行cd到某个目录文件面板也能同步跟过去不用另外开一个工具再重新登录一遍。不过这背后有一个常被忽视的机制问题文件面板依赖的是 SFTP 子系统如果服务器的 sshd 配置里把这个子系统关掉了或者被安全策略限制面板就会报错而普通命令行登录一切正常。遇到能登录但打不开文件的情况先查这一条。另外上传大文件时建议用命令行工具分段传输并校验校验和面板适合传配置、脚本、日志这种小文件几百兆以上的包用面板容易卡住界面。4.3 会话分组、标签管理和密码保险箱会话多了以后管理方式决定你找东西的速度。我会按环境分组生产、预发、测试、内部工具各一个组组内再按业务分。生产组的会话我会额外加一个醒目的颜色标记避免手滑在错误的机器上执行命令。这个小心思救过我至少两次。密码保险箱解决的是另一类麻烦有些服务器的密钥有口令、有些内部系统只看密码全记在脑子里不现实记在记事本里更不现实。Tabby 的保险箱可以用一个主密码把所有这些凭证加密存储你只需要记住一个主密码。我的建议是主密码用一句只有你自己懂的短语长度超过十六位且不要和其他任何账号复用。第一次设置好之后把配置文件和主密码分开备份两个都不丢才算真的不丢。4.4 插件、主题和配置同步插件市场里我实际在用的不多主要就两类一类是配置同步把 config.yaml 通过你自己的私有仓库做版本管理多台电脑之间保持一致另一类是输出记录把终端里的内容自动落盘成文件方便事后复盘。主题方面深浅色各一套就够了别在这上面花太多时间。反倒是配色方案值得挑一下日志里的 ERROR、WARN 要有明显区分度否则你在满屏输出里找一行错误全靠肉眼扫。我目前用的是一套低饱和的深色主题红绿色调做了区分处理对色觉不敏感的人也友好。5. 连不上服务器时我按这个顺序排查这是全文最实用的部分。SSH 连不上报错信息往往只有一行但那行字对应的原因可能有七八种。我总结了一套自上而下的排查顺序基本能在三分钟内定位到方向。5.1 先分清是网络层还是认证层的问题判断方法很简单看报错的关键词。如果出现Connection refused、Connection timed out、No route to host问题在网络或服务可用性层面跟你的密码密钥毫无关系如果出现Permission denied、Authentication failed、Too many authentication failures说明 TCP 已经通了问题在身份认证环节如果出现Host key verification failed那是本机对服务器指纹的信任记录出了问题。这三类问题的排查方向完全不同先分类能省掉大量瞎试。网络层的三步检查一ping目标地址看是否可达有些服务器禁 ping不通不代表有问题接着往下走二telnet host 22或nc -vz host 22看端口是否开放三如果是云主机登录控制台检查安全组规则里有没有放行你的源 IP。这三步里最容易被忽略的是第三步——很多人本地网络换了个出口源 IP 变了安全组白名单自然就不匹配了。5.2 五类高频报错的处理路径报错关键词最可能的原因处理方式Connection refusedsshd 未运行或端口不是 22登录控制台或带外通道检查服务状态与监听端口Connection timed out安全组未放行、路由不通、地址写错核对安全组规则、确认目标地址与端口Permission denied (publickey)公钥未正确写入、权限过宽、用户不符检查 authorized_keys 内容与 700/600 权限Permission denied (password)服务端关闭了密码认证确认 sshd 配置中的密码认证开关改用密钥Too many authentication failures本机 agent 里钥匙过多被服务器拒绝在连接参数里加上只使用指定密钥的选项关于第三行还有两个坑值得单独说。第一是家目录权限如果用户家目录本身的权限是 777即使.ssh和文件权限都对服务端也可能拒绝使用密钥因为家目录可被他人写入。第二是安全模块上下文部分企业级发行版启用了强制访问控制手动拷贝过去的文件上下文不对需要执行一次restorecon -Rv ~/.ssh来修复。这两个问题在日志里都能看到线索用tail -f /var/log/secure或系统日志边连边看比盲猜快得多。5.3 连上了但总掉线保活参数该放在哪很多人遇到的是另一类烦恼能登录用几分钟就断尤其是挂着跑长任务的时候。这通常不是工具的问题而是链路上有设备在清理空闲连接。解决办法是在本机 SSH 配置里加保活参数# ~/.ssh/config Host * ServerAliveInterval 60 ServerAliveCountMax 3 TCPKeepAlive yes意思就是每分钟给服务器发一个心跳包连续三次没回应才判定断线。服务端也可以配合设置一个客户端空闲检测的间隔两侧一起配效果更明显。但要注意保活只能防止空闲被清理不能防止网络真的断了。如果你的长时间任务必须在断线后继续跑那就不能只靠保活得让任务本身脱离会话这一点我在下一节展开。5.4 主机密钥变了这不是小事先搞清楚为什么服务器重装或者换了密钥对之后再次连接会弹出指纹不匹配的警告很多人顺手就把记录删掉继续连。我的建议是先停一下问自己一个问题这台机器最近有没有重装或重建有那就正常清理没有那就要认真对待因为它可能意味着你连到的那一头并不是你以为的那台机器。清理记录的命令是ssh-keygen -R 目标地址执行完再连一次会重新记录新的指纹。在企业环境里服务器指纹通常有台账遇到变更应该同步更新台账而不是每个人各自删一遍。6. 把单机登录扩展成多机日常我的一套工作习惯单个会话配好只是起点。真正的效率提升来自把重复的动作配置化下面这三件事是我这几年一直在坚持的。6.1 用本机 SSH 配置文件当单一事实来源Tabby 支持引用本机的 SSH 配置文件这个能力非常关键。也就是说主机、端口、用户名、密钥路径、跳板机、保活参数全部写在~/.ssh/config里Host order-prod HostName 10.0.3.21 User deploy Port 22 IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes ProxyJump bastion Host bastion HostName 203.0.113.10 User ops IdentityFile ~/.ssh/id_ed25519这样做的好处有三个一所有工具共用同一份配置Tabby 能连命令行也能连换工具不用重新配一遍二这个文件可以纳入版本管理团队里新同事拉下来就能用三改一处生效全局不会出现某个工具的会话还是旧 IP这种情况。别名写得好日常操作就是ssh order-prod一条命令的事。6.2 批量登录与断开之后命令还跑不跑批量操作有几个层次。最轻的是前面说的分屏加同步输入适合三到五台机器的一次性操作。再往上用带主机列表的循环脚本for h in web01 web02 web03; do echo $h ssh -o BatchModeyes $h uptime; df -h / doneBatchModeyes的作用是禁止交互式提问避免脚本卡在密码提示上。机器再多、任务再复杂就该上配置管理工具了那属于另一个话题但核心思路是一致的把在哪些机器上做什么写成可重复执行的描述。热词里还有个问题被问得特别多SSH 命令执行过程中退出命令还会继续跑吗答案取决于命令有没有脱离会话。默认情况下你启动的是前台进程会话断开时它会收到挂断信号并终止。想让任务继续跑有三个常规做法一是nohup 命令 忽略挂断信号并放到后台二是用setsid彻底脱离控制终端三是用tmux或screen这类会话保持工具断开后重新连上还能看到屏幕内容。我的经验是任何预计超过一分钟的任务一律先进 tmux 再执行这样既不会丢任务也能事后回看输出。6.3 别名、时间同步、日志留痕这些不起眼的小事最后说三件小事它们平时不出问题一出问题就很折磨人。第一别名。给每台机器取一个业务相关的短名字写在配置文件的 Host 里比记 IP 可靠得多而且改 IP 的时候只改一行。第二时间同步。跨机器排查问题时如果两台服务器的时间差了几分钟日志里的先后顺序就完全对不上了你会得出错误的因果结论。生产环境统一用时间同步服务对齐时钟用chronyc sources看一下当前同步状态发现偏移就及时处理。云主机通常有内网的时间服务地址优先用内网的比走公网准得多。第三日志留痕。运维操作最忌讳做完了不记得做了什么。我现在的习惯是把每个会话的终端输出自动记录到文件按日期归档。真出事的时候这份记录就是最重要的证据链也能帮你在复盘时发现哪一步判断错了。再补一个多人协作场景里的细节如果你在代码托管平台用同一个密钥做 Git 拉取把公钥加到平台的密钥设置里就行测试连通性是ssh -T git你的平台域名。很多人会为 Git 单独再生成一把钥匙其实完全没必要一把钥匙走天下反而更好管理前提是这把钥匙有口令保护、且私钥从不离开本机。我个人在实际操作中的体会是终端工具的价值不在于它有多少功能而在于它能不能把我每次都要重复做的事变成只做一次的事。会话配置、密钥管理、SSH 配置文件、输出记录——这四样东西一旦配置化你花在重复劳动上的时间会明显下降而省下来的注意力刚好可以用在真正需要判断力的地方。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AI挖洞该换打法了 2026/10/1 7:45:20

AI挖洞该换打法了

AI 挖洞该换打法了 七八月份,我靠挖漏洞赚了十万多块钱。 最近,我跟大多数人遇到的情况一样:大多数漏洞,提交后都属于重复。 这两句话放在一起,比单独晒一个收入数字,更能说明我现在的感受。 钱确实赚到了…

阅读更多 →
短视频资料来源怎么标注?让数字、引述和截图可核对 2026/10/1 7:45:20

短视频资料来源怎么标注?让数字、引述和截图可核对

短视频资料来源标注,先给可核查的事实找到直接出处,再决定写在画面、配文还是两处都放。画面里写观众能辨认的机构、资料名和时间;配文提供完整链接。平台不展示链接时,也要留下足够的检索线索,别只写“数据来源&#…

阅读更多 →
Coursebook项目概览:UIUC系统编程C语言教科书凭什么值得读 2026/10/1 7:45:13

Coursebook项目概览:UIUC系统编程C语言教科书凭什么值得读

Coursebook项目概览:UIUC系统编程C语言教科书凭什么值得读 【免费下载链接】coursebook Open Source Introductory Systems Programming Textbook for the University of Illinois 项目地址: https://gitcode.com/GitHub_Trending/co/coursebook Coursebook …

阅读更多 →
SP/SSP校招本质:技术信用锚点与可验证工程能力 2026/10/1 7:45:13

SP/SSP校招本质:技术信用锚点与可验证工程能力

1. SP/SSP不是“更高薪的普通offer”,而是校招体系里的特殊通道很多人一看到SP(Special Plan)和SSP(Super Special Plan)就本能地联想到“钱更多”,然后立刻去刷LeetCode、背八股、改简历——这就像想进故宫…

阅读更多 →
Tkinter ListBox 列表标签实战:从基础配置到动态数据绑定 2026/10/1 7:44:54

Tkinter ListBox 列表标签实战:从基础配置到动态数据绑定

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI编程创新:用TaoToken统一Key打通Cline MCP与Windsurf BYOK 2026/10/1 7:44:54

AI编程创新:用TaoToken统一Key打通Cline MCP与Windsurf BYOK

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉