颠倒的Ternet
本文介绍如何使用 Squid 代理服务器和 imagemagick 的 mogrify 命令创建一个透明代理服务器,将图片上下颠倒。
安装
安装 squid、apache、wget 和 imagemagick 软件包。
配置
创建 flip.pl
,将其放置在 /usr/local/bin
文件夹中,并使其可执行
/usr/local/bin/flip.pl
#!/usr/bin/perl $|=1; $count = 0; $pid = $$; while (<>) { @splitted=split(/ /,$_); chomp $_; if ($_ =~ /(.*\.jpg)/i) { $url = $1; system("/usr/bin/wget", "-q", "-O","/srv/http/images/$pid-$count.jpg", "$url"); system("/usr/bin/mogrify", "-flip","/srv/http/images/$pid-$count.jpg"); print "http://127.0.0.1/images/$pid-$count.jpg\n"; } elsif ($_ =~ /(.*\.gif)/i) { $url = $1; system("/usr/bin/wget", "-q", "-O","/srv/http/images/$pid-$count.gif", "$url"); system("/usr/bin/mogrify", "-flip","/srv/http/images/$pid-$count.gif"); print "http://127.0.0.1/images/$pid-$count.gif\n"; } elsif ($_ =~ /(.*\.png)/i) { $url = $1; system("/usr/bin/wget", "-q", "-O","/srv/http/images/$pid-$count.png", "$url"); system("/usr/bin/mogrify", "-flip","/srv/http/images/$pid-$count.png"); print "http://127.0.0.1/images/$pid-$count.png\n"; } else { print "$splitted[0]\n"; } $count++; }
接下来,虽然不是必须的,但可以清理 Squid 配置文件,使其更易于阅读
# sed -i "/^#/d;/^ *$/d" /etc/squid/squid.conf
现在,编辑您的 squid.conf 文件并将以下内容追加到文件末尾
squid.conf
url_rewrite_program /usr/local/bin/flip.pl
同时找到 http_port
行,并将其修改为如下内容
squid.conf
http_port 3128 intercept
最后,我们必须创建用于存放翻转后图片的文件夹,并设置其权限
用于存储图片的目录必须归代理用户所有。
# mkdir /srv/http/images # chown proxy:proxy /srv/http/images # chmod 755 /srv/http/images
最后,将 http 用户添加到 proxy 组
# usermod -aG proxy http
验证 http 用户是 proxy 组的成员
# groups http
或者
# id -Gn http
路由器设置
您需要编辑路由器或网关上的防火墙,以将 HTTP 流量重定向到您的代理。
启动
启动/启用 httpd.service
和 squid.service
。