Sitemap

A list of all the posts and pages found on the site. For you robots out there, there is an XML version available for digesting as well.

Pages

Posts

GMSSH是什么?重新定义服务器管理

less than 1 minute read

Published:

一、GMSSH是什么?重新定义服务器管理

GMSSH是一款跨平台SSH可视化管理工具。它的核心设计理念是“零服务端负载”,其工作原理可以简单理解为:工具本身运行在你的本地浏览器中,它通过SSH隧道与你的服务器进行通信,将服务器上的信息和操作以图形界面的形式展现在Web前端

这意味着,服务器上无需安装任何代理或守护进程,管理行为对服务器性能的影响微乎其微,真正做到了“即连即用,用完就拔”

核心优势一览:

  • 极致的轻量:所有界面渲染都在本地浏览器完成,服务器端零负载,完美契合1核1G、2核2G等低配置环境

  • 极致的安全:完全依赖SSH协议原生加密通道,通信安全有保障
  • 类桌面的易用性:提供类似Windows的图形化操作界面,文件管理、系统监控、终端操作均可通过鼠标点击完成,大幅降低命令行操作门槛
  • 开放的应用生态:内置应用中心,支持一键部署Nginx、MySQL、Docker等常用环境

GMSSH的应用商店是开放的,社区可以不断贡献新的应用

二、为什么是低配置服务器的“福音”?横向对比见真章

要理解GMSSH的价值,最好的方式是与市面上主流的管理面板进行对比。

特性维度

GMSSH

1Panel

宝塔面板

部署方式

无需服务器安装,通过SSH连接

需在服务器安装,支持Docker部署

需在服务器安装

资源占用

接近零占用,只是一个SSH连接工具

中等,需运行Docker及面板服务

较高,安装大量依赖,卸载可能影响系统

核心定位

SSH连接的可视化桌面/客户端工具

现代化、容器化运维面板

一体化的Web服务运维面板

安全性

依赖SSH原生加密,无额外暴露面

容器隔离,相对安全

曾因安全与隐私问题引发争议

使用门槛

低,图形化操作友好

中,需要一定容器知识

低,功能全面但流程固定

适用场景

个人开发者、低配服务器、临时运维

云原生/容器化开发运维团队

个人站长、中小企业传统运维

总结来说:

  • 对比宝塔面板:GMSSH解决了宝塔强制注册、侵入式安装、卸载残留等问题,无需担心面板自身的安全漏洞波及服务器,也无需在重装系统时为残留依赖头疼。

  • 对比1Panel:1Panel是一款优秀的、面向未来的容器化面板,但对于低配置服务器,运行Docker本身就可能成为负担。GMSSH则提供了另一种思路:“如果你需要Docker,我可以帮你管理它;如果你不需要,我绝不强加给你任何重量。”事实上,你完全可以在GMSSH中安装Docker后,再利用其可视化管理能力,间接使用1Panel丰富的应用商店生态。

三、从连接到掌控:GMSSH能为你做什么?

使用GMSSH非常简单,只需几个步骤:

  1. 登录平台:访问GMSSH官网,下载GMSSH
  2. 添加服务器:在控制台填入你的服务器IP、SSH端口、用户名和密码(或密钥)
  3. 开启桌面:点击连接,一个熟悉的图形化桌面就会在浏览器中打开

在这个桌面里,你可以像操作本地电脑一样管理远程服务器:

  • 文件管理器:图形化浏览、上传、下载、编辑服务器文件,支持拖拽操作

  • 集成终端:在桌面内直接打开终端执行命令,告别额外的SSH客户端
  • 实时监控:动态查看服务器的CPU、内存、磁盘和网络使用情况
  • 一键部署:通过应用中心,快速安装宝塔面板、LNMP环境、Docker、Node.js等

选择建议:对于追求极致性价比且用于学习、测试、非核心业务的用户,可以尝试新兴主机商或海外促销机若希望项目能稳定运行,建议优先考虑通过可靠渠道获得的国际大厂云服务器,虽然单月成本可能略高,但长远来看更为省心

四、总结:GMSSH适合你吗?

总的来说,GMSSH是一款特点鲜明、定位精准的工具,它非常适合以下人群:

  1. 低配置服务器(1核1G/2核2G)的拥有者,希望寻找一个不占用宝贵资源的管控方案。
  2. 讨厌复杂安装和依赖污染的极简主义者或系统洁癖用户。
  3. 需要临时、快速管理多台服务器的运维人员或开发者。
  4. 刚入门Linux,希望借助图形界面降低学习成本的新手。

