Szenario: 我可以通过我创建的 Python 套接字强制库(不是 Python,例如数据库客户端)的 TCP 流量吗?
背景是,我创建了这个套接字以通过 SOCKS5 代理连接到远程主机。
我读到的解决方案是 SSH 隧道,但这需要远程主机启用 ssh。出于安全考虑,这可能不会在生产环境中给出。
有直接用Python实现的方案吗?我正在考虑一个监听 localhost:4444 的“内部端口转发器”——我告诉库将流量发送到 localhost:4444——但“内部端口转发器”只是通过打开的套接字发送流量。
-------------------------------------- -------------
| Host A | | Host B |
| | | |
| Libary -> Internal Port Forwarder -------> |
| | | |
-------------------------------------- -------------
我想到了什么:我查看了使用 paramiko 的 SSH 隧道并使用套接字模块创建了自己的 TCP 服务器。后者看起来很有前途,但我不确定这是否是实现这一目标的最优雅方式。 这里是自定义端口转发器工作要点的链接,但我想这会很不稳定(也许库创建了多个连接并且连接持久等)。
重定向第三方库的 TCP 流量
传统的方法是通过 LD_LIBRARY_PATH 或 LD_PRELOAD, 所以一个要求 TCP 连接的 C 库 将通过 Socksify 或通过 袜子 透明的 SOCKS 代理。