我把这个发布到 AskUbuntu 上是因为在我看来“最简单”包括仅根据默认 Ubuntu 存储库中可用的软件优先选择解决方案。(更准确地说,12.04)
我目前正在开发一个访问 Web API 的应用程序,并想测试代理支持是否有效。理想情况下,我想运行本地服务器并简单地告诉我的应用程序访问 localhost 中的代理。
问题是,我的应用程序支持 SOCKS4、SOCKS5 和 HTTP 代理,我想测试所有可能的错误情况。这意味着:
- 向 SOCKS4 服务器发送 SOCKS5/HTTP 请求一定不起作用
- 向 SOCKS5 服务器发送 SOCKS4/HTTP 请求一定不起作用
- 向 HTTP 服务器发送 SOCKS5/SOCKS5 请求一定不起作用
(所有情况包括经过身份验证和未经身份验证)
因此,我不能将 ssh -D 用于 SOCKS,因为它会自动接受 SOCKS4 和 SOCKS5 连接。
答案1
没有简单的方法来详尽地测试代理支持。
为了进行详尽的测试,您需要在现实世界中使用的各种服务器和身份验证设置组合中配置代理服务器,并针对它们单独进行测试。
请注意,在许多情况下,办公室中可能有 Linux 工作站,但代理和一些其他服务(例如 Exchange、Intranet 站点等)可能仍在 IIS 下的 Windows 上运行。
针对所有这些服务器进行测试可能既昂贵又累人。最简单的测试是squid
在 Ubuntu 上运行。
答案2
我建议你尝试将dante-server
其作为 SOCKS 代理。它具有广泛的可配置性,并且具有许多功能,可让你微调 4/5 个测试用例。
请注意,Debian/Ubuntu 存储库中的版本有些旧(1.1.x),您可能更喜欢较新的 1.3.x 版本,该版本可作为 PPA 使用。我正在使用手机,否则我会将您链接到确切的 PPA。