它的出现,为我们提供了一种与传统面板截然不同的、更加轻盈和自由的服务器管理范式。如果你正被臃肿的面板所困扰,或者正在为手中那台“小水管”服务器寻找得力的助手,不妨给GMSSH一个机会。毕竟,真正的效率工具,应该帮你解决问题,而不是成为新的负担。

Minecraft服务器维修日记

less than 1 minute read

Published:

引言

最近我给服务器安装了杀毒软件ClamAV,随后Minecraft服务器出现了一个奇怪的症状:每隔几分钟就会出现一次明显的卡顿,有时会直接崩溃。作为一名服务器管理员,这种破问题可以说烦得要死。当然Linux经验丰富的我直接锁定了”元凶”——系统安全软件ClamAV。这次问题的解决过程让我深刻体会到了1Panel选择容器化部署的技术路线是多么明智的决定

问题现象与排查过程

症状描述

  • 周期性卡顿:大约每5-10分钟出现一次,持续10-30秒
  • TPS下降:从稳定的20TPS骤降到5以下
  • 无错误日志:服务器日志中没有明显的错误信息
  • 资源占用正常:CPU和内存使用率都在合理范围内(已在MCSManager后端限制内存开销并指定使用的CPU核心)

排查之旅

第一阶段:从MC服务器内部排查

正如同上面说的那样,我限制了性能开销,但问题没有解决

第二阶段:直接锁定“元凶”!

当MC容器内部排查无果后,我立刻联想到最近用1Panel脚本安装的两个杀毒软件,即ClamAV和FreshClam,其中FreshClam是手动查杀软件,不必排查

关键证据:ClamAV的实时扫描进程clamd与Minecraft服务器的自动保存操作(每5分钟一次)完全同步!

解决方案:停用ClamAV(或添加为Minecraft文件夹白名单)

在日志中明显可以看到ClamAV查杀了Minecraft的存档文件夹,然而,Minecraft玩家都明白,Minecraft在运行时会频繁地读写这些存档文件,这意味着ClamAV会查验Minecraft对存档文件夹的每一次读写操作,占用了大量的系统资源,这就是病因所在

1Panel部署MCSManager的另一个重要细节

在分享这次经验的同时,我想补充一个在1Panel中部署MCSManager时容易踩的坑。

问题背景

MCSManager是一个优秀的MC服务器管理面板,采用前后端分离架构:

  • 前端:Web界面(通常运行在23333端口)
  • 后端:守护进程(Daemon,运行在其他端口)

错误配置现象

如果在1Panel中直接使用默认的容器网络配置,会出现:

  1. 前端能正常访问
  2. 但无法添加和管理远程节点

根本原因

MCSManager的前端在连接后端时,要求使用公网IP进行连接。在1Panel的默认网络环境下,前端容器只能看到容器的内部网络,无法正确识别宿主机的网络环境。

正确配置方法

步骤1:修改容器网络模式

在1Panel的容器设置中,必须将前端和后端的网络模式都改为Host

操作路径

  1. 进入容器管理界面
  2. 选择MCSManager前端容器
  3. 点击”编辑” → “网络” → 选择”Host模式”
  4. 对后端容器执行相同操作
  5. 注意只切换网络模式,重建容器是不成功的,必须清除内网IP后更新容器

为什么必须使用Host模式?

  1. 网络发现需求:MCSManager需要直接绑定公网IP
  2. 远程节点通信:Host模式使得前端能直接使用宿主机的IP与后端通信

容器化部署的实践总结

  1. 先判断最有可能导致问题根源的进程
  2. 查看日志,分析有无异常
  3. 操作容器解决问题,尽量避免修改全局配置文件

思考:为什么1Panel的容器化路线是未来?

优势对比

维度

传统部署(宝塔)

容器化部署(1Panel)

问题隔离

所有服务混在一起,排查困难

问题被限制在单个容器内

配置管理

配置文件散落各处

集中管理,版本可控

迁移部署

复杂易错

一键迁移,环境一致

资源控制

粗粒度控制

精确的资源限制和隔离

安全防护

平面防御,一点突破全盘皆输

纵深防御,容器间隔离

实际收益

  1. 时间成本:这次排查+解决总共耗时才30分钟不到。在传统环境下,配置文件没被搞坏就谢天谢地吧!
  2. 风险控制:备份容器后在容器内做任何实验,都不会影响宿主机的稳定性
  3. 知识沉淀:所有的配置都在docker-compose文件中,让服务器里的新人管理员接手也毫无压力

