我有很棒的 IM 需要类型的代理(SOCKS4、SOCKS4A、SOCKS5),但是我的公司正在使用 Http 代理。
我想建立自己的代理,将数据转发到我公司的代理(我需要输入用户名和密码才能连接到该代理)。怎么做?
我有很棒的 IM 需要类型的代理(SOCKS4、SOCKS4A、SOCKS5),但是我的公司正在使用 Http 代理。
我想建立自己的代理,将数据转发到我公司的代理(我需要输入用户名和密码才能连接到该代理)。怎么做?
如果您需要代理软件,为什么要重新发明轮子?只需使用已经编写好的东西(即jsocks)。如果需要,应该可以添加身份验证。
如果您的公司代理仅是 HTTP,我怀疑简单转发是否适用于仅 SOCKS 软件。
如果公司对 Internet 访问如此严格,则代理可能仅配置为 HTTP(s) 网关,将没有可用的端口命令,因此直接 Internet 流量超出了网络范围内的自定义框。
自定义盒子可能是您家中安装了DD-WRT或OpenWRT的互联网路由器。您唯一需要做的就是将它的 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 代理。
祝你好运,自由必胜。
是否在 Windows 互联网设置中配置了 HTTP 代理?如果是这样,您可以告诉 Java 使用系统代理,如下所示:
System.setProperty("java.net.useSystemProxies", "true");
我不明白我认为的问题?
您想编写一个一端有 SOCKS API,另一端有 HTTP 的 java 组件?什么协议使用您的 IM 应用程序?正如“mindas”暗示的那样,您可能需要的不仅仅是简单的转发。
如果您只是搜索处理 HTTP 机制(包括代理身份验证)的 java 软件,请访问 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