首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用iptables的透明Webproxy应用程序

使用iptables的透明Webproxy应用程序
EN

Stack Overflow用户
提问于 2012-03-02 00:30:19
回答 1查看 1.1K关注 0票数 0

我正在尝试用Java在Android上编写一个简单的代理应用程序来过滤URL。它所做的基本上是读取传入Socket上的所有内容,将所有内容写入服务器,反之亦然。如果我将我的Opera移动浏览器指向它,一切都会正常工作。我想让它变得透明,所以我尝试通过这些iptables规则将所有流量重定向到它:

代码语言:javascript
复制
iptables -t nat -A OUTPUT -m owner --uid-owner 10090 -j ACCEPT
iptables -t nat A OUTPUT -p tcp --dport 80 -j REDIRECT -p tcp --to-port 8081

然后,我收到一条错误消息,指出“服务器通信失败”。

会不会是因为在透明模式下使用代理时,它的行为会有所不同,比如像when服务器一样?我在某处读到,当透明地使用squid时,您必须将其配置为“透明模式”。

还是有一个完全不同的原因?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-09 01:22:23

回答我自己的问题。

iptable规则可以完美地工作,所以这不是问题所在。错误消息将我带到了正确的轨道上。它指出“服务器通信失败”,所以我的代理响应浏览器的方式有问题。

结果它没有向浏览器发送任何HTTP头,因为我使用URLConnection与真正的used服务器通信。URLConnection负责处理HTTP协议,这就是为什么浏览器在响应中看不到任何报头的原因。然后我切换到Socket应用程序接口与and服务器对话,并只是将所有内容转发回浏览器,其中包括标题和所有内容,它起作用了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9520062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档