我只是想让互联网匿名透明代理绕过stream量只是想隐藏客户端IP,但它不工作的HTTPS ..
我不想要使用sslbump或者只是想绕过stream量
我在谷歌和serverfault.com和stackoverflow.comsearch了很多,并testing这些解决scheme绕过httpsstream量:
用IPTables绕过透明鱿鱼
与iptables的鱿鱼问题
https://stackoverflow.com/questions/2601400/squidiptables-how-do-i-allow-https-to-pass-through-and-bypassing-squid
我的鱿鱼configuration是:
acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access allow all short_icon_urls on http_port 0.0.0.0:13128 accel vhost always_direct allow all refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 coredump_dir /var/spool/squid forwarded_for off
和我的iptables conf现在只是:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 13128 iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 13128
我尝试使用这些命令但不工作:
iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -p tcp --dport 443 -j ACCEPT iptables -I INPUT -i lo -j ACCEPT iptables -t nat -A PREROUTING -d xxxx -j ACCEPT iptables -t nat -A PREROUTING -i eth0 -p tcp -s xxxx -m tcp --dport 443 -j REDIRECT --to-ports 13128
xxxx是我有效的互联网IP
和我的客户端configuration使用代理是这样的:
在/ etc / hosts中添加somedomain.com somedomain.com
我想在浏览器中浏览https://somedomain.com
你可以find很多这样的ip端口代理,例如使用这个ip 173.161.0.227
如果我添加一行到我的客户端/ etc / hosts
173.161.0.227 www.iplocation.net
我可以浏览https://www.iplocation.net
我的服务器是CentOS 7
“匿名透明”这两个词是相互矛盾的。
匿名代理是隐藏客户端的详细信息,服务器只能看到代理。 透明意味着隐藏代理服务器的详细信息,并将客户端详细信息发送到服务器。
所以你的问题的简短答案是,你所要求的是不可能的。 你不能同时拥有两个。 特别是涉及TLS时(如HTTPS)。
您提到的/ etc / hosts示例不是透明代理。 他们可能是匿名代理。 他们绝对是“公开的代理人”。 看看。
你的squid.conf是一个反向代理,已经变成了一个开放的代理(通过always_direct线)。 这个代理configuration的NAT规则是毫无意义的。
如果你想使用/ etc / hosts的方式,那么擦除你的NAT规则,让Squid使用http_port 80而不是13128。
如果要使用NAT拦截代理,请清除always_direct行并将“accel vhost”选项更改为“拦截”。
端口80和端口443具有非常不同的stream量语法。 你正在NAT的http_port只接受80端口的语法。 这是NAT端口443无法正常工作的第一个原因。
要将HTTPS语法接收到Squid,您需要一个https_port来接收它。 但是,TLS阻止了/ etc / hosts方式的工作。 对于您不拥有的域接收HTTPS意味着SSL-Bump。 即使透明地中继NAT端口443,也需要将SSL-Bumpconfiguration为“拼接”。
但是,当NAT的唯一原因你的代理正在接收端口443stream量首先是因为你是NAT的端口443它。 要“绕过”,只需要清除包含端口443的NAT规则。