如何使用iptables绕过代理服务器

时间:2011-07-13 10:07:06

标签: android proxy iptables

我正在开发Android代理应用程序,我想输入一些网站异常,我的所有异常都不应该使用代理服务器。

例如,我的例外是“www.yahoo.com”,这意味着如果我使用网络浏览器,那么我访问“www.yahoo.com”网站时,代理服务器不应该被使用或绕过。

这就是我所做的:

  1. 首先,我获得“www.yahoo.com”的IP地址,相当于“72.30.2.43”

  2. 然后我将范围更改为“72.30.2.0/24”(以便所有相关的网址也会变为例外)

  3. 我执行以下命令行
  4. iptables -t nat -A INPUT -p tcp --dport 80 -d 72.30.2.0/24 -j ACCEPT

    iptables -t nat -A INPUT -p tcp --dport 443 -d 72.30.2.0/24 -j ACCEPT

    iptables -t nat -A OUTPUT -p tcp --dport 80 -d 72.30.2.0/24 -j ACCEPT

    iptables -t nat -A OUTPUT -p tcp --dport 443 -d 72.30.2.0/24 -j ACCEPT

    iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to 8123

    我使用redsocks作为我的重定向器,但仍然在执行这些命令后,异常不起作用。

    请帮忙。

    非常感谢

2 个答案:

答案 0 :(得分:0)

首先不需要那些输入规则,你没有yahoo连接到端口80和443上的系统 所以允许响应流量重新使用这两个规则 iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p udp -s 0/0 --source-port 53 --destination-port 1024:65535 -j ACCEPT

然后阻止所有,或在输入上使用丢弃政策

重定向尝试使用此行 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8123

而不是这一个 iptables -t nat -A OUTPUT ........

还要查看此页面(还有很多其他内容)=> firewall example - iptables

答案 1 :(得分:0)

好的,这是一种方法:

这应该是您的第一个输入规则,您可以根据需要附加剩余的规则:

iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

默认情况下,您可以让输出链接受所有输出的数据包并删除其中存在的所有现有规则,前提是您信任用户输出流量。

iptables -P OUTPUT ACCEPT

现在接受yahoo.com,然后在预先路由链中重定向到代理。

iptables -t nat -I PREROUTING -p tcp -d www.yahoo.com -j ACCEPT

iptables -t nat -A PREROUTING -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-port 3128

您还需要具有以下伪装规则。

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d www.yahoo.com -p tcp -m multiport --dports 80,443 -j MASQUERADE

将192.168.1.x系列替换为您的实际IP范围。