4

我有很棒的 IM 需要类型的代理(SOCKS4、SOCKS4A、SOCKS5),但是我的公司正在使用 Http 代理。

我想建立自己的代理,将数据转发到我公司的代理(我需要输入用户名和密码才能连接到该代理)。怎么做?

4

5 回答 5

3

如果您需要代理软件,为什么要重新发明轮子?只需使用已经编写好的东西(即jsocks)。如果需要,应该可以添加身份验证。

如果您的公司代理仅是 HTTP,我怀疑简单转发是否适用于仅 SOCKS 软件。

于 2010-12-29T21:02:29.763 回答
3

如果公司对 Internet 访问如此严格,则代理可能仅配置为 HTTP(s) 网关,将没有可用的端口命令,因此直接 Internet 流量超出了网络范围内的自定义框。

自定义盒子可能是您家中安装了DD-WRTOpenWRT的互联网路由器。您唯一需要做的就是将它的 ssh 控制台设置为端口 443 (HTTPS) - 全部使用漂亮的 Web 管理面板(DD-WRT 具有易用性的优势)。另一种方法是使用朋友的 linux 机器、一些专用服务器或便宜的虚拟服务器,因为您需要的唯一功能是在端口 443 上运行 ssh 服务器。

如果你有一个 ssh 端口 22 或其他非默认端口的 linux 机器,只需将以下行添加到 /etc/init.d/local(或 /etc/conf.d/local.start):

iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 22
iptables -I INPUT -j ACCEPT -p tcp --dport 443
iptables -I INPUT -j ACCEPT -p tcp --dport 22

现在你需要从工作中连接到你的盒子,你可以使用瑞士军刀 - 腻子。是一篇很好的文章如何绕过代理,这里是如何在运行 putty 客户端的机器上设置本地 SOCKS 代理的文章。结合这两篇文章以获得预期的结果 - 在从 HTTP 代理后面连接时设置 SOCKS 代理。

祝你好运,自由必胜。

于 2010-12-31T02:49:31.783 回答
0

是否在 Windows 互联网设置中配置了 HTTP 代理?如果是这样,您可以告诉 Java 使用系统代理,如下所示:


System.setProperty("java.net.useSystemProxies", "true");

于 2010-12-29T20:51:42.777 回答
0

我不明白我认为的问题?

您想编写一个一端有 SOCKS API,另一端有 HTTP 的 java 组件?什么协议使用您的 IM 应用程序?正如“mindas”暗示的那样,您可能需要的不仅仅是简单的转发。

如果您只是搜索处理 HTTP 机制(包括代理身份验证)的 java 软件,请访问 Apache httpcomponents http://hc.apache.org/

于 2010-12-30T10:20:39.367 回答
0

您需要两个代理,一个在 HTTP 代理前面,一个在它后面。安装一个新的 SOCKS 代理更容易。

Instant Messenger --> IM Proxy 1 --> HTTP Proxy --> IM Proxy 2 --> Internets
                  IM            HTTP           HTTP            IM
               protocol                                      protocol

相对。

Instance Messenger --> SOCKS Proxy --> Internets
                   SOCKS           IM
                   protocol     protocol
于 2010-12-30T12:56:49.597 回答