删掉前缀后 proxychains 仍然存在
通过 LD_PRELOAD 继承追踪意外加载的代理包装器,并区分之后的进程启动与已经加载的库。
你从命令中去掉 proxychains,再次启动,却仍然看到包装器的启动消息。在寻找应用设置之前,先检查启动环境。
在 Linux 上,LD_PRELOAD 要求动态链接器在普通库之前加载指定的共享对象。代理包装器可以利用这一机制拦截受支持的网络调用。如果有人在 shell 中导出了这个变量,之后启动的子程序即使命令行里没有包装器前缀,也可能继承它。
在那个 shell 中,第一个只读检查是:
printf '%s\n' "$LD_PRELOAD"
寻找代理包装器库,但要保留变量里也列出其他有意加载的库的可能。盲目删除每一条都可能干扰另一个工具。
更换启动器,然后重新启动程序
从启动受影响程序的环境中清除偶然的代理预加载。如果启动文件或启动器导出了它,也要一并修正那个来源。对于 Bash 启动,请遵循启动文件的顺序。干净 shell 的新子进程,与仍然持有该变量的旧终端或 IDE 的子进程是不同情况。
取消环境变量并不会从已经开始运行、并带有它的进程中卸载库。因此正在运行的应用可能保留包装器,直到通过修正后的启动路径重新启动。
如果变量不存在,请检查其他已配置的预加载来源,例如 /etc/ld.so.preload,以及实际的启动器。这一机制有其局限:静态可执行文件、直接系统调用和安全执行限制可能表现不同。配合 sudo 时,包装器的顺序很重要。继承来的预加载解释了意外拦截;它并不证明所有类型的网络流量都走代理。