如何将小代理配置为透明代理

时间:2016-09-09 07:14:59

标签: java netty little-proxy

我有2张网卡。第一个是地址为10.1.1.252的网卡,第二个是地址为192.168.5.3的网卡。 如何使用代理配置为透明代理, 意味着客户端只需要更改final ChainedProxyAdapter adapter = new ChainedProxyAdapter() { @Override public InetSocketAddress getChainedProxyAddress() { return new InetSocketAddress("10.1.1.252", 8003); } }; ChainedProxyManager manager = new ChainedProxyManager() { @Override public void lookupChainedProxies(HttpRequest httpRequest, Queue<ChainedProxy> chainedProxies) { chainedProxies.add(adapter); } }; HttpProxyServer server = DefaultHttpProxyServer.bootstrap() .withAddress(new InetSocketAddress("192.168.5.3", 8002)) ..withChainProxyManager(manager) .start(); 的网关即可通过代理,而无需修改浏览器的代理选项。 我使用以下代码执行此操作:

iptables

(端口8003将访问互联网。) 在sysctl -w net.ipv4.ip_forward=1 iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 8002 iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 443 -j REDIRECT --to-port 8002 我添加了一些规则如下:

192.168.5.3

(eth2的地址为192.168.5.3) 但是当我将客户端设置为使用网关192.168.5.3GET / HTTP/1.1 dns时,我总是得到400 Bad请求到URI:/对于http url并且连接不安全用于https url。请让我知道解决方案。感谢。

原因:当代理从客户端读取请求时,它获取第一行,并且当使用代理作为透明时,它收到诸如ssl_error_rx_record_too_long之类的请求不包含主机,因此它返回错误请求。使用https请求,代理无法解析,尝试解析,浏览器抛出val myMap = Map("one" ->1, "two" -> 2)消息。 小代理不支持透明模式,小代理中的透明在通过代理连接时被理解为隐藏的计算机信息。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

{{1}}

来自文档:

  

指定是否将此代理作为透明代理运行。

     

默认= false