systemctl start 3proxy 敲下去,回车。没报错,也没起来。

半分钟后再 status,红的:failed,原因一行 timeout。想翻日志找线索,journalctl -u 3proxy,空的,一个字都没有。一个服务,不报错、不打日志,就这么静静地没起来。

这台机器是拿 AI 助手一步步配的 SOCKS5,用的就是七亿批量远程管理工具里的 SSH 助手——AI 每次给一条命令、跑完看真实回显那种。前面都顺,到「起服务」这步栽了。

我第一反应是配置写错了。/etc/3proxy/3proxy.cfg 我逐行看过,端口、账号、密码都在,语法也照着文档核了。又怀疑端口被占,ss -lntp 看了一眼,1080 没人占。再想是不是权限,配置文件的属主属组也查了。三样都不是,心里有点躁。

绕了十来分钟,才想起去看这个服务单元本身长啥样:systemctl cat 3proxy。第一行,Type=forking。

Type=forking 的意思是,systemd 认为这服务启动后会 fork 一个后台进程、然后父进程退出,它等的是「父进程退出」这个信号。可 EPEL 打包的这个 3proxy,得在配置里写上 daemon 指令它才会 fork 到后台——我那份新配置里,偏偏把这行漏了。

漏了 daemon,3proxy 就老老实实待在前台跑。前台不退出,systemd 就一直等那个信号,等不到,等到 90 秒,判超时,杀掉。所以你看到的才是:没报错,没起来,日志空的。

把 daemon 补回去,systemctl restart 3proxy,这回起来了,ss -lntp 里 1080 也监听了。

后来我把这条写进了给 AI 的提示词:写服务配置之前,先 systemctl cat 看一眼 Type。forking 的就得配 daemon(3proxy 就属于这种),simple 的不用。配套对了,这类坑就不会再踩。

静默失败是最难查的一种,因为你手里什么线索都没有,只能猜着一个个排除。之前写过一台机器敲 df 卡住那事(就是这篇),也是一个道理:看着像卡死,其实底下有很明确的根因,只是它不说。

七亿批量远程管理工具 里这个 SSH 助手,最难对付的不是跑命令,是这种「服务悄没声就退了」的判断——它在七亿批量远程管理工具里看不到日志、看不到 Type,只能按我喂进去的规则走。这条规则是我拿这台机器换来的,记下来,下次它就不会再把 daemon 漏掉。

顺带一提,这工具是免费的,Windows 端就能把 RDP 九宫格、SSH 终端、SFTP、FTP 全管起来,介绍在 七亿批量远程管理工具 这一篇;主站 七亿网络 做云主机和服务器,主推韩国、香港节点。