我有很棒的即时通讯工作需要代理types(SOCKS4,SOCKS4A,SOCKS5),但我的公司正在使用Http代理。
我想build立自己的代理,只是将数据转发到我公司的代理(我需要input用户名和密码连接到该代理)。 怎么做?
如果你需要代理软件,为什么要重新发明轮子? 只要使用已经写好的东西(即jsocks )。 如果需要,应该可以添加认证。
如果你的公司代理只有HTTP,我怀疑简单的转发只适用于SOCKS-only软件。
如果公司对互联网访问的限制性很强,代理服务器可能只配置为HTTP(s)网关,则不会有可用的端口命令,因此,如果没有自定义的网络,直接的互联网流量就会超出范围。
一个自定义的盒子可能是你家里的互联网路由器,安装有DD-WRT或OpenWRT 。 你需要做的唯一的事情就是设置它的ssh控制台到端口443(HTTPS) – 全部使用漂亮的网页管理面板(DD-WRT考虑到易用性的优势)。 另一种方法是使用朋友的Linux机箱,一些专用的服务器或廉价的虚拟服务器作为唯一的功能,您将需要在端口443上运行ssh服务器。
如果你在端口22上有一个带有ssh的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
现在你需要连接到你的箱子,你可以使用瑞士军刀 – 腻子。 这里是一个不错的文章如何绕过代理, 这里是如何设置本地SOCKS代理在运行腻子客户端的机器上的文章。 合并这两篇文章以获得预期的结果 – 在从HTTP代理后面连接时设置SOCKS代理。
祝你好运,自由就会胜利。
HTTP代理是否在Windows网络设置中配置? 如果是这样,你可以告诉Java使用系统代理如下所示:
System.setProperty("java.net.useSystemProxies", "true");
System.setProperty("java.net.useSystemProxies", "true");
我不明白我的问题吗?
你想写一个在一端有一个SOCKS API的Java组件,在另一个HTTP? 什么协议使用您的IM应用程序? 作为“mindas”的提示,你可能需要的不仅仅是简单的转发。
如果您只是搜索处理HTTP机制(包括代理身份验证)的java sofwtware,请转至Apache httpcomponents http://hc.apache.org/
你需要两个代理,一个在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