无需代理即可直接连接到Internet

时间:2011-08-05 09:22:00

标签: java networking proxy

是否可以在不使用代理的情况下直接连接到Internet。

考虑我的组织有代理的情况,我使用Java代理类中给出的DIRECT选项。

SocketAddress addr = new
InetSocketAddress("webcache.mydomain.com", 8080);
Proxy proxy = new Proxy(Proxy.Type.DIRECT, addr);

如果您按照文档说明 DIRECT代表直接连接或缺少代理。

这正是它的行为方式。当我使用此选项时,我不必提供任何代理详细信息,我可以从Internet访问内容。

我有三个问题

  1. 根据我的理解,组织是否有代理,所有网络 流量应通过代理进行路由。没有人应该能够 直接访问网络?
  2. 我还注意到,如果我从IE中删除代理详细信息,我就不能 访问网站:-( Java如何仍然可以做到?
  3. 如果在任何组织中,您都可以使用Proxy和 直接,防火墙如何阻止某些网站?怎么样 防火墙甚至可以工作吗?
  4. 提前致谢。

3 个答案:

答案 0 :(得分:2)

Proxy proxy = new Proxy(Proxy.Type.DIRECT, addr);

不是创建直接(无代理)代理指令的正确方法。你应该做

Proxy proxy = Proxy.NO_PROXY

Socket类和HttpURLConnection的内部实现检查proxy == Proxy.NO_PROXY(注意:“==”,而不是“equals()”!)。

它不会检查proxy.getType() == Proxy.Type.DIRECT

答案 1 :(得分:0)

2)您可能已在任何系统属性中设置代理。如果您使用的是任何IDE,请检查IDE的代理设置。

答案 2 :(得分:0)

如果您的组织有代理,并非所有网络流量都通过代理。您仍然可以继续建立与Internet的直接连接。大多数情况下,组织将阻止直接连接并强制您使用代理。有时他们可能会允许您使用Restricted Direct连接,这允许某些URL并拒绝其他URL。