让 PyCharm 调试器连接绕开代理链
为选定的 Python 解释器套上 Proxychains 包装,同时保留调试器参数与直达的 loopback 通路。
把 Python 调试进程放进 Proxychains 时,可能同时拦截两种连接:脚本发往外部服务的连接,以及它回连 PyCharm 的本地连接。调试器需要后者留在本地。
如果 IDE 和宿主支持解释器包装器,请把它指向项目实际使用的解释器:
#!/bin/sh
exec /usr/bin/proxychains4 -f /home/alex/proxychains-debug.conf "/home/alex/project/.venv/bin/python" "$@"替换两个可执行文件路径以及配置文件路径。转发 "$@" 可以保留 IDE 传入的各个调试器参数。exec 让启动的进程不在 IDE 与其子进程之间留下多余的包装 shell。
在那份专用的 Proxychains 配置里,保留原有的代理链,并加入对应的直连 loopback 例外:
localnet 127.0.0.0/255.0.0.0
localnet ::1/128这些规则会让数字形式的 loopback 目标绕过代理链。随附的上游配置记录了 proxy_dns 下主机名匹配的限制,因此诊断该路径时优先使用调试器实际的数字 loopback 地址。不要把远程 DNS 映射所用的子网放进同一个排除范围。
保持解释器身份不变
在包装器里使用 /usr/bin/python3 可能悄悄选中项目 .venv 之外的另一套环境。此时缺失的包看起来像代理相关的故障,实际却是另一个解释器被启动。
Proxychains 依赖受支持的动态库劫持。IDE 拒绝把包装器当作解释器、受保护的 macOS 进程或静态链接的网络客户端,都属于另外的兼容性条件。请把该安排限制在目标 Python 进程上,并在 IDE 配置中确认所选解释器。