结语

1Panel作为一个开源的Linux服务器面板运维工具,完美契合了现代化运营的容器化思维:通过隔离降低复杂度,通过声明式配置提高可维护性,通过标准化提升可靠性

这次MC服务器卡顿问题的解决,从一个侧面验证了这条技术路线的正确性。如果你也在为游戏服务器的运维烦恼,不妨试试1Panel的容器化方案——它可能会让你像我一样感叹:”当初的选择真的太正确了!”


最后的小提示:无论选择哪种部署方式,都不要忘记:

  1. 定期备份你的世界和数据
  2. 监控服务器的关键指标
  3. 保持系统和软件更新
  4. 做好安全防护的多层准备

祝各位服主运维顺利,玩家游戏愉快!

给自己的 GitHub 主页刷一面结实的「绿墙」|Painting a Proper Green Wall on Your GitHub Profile

1 minute read

Published:

给自己的 GitHub 主页刷一面结实的「绿墙」|Painting a Proper Green Wall on Your GitHub Profile

咳咳,每个程序员心里应该都藏着一个梦想——被绿的梦想(谁不希望自己的GitHub主页上是绿油油一片呢?)

然而……你们从本站导航也看得出来,我平时主力码仓是自建的 Gitea,GitHub 基本属于“常年冷宫”状态,贡献图惨不忍睹,一片荒漠。

但今天,我发现了一个神器,完美解决“社死级贡献图”问题:优雅、还带点自作聪明的自动刷绿工具~

工具地址:https://github.com/zmrlft/GreenWall

效果?直接点本站导航里的「饮茶室」(我的 GitHub 主页)看看就知道了——我倒没有臭不要脸地直接刷全绿,而是画了几个像素画(我的名字,Linux,安卓机器人和苹果Logo),真实有效!

使用方法也巨简单(项目 README 写得比我清楚一万倍),几行配置就能让你的贡献图每天自动打卡,稳稳当当绿一年。

当然啦,这东西本质是拿来装X/整活的,面试官问起来还是老实交代吧!(手动狗头)

需要的朋友顺手给作者点个 star 吧!大家都是搞开源软件的~


Ahem… Let’s be honest: every programmer secretly dreams of getting absolutelywreckedby the green squares. We’re talking full-on “just quit my job to grind LeetCode 18 hours a day” levels of grass on that contribution graph.

Sadly (as you can probably tell from this site’s menu), my daily driver is a self-hosted Gitea instance, which means my actual GitHub has been sitting in the corner collecting dust like a sad, barren desert.

But today I stumbled upon an absolute gem that fixes the ultimate GitHub embarrassment: a classy, slightly chaotic way to auto-paint your contribution chart.

Tool:https://github.com/zmrlft/GreenWall

Proof? Just click the little “饮茶室” link in my navigation (aka my GitHub profile). I didn’t go full psycho and paint the entire thing solid green (I still have some dignity left). Instead I drew a few pixel-art masterpieces: my name, the Linux penguin, the Android bot, and — because I’m an equal-opportunity troll — the Apple logo.

It works. It’s real. No cap.

Setup is stupidly easy — the README is literally better written than 99 % of the blog posts I’ve published. A couple lines of config and boom, your graph gets daily commits for a full year, like you’re some kind of productivity demon.

Obviously this is 100 % for memes, flexing, or saving face when your future interviewer side-eyes your dead profile. If they ever ask, just hit them with the classic: “Oh that? Yeah I was just really consistent about writing notes and experimenting… every single day… for science.” (¬‿¬)

Fellow lazy geniuses, go forth and grow some grass. And while you’re there, throw the author a star — open-source heroes deserve love.

Remember that give a star for the auther!

FSharp VS CSharp

4 minute read

Published:

[Bilingual Article]引言:为什么考虑F#?

portfolio

publications

Paper Title Number 4

Published in GitHub Journal of Bugs, 2024

This paper is about fixing template issue #693.

Recommended citation: Your Name, You. (2024). "Paper Title Number 3." GitHub Journal of Bugs. 1(3).
Download Paper

talks

teaching

Teaching experience 1

Undergraduate course, University 1, Department, 2014

This is a description of a teaching experience. You can use markdown like any other post.

Teaching experience 2

Workshop, University 1, Department, 2015

This is a description of a teaching experience. You can use markdown like any other post.