安全收敛收太狠,把 WorkBuddy 手机协同也一起收没了
这两天老吴干了一件自以为挺漂亮的事:把工作台几台机器的端口好好收了一遍。SSH 关了、SMB 文件共享关了、一堆看着没用的系统发现端口也一并禁了。心里还美滋滋的,觉得自己安全意识这回总算上道了。
结果第二天,两个手机上一打开 WorkBuddy,台式机和家里那台 Ubuntu 服务器,设备状态就在「在线」和「离线」之间疯狂切换,几乎没法在手机和电脑之间正常打字交互。

折腾了一圈才看清:这锅得老吴自己背。两个闪断的根因,一个是老吴误关了手机协同的依赖服务,另一个是老吴在 Ubuntu 服务器上埋了个重复启动的雷。两件事跟"黑客攻击"半毛钱关系没有,纯粹是自己挖坑自己填。
台式机:我亲手关掉了手机协同的命根子
台式机这台,老吴收敛那天,把一整套服务连同"连接设备平台"(Windows 里它叫 CDPSvc)一起禁掉了。当时心想:这服务名字花里胡哨,平时也没见它干啥正事,关了清净。
后来才搞明白,WorkBuddy 手机和电脑之间的协同,底层偏偏就靠这个"连接设备平台"撑着。把它一关,手机端就跟电脑陷入了"握手、掉线、重连、再掉线"的死循环——老吴在手机上看到的那串在线离线闪烁,根子就在这。顺带还把"网络发现"那套防火墙规则(SSDP / WSD / UPnP)也禁了,设备发现一并被掐断,雪上加霜。
修复反而简单:把 CDPSvc 改回自动启动、重新拉起来,再把网络发现规则开回去,5040 端口一监听,手机协同当场就好了。
不过这里得划清一条线。SSH(22)和 SMB 文件共享(139/445)是老吴故意关的——那俩才是真有安全风险的服务,跟手机协同八竿子打不着。所以这一轮修复,这两个老吴坚决没动,继续保持关闭。该收的收,该留的留,不能一刀切。
中间一个提权乌龙,差点把老吴带沟里
说个好笑的。修复台式机那天,老吴重启过一次电脑,结果 WorkBuddy 是开机自动启动的,没以管理员身份运行。那一连串"拒绝访问"(Access is denied)把老吴唬得一愣一愣的,差点以为中了什么反篡改驱动的招。
后来才反应过来:压根不是病毒在拦,纯粹是没提权。改系统服务、改防火墙、建计划任务,这些要往系统盘写东西的活儿,标准用户令牌一个都干不了。右键"以管理员身份运行"重新打开 WorkBuddy,所有报错瞬间消失。
顺手还记下一笔本机小坑:这台机器的 PowerShell 环境里,HTTPS_PROXY 和 https_proxy 这两个大小写不同的代理变量同时挂着,会让拉起外部程序时因为环境变量撞键直接报错。以后遇到,先清掉小写那俩再说。
Ubuntu 服务器:这回跟端口、跟网络都没关系
台式机修好了,服务器那台还在闪。老吴本能地以为:肯定也是之前在那台机器上收敛端口时关错了什么。
结果上去一查,啪啪打脸。服务器到 WorkBuddy 云端的网络好得很,延迟零点几秒、请求全是 200;设备发现端口(mDNS、SSDP)也都在正常监听。端口和网络,通通不是元凶。
真正的毛病藏在一个很隐蔽的地方:服务器上有两个 WorkBuddy 的"手机协同守护进程"在同跑。
一个是老吴早就用 cron 定时拉起来的(开机自启 + 每五分钟兜底一次),它是整棵无头服务树的根,手机协同真正靠它活着;另一个,是后来有人——也包括老吴自己——额外加的一个 systemd 服务,只拉了个孤零零的协同守护,没带主程序。
两个守护都向云端注册"我是这台设备"。云端一看:同一台机器怎么冒出两个端点?于是手机端看到的设备状态,就在这两个实例之间来回横跳——闪断就是这么来的。而且 cron 每五分钟兜底、systemd 又设了"挂了自动重启",这雷是会持续复活的。
修法也反直觉:得把后来多加的那个 systemd 服务停掉并永久禁用,保留 cron 那个主树。方向绝不能反过来——因为主程序是 cron 那个进程的子进程,要是一不小心把 cron 禁了,整套手机协同直接就没了,那才叫真断。
关键命令就一句:
sudo systemctl disable --now workbuddy-headless-peer.service
停掉之后,守护进程只剩 cron 拉起来的那一个,主树完好,闪断立刻消失。
一条得记死的规矩:服务器的 SMB 不能关
两处都修完,老吴顺嘴冒过一个念头:要不把这台 Ubuntu 服务器的 SMB 也照台式机的样子收掉?
这次排障把它钉死了:不行。这台服务器开着 SMB 是设计内的——它是家里的共享中枢,备份、影音、旧备份三路共享都走它,防火墙也只放行内网段。台式机关 SMB,是因为那台机器根本不向别人共享文件;服务器关 SMB,等于把自家仓库的门锁了还把钥匙扔了。两码事,别混为一谈。
收尾:都记到账本里去了
两台机器都修好之后,老吴把这些坑原原本本记进了服务器的运维账本,立了两条规矩:无头协同只能有一套启动机制、服务器的 SMB 保持开放。以后再动安全收敛,先翻这页,免得又给自己埋雷。
回头看,这两处闪断,没一个是因为外面有人打进来。真正的风险,往往不是你防住的那些,而是你信心满满动手时,顺手把不该关的也关了。安全收敛是好事,但动手之前,得先搞清楚谁依赖谁——这大概是老吴这两天最实在的收获。
手机扫码,在手机上打开本页