让 Emacs-w3m 走自己的 SOCKS 包装器
只给外部 w3m 进程单独的 Proxychains 路由,而不包裹整个 Emacs 会话。
Emacs-w3m 会启动一个外部 w3m 可执行文件。在 Linux 上,这正好提供了一个只对这一个浏览器套用 SOCKS 路由的方便位置。
对于已有的 Proxychains-NG 和动态链接的 w3m 环境,可执行包装器可以写成:
#!/bin/sh
exec proxychains4 -f "$HOME/.config/proxychains/w3m.conf" /usr/bin/w3m "$@"
使用实际的 w3m 路径,并提供具名的 Proxychains 配置。单代理示例的形式如下:
strict_chain
proxy_dns
[ProxyList]
socks5 127.0.0.1 1080
该示例假定该本地端口上已经存在 SOCKS5 监听器。让包装器可执行,并在加载 emacs-w3m 之前选中它:
(setq w3m-command
(expand-file-name "~/.local/bin/w3m-via-proxy"))
如果沿用手册的初始化模型,修改命令后要重启 Emacs。加引号的 "$@" 保留 emacs-w3m 传入的参数边界,而 exec 让被启动的进程直接充当被包装的浏览器。
这条路由针对的是外部进程中可拦截的 TCP 连接。它不会改变 EWW、URL 库或无关的 Emacs 包下载。无法加载 Proxychains 库的 w3m 二进制文件需要改用另一种受支持的路由方式。