如何构建代理网关?

时间:2010-12-27 09:48:13

标签: java windows networking proxy socks

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

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

5 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

如果公司对互联网访问有如此严格的限制,代理可能只配置为HTTP(s)网关,没有可用的端口命令,因此直接互联网流量超出范围而没有网络上的自定义框。< / p>

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

如果你的端口22上有一个带有ssh的linux机箱或其他非默认的,只需在/etc/init.d/local(或/etc/conf.d/local.start):(/)中添加以下行: p>

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

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

祝你好运,自由会赢。

答案 2 :(得分:0)

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


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

答案 3 :(得分:0)

我认为我没有提出这个问题?

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

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

答案 4 :(得分: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