Экономия трафика (Privoxy + Polipo)
Установка privoxy+polipo. Часть 1. Privoxy
Устанавливаем privoxy.
Code:
ipkg install privoxy
Не обязательно.
На сайте РУССКИЙ PRIVOXY забираем дополнительный набор фильтров.
Распаковываем их в /opt/etv/privoxy В readmi.txt описано, как правильно их подключить.
Правим конфиг.
Code:
confdir /opt/etc/privoxy
templdir /opt/etc/privoxy/templates
logdir /opt/var/log
logfile privoxy.log
listen-address 127.0.0.1:8118
toggle 1
enable-remote-toggle 1
enable-remote-http-toggle 1
enable-edit-actions 1
enforce-blocks 0
buffer-limit 128
forwarded-connect-retries 0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 300
socket-timeout 300
Если собираетесь использовать дополнительный набор фильтров, то добавляем строки выделенные курсивом:
Code:
actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
actionsfile default.action # Main actions file
actionsfile adult.action #http://privoxy.org.ru #по желанию
actionsfile privoxy-org-ru.action #http://privoxy.org.ru
actionsfile user.action # User customizations
filterfile default.filter
filterfile privoxy-org-ru.filter #http://privoxy.org.ru
filterfile user.filter # User customizations
Скрипт запуска /opt/etc/init.d/S60privoxy
Code:
#!/bin/sh
NAME="Privoxy"
PIDFILE=/opt/var/run/privoxy.pid
USER=proxy
GROUP=proxy
start() {
echo "Starting $NAME... "
#/opt/sbin/privoxy --pidfile $PIDFILE --user $USER.$GROUP --chroot /opt/etc/privoxy/config
/opt/sbin/privoxy --pidfile $PIDFILE /opt/etc/privoxy/config
}
stop() {
echo "Shutting down $NAME... "
[ -f ${PIDFILE} ] && kill `cat ${PIDFILE}`
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac
exit 0
Сделать запуск под пользователем proxy, я не смог.
Если кто сможет это сделать и опишет как это сделать, буду очень благодарен.
(11.02.2010) Ура!!! Свершилось. Пользователь vildi выложил скрипт и инструкцию по запуску privoxy под ограниченным пользователем. Читать можно тут: Установка и запуск privoxy не от root'a со стартером
Я поставил, у меня работает. За что выражаю vildi благодорность! Спасибо!
Установка privoxy+polipo. Часть 2. Polipo
Часть 2. Polipo.
Устанавливаем polipo.
Code:
ipkg install polipo
Создаем каталог /opt/etc/polipo и ложим туда следующие файлы:
config
Code:
# Sample configuration file for Polipo. -*-sh-*-
# You should not need to edit this configuration file; all configuration
# variables have reasonable defaults.
# This file only contains some of the configuration variables; see the
# list given by ``polipo -v'' and the manual for more.
### Basic configuration
### *******************
# Uncomment one of these if you want to allow remote clients to
# connect:
# proxyAddress = "::0" # both IPv4 and IPv6
# proxyAddress = "0.0.0.0" # IPv4 only
proxyAddress = 192.168.1.1
proxyPort = 8123
# If you are enabling 'proxyAddress' above, then you want to enable the
# 'allowedClients' variable to the address of your network, e.g.
allowedClients = 127.0.0.1, 192.168.1.0/24
#allowedClients = 127.0.0.1
# Uncomment this if you want your Polipo to identify itself by
# something else than the host name:
# proxyName = "polipo.example.org"
# Uncomment this if there's only one user using this instance of Polipo:
# cacheIsShared = false
# Uncomment this if you want to use a parent proxy:
# parentProxy = "squid.example.org:3128"
parentProxy = 127.0.0.1:8118
# Uncomment this if you want to use a parent SOCKS proxy:
# socksParentProxy = "localhost:9050"
# socksProxyType = socks5
### Memory
### ******
# Uncomment this if you want Polipo to use a ridiculously small amount
# of memory (a hundred C-64 worth or so):
chunkHighMark = 819200
objectHighMark = 128
# Uncomment this if you've got plenty of memory:
# chunkHighMark = 50331648
# objectHighMark = 16384
### On-disk data
### ************
# Uncomment this if you want to disable the on-disk cache:
# diskCacheRoot = ""
# Uncomment this if you want to put the on-disk cache in a
# non-standard location:
# diskCacheRoot = "~/.polipo-cache/"
diskCacheRoot = "/home/cache/"
# Uncomment this if you want to disable the local web server:
# localDocumentRoot = ""
# Uncomment this if you want to enable the pages under /polipo/index?
# and /polipo/servers?. This is a serious privacy leak if your proxy
# is shared.
# disableIndexing = false
# disableServersList = false
diskCacheTruncateTime = 30d
diskCacheUnlinkTime = 90d
diskCacheTruncateSize = 2048 MB
### Domain Name System
### ******************
# Uncomment this if you want to contact IPv4 hosts only (and make DNS
# queries somewhat faster):
dnsQueryIPv6 = no
# Uncomment this if you want Polipo to prefer IPv4 to IPv6 for
# double-stack hosts:
# dnsQueryIPv6 = reluctantly
# Uncomment this to disable Polipo's DNS resolver and use the system's
# default resolver instead. If you do that, Polipo will freeze during
# every DNS query:
dnsUseGethostbyname = yes
### HTTP
### ****
# Uncomment this if you want to enable detection of proxy loops.
# This will cause your hostname (or whatever you put into proxyName
# above) to be included in every request:
# disableVia=false
# Uncomment this if you want to slightly reduce the amount of
# information that you leak about yourself:
# censoredHeaders = from, accept-language
# censorReferer = maybe
# Uncomment this if you're paranoid. This will break a lot of sites,
# though:
# censoredHeaders = set-cookie, cookie, cookie2, from, accept-language
# censorReferer = true
# Uncomment this if you want to use Poor Man's Multiplexing; increase
# the sizes if you're on a fast line. They should each amount to a few
# seconds' worth of transfer; if pmmSize is small, you'll want
# pmmFirstSize to be larger.
# Note that PMM is somewhat unreliable.
# pmmFirstSize = 16384
# pmmSize = 8192
# Uncomment this if your user-agent does something reasonable with
# Warning headers (most don't):
# relaxTransparency = maybe
# Uncomment this if you never want to revalidate instances for which
# data is available (this is not a good idea):
# relaxTransparency = yes
# Uncomment this if you have no network:
# proxyOffline = yes
# Uncomment this if you want to avoid revalidating instances with a
# Vary header (this is not a good idea):
# mindlesslyCacheVary = true
maxDiskEntries = 4096
disableIndexing = false
maxConnectionRequests = 512
maxDiskCacheEntrySize = -1
forbidden
Code:
# Sample forbidden URLs file for polipo. -*-sh-*-
# Put this in /etc/polipo/forbidden or in ~/.polipo-forbidden.
# Forbid all hosts belonging to a given domain name:
#counter.com
#hitbox.com
#doubleclick.net
#www.cashcount.com
# Forbid all hosts contaning a string matching a given regex. Note
# that you need to quote dots, so that a regex is not misinterpreted
# as a domain name.
#^http://[^/]*counter\.com
#/ads/
#/phpAdsNew
#counting\.php
options
Code:
# See the /usr/share/doc/polipo/README.Debian file for details on this file
method any
#method static
#method manual
#method dhcp
#method bootp
#method ppp
#method wvdial
Зачем нужен options - неподозреваю, но когда я ставил polipo в ubuntu он создался и я его чесно перенес в роутер. :-(
Скрипт запуска /opt/etc/init.d/S70polipo
Code:
#!/bin/sh
NAME="Polipo"
PIDFILE=/opt/var/run/polipo.pid
POLIPO=/opt/bin/polipo
CONFIG_FILE=/opt/etc/polipo/config
FORBIDDEN_FILE=/opt/etc/polipo/forbidden
LOGFILE=/opt/var/log/polipo.log
USER=proxy
GROUP=proxy
#DAEMON_OPTS=" -c $CONFIG_FILE pidFile=$PIDFILE daemonise=true logFile=$LOGFILE"
start() {
echo "Starting $NAME... "
/opt/bin/polipo -c $CONFIG_FILE pidFile=$PIDFILE daemonise=true logFile=$LOGFILE
}
stop() {
echo "Shutting down $NAME... "
[ -f ${PIDFILE} ] && kill `cat ${PIDFILE}`
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac
exit 0
Вообще, запускать polipo, тоже лучше под пользователем proxy, но как это сделать я не знаю.
Если кто-то сможет это сделать и опишет, как он это реализовал, то общественность будет очень благодарна.
На этом вроде все.
(11.02.2010) Ура! Вдохновленный скриптом запуска для privoxy под ограниченным пользователем от vildi переписал скрипт запуска для polipo.
Взять скрипт и почитать инструкцию по настройке можно тут: Стартовый скрипт для запуска polipo под ограниченным пользователем
Стартовый скрипт для запуска polipo под ограниченным пользователем
Стартовый скрипт для запуска polipo под ограниченным пользователем, т.е. на под admin (Напоминаю, admin у нас равен root)
Здесь я опишу только сам скрипт, и что нужно сделать чтобы он заработал. Что касается самой установки и настройки, то это можно прочитать в этом сообщении этой же темы: Установка privoxy+polipo. Часть 2. Polipo
Итак, скрипт запуска /opt/etc/init.d/S70polipo теперь выглядит так:
Code:
#!/bin/sh
SHELL="/bin/sh"
NAME="polipo"
POLIPO=/opt/bin/polipo
CONFIG_FILE=/opt/etc/polipo/config
FORBIDDEN_FILE=/opt/etc/polipo/forbidden
LOGFILE=/opt/var/log/polipo.log
USER=proxy
GROUP=proxy
DAEMON_OPTS=" -c $CONFIG_FILE daemonise=true logFile=$LOGFILE"
# проверяем наличие su
test -x /opt/bin/su -o -x /bin/su || ( echo "su not found." ; exit 2 )
start() {
if [ -n "`pidof $NAME`" ] ; then
echo "$NAME adlready running! "
else
echo "Starting $NAME... "
su -c "$POLIPO $DAEMON_OPTS" -s $SHELL $USER 2>/dev/null
fi
}
stop() {
if [ -n "`pidof $NAME`" ] ; then
echo "Stopping $NAME"
killall $NAME 2> /dev/null
fi
}
cache() {
echo "$NAME caching...! "
su -c "$POLIPO -c $CONFIG_FILE -x logFile=$LOGFILE" -s $SHELL $USER 2>/dev/null
}
case "$1" in
start)
start
;;
stop)
stop
;;
cache)
cache
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 (start|stop|restart|cache)"
exit 1
;;
esac
exit 0
Поехали дальше.
Если пользователь proxy ещё не создан, то его нужно создать. Лучше это сделать с помощью утилы adduser (Если её нет, то ставим: ipkg install adduser)
Code:
adduser -s /sbin/nologin -D -H proxy
Проверяем файл /etc/passwd. Особое внимание обращаем на НЕ выделенное содержимое строки нашео пользователя. В общем подправим там созданного юзера до вот такого состояния
Code:
proxy:x:<ИД_пользователя>:<ИД_группы_пользователя>:Proxy User:/:/sbin/nologin
Проверяем файл /etc/group. Наша группа должна выглядеть примерно следующим образом
Code:
proxy:x:<ИД_группы>:
У меня <ИД_пользователя>, <ИД_группы_пользователя>, <ИД_группы> равны 1005. У Вас может быть другое число.
Если У Вас есть файл /etc/shells, то проверяем есть ли в нём строка
Если нет, то добавляем.
Так, чтобы изменения сохранились, выполняем следующее
Code:
flashfs save && flashfs commit && flashfs enable
Теперь даем права на каталог с настройками polipo, а точнее меняем владельца и группу:
Code:
chown proxy:proxy -R /opt/etc/polipo
И на каталог с логом, ну или на сам лог (лично я давал права на сам лог):
Code:
chown proxy:proxy -R /opt/var/log/polipo.log
Небольшое отступление. У меня права на каталог /opt/var/log/ равны 777, поэтому я и поменял владельца и группу только у самого файла лога.
И наконец сам кэш.
Code:
chown proxy:proxy -R /home/cache
Свой путь к кэшу, можно увидеть в конфиге polipo. Это параметр: diskCacheRoot. У меня эта строка выглядит так:
Code:
diskCacheRoot = "/home/cache/"
Если, кэш большой, то смена владельца может занять длительное время.
Для того, что кэш периодически очищался от старого содержимого, делаем задание для cron'а. Если у Вас cron ещё не установлен, то ищем тему на форуме, где описана установка cron'а (их достаточно на форуме) и ставим его.
Ну а для того чтобы каждый понедельник в 3 часа 1 минуту запускалась очистка кэша, нужно положить создать такой файл: /opt/etc/cron.d/polipo_cache
Code:
# кэш раз в недель в понедельник в 3:01
1 3 * * 1 admin /opt/etc/init.d/S70polipo cac
По идее, это всё.
Ссылки:
Мою инструкцию по настройке privoxy можно посмотреть тут: Установка privoxy+polipo. Часть 1. Privoxy
Инструкцию по запуску privoxy под ограниченным пользователем от vildi можно посмотреть тут: Установка и запуск privoxy не от root'a со стартером
Мою инструкцию по настройке polipo можно посмотреть тут: Установка privoxy+polipo. Часть 2. Polipo
Экономия трафика (Privoxy + Polipo)
Здравствуйте скажите пожалуйста что нужно сделать на роутере, чтобы пользователи интернета не видели разные банеры
Кто-нибудь "режет" рекламу средствами рутера?
Собственно сабж. Кто-нибудь пробовал ставить proxy-server - BFilter?
http://bfilter.sourceforge.net/index.php
bfilter - Прокси с эвристическим фильтром рекламы
Уже давно пользуюсь сабжем под ubuntu. Отлично режет все виды рекламы без заморочек с конфигурированием и обновлением бан-листов.
Хотел бы его поставить на WL-500gP. Попробовал самостоятельно скомпилировать - не получилось - не хватает знаний.
Если кто может - скомпилируйте пожалуйста.
http://ylsoftware.com/?action=news&na=viewfull&news=360
http://bfilter.sourceforge.net/
Экономия трафика (Privoxy + Polipo)
Есть ли способы экономии интернет трафика
программными методами роутера (прокси, сжатие и т.п.)
и кто-нибудь экономит интернет трафик?
Если да, то чем и как?