Bekijk de volledige versie : Экономия трафика (Privoxy + Polipo)
igor77777
24-12-2008, 15:41
Установка privoxy+polipo. Часть 1. Privoxy
Устанавливаем privoxy.
ipkg install privoxy
Не обязательно.
На сайте РУССКИЙ PRIVOXY (privoxy.org.ru) забираем дополнительный набор фильтров.
Распаковываем их в /opt/etv/privoxy В readmi.txt описано, как правильно их подключить.
Правим конфиг.
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
Если собираетесь использовать дополнительный набор фильтров, то добавляем строки выделенные курсивом:
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
#!/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 со стартером (http://wl500g.info/showpost.php?p=180666&postcount=79)
Я поставил, у меня работает. За что выражаю vildi благодорность! Спасибо!
igor77777
24-12-2008, 15:41
Часть 2. Polipo.
Устанавливаем polipo.
ipkg install polipo
Создаем каталог /opt/etc/polipo и ложим туда следующие файлы:
config
# 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
# 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
# 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
#!/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 под ограниченным пользователем (http://wl500g.info/showpost.php?p=183541&postcount=84)
igor77777
24-12-2008, 15:41
Стартовый скрипт для запуска polipo под ограниченным пользователем, т.е. на под admin (Напоминаю, admin у нас равен root)
Здесь я опишу только сам скрипт, и что нужно сделать чтобы он заработал. Что касается самой установки и настройки, то это можно прочитать в этом сообщении этой же темы: Установка privoxy+polipo. Часть 2. Polipo (http://wl500g.info/showpost.php?p=147672&postcount=43)
Итак, скрипт запуска /opt/etc/init.d/S70polipo теперь выглядит так:
#!/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)
adduser -s /sbin/nologin -D -H proxy
Проверяем файл /etc/passwd. Особое внимание обращаем на НЕ выделенное содержимое строки нашео пользователя. В общем подправим там созданного юзера до вот такого состояния
proxy:x:<ИД_пользователя>:<ИД_группы_пользователя>:Proxy User:/:/sbin/nologin
Проверяем файл /etc/group. Наша группа должна выглядеть примерно следующим образом
proxy:x:<ИД_группы>:
У меня <ИД_пользователя>, <ИД_группы_пользователя>, <ИД_группы> равны 1005. У Вас может быть другое число.
Если У Вас есть файл /etc/shells, то проверяем есть ли в нём строка
/sbin/nologin Если нет, то добавляем.
Так, чтобы изменения сохранились, выполняем следующее
flashfs save && flashfs commit && flashfs enable
Теперь даем права на каталог с настройками polipo, а точнее меняем владельца и группу:
chown proxy:proxy -R /opt/etc/polipo
И на каталог с логом, ну или на сам лог (лично я давал права на сам лог):
chown proxy:proxy -R /opt/var/log/polipo.log
Небольшое отступление. У меня права на каталог /opt/var/log/ равны 777, поэтому я и поменял владельца и группу только у самого файла лога.
И наконец сам кэш.
chown proxy:proxy -R /home/cache
Свой путь к кэшу, можно увидеть в конфиге polipo. Это параметр: diskCacheRoot. У меня эта строка выглядит так:
diskCacheRoot = "/home/cache/"
Если, кэш большой, то смена владельца может занять длительное время.
Для того, что кэш периодически очищался от старого содержимого, делаем задание для cron'а. Если у Вас cron ещё не установлен, то ищем тему на форуме, где описана установка cron'а (их достаточно на форуме) и ставим его.
Ну а для того чтобы каждый понедельник в 3 часа 1 минуту запускалась очистка кэша, нужно положить создать такой файл: /opt/etc/cron.d/polipo_cache
# кэш раз в недель в понедельник в 3:01
1 3 * * 1 admin /opt/etc/init.d/S70polipo cac
По идее, это всё.
Ссылки:
Мою инструкцию по настройке privoxy можно посмотреть тут: Установка privoxy+polipo. Часть 1. Privoxy (http://wl500g.info/showpost.php?p=147670&postcount=42)
Инструкцию по запуску privoxy под ограниченным пользователем от vildi можно посмотреть тут: Установка и запуск privoxy не от root'a со стартером (http://wl500g.info/showpost.php?p=180666&postcount=79)
Мою инструкцию по настройке polipo можно посмотреть тут: Установка privoxy+polipo. Часть 2. Polipo (http://wl500g.info/showpost.php?p=147672&postcount=43)
revenant
24-12-2008, 15:41
Здравствуйте скажите пожалуйста что нужно сделать на роутере, чтобы пользователи интернета не видели разные банеры
usmailer™
24-12-2008, 15:49
никак..
наш роутер не имеет аппаратной функции банорезки...
ставьте такой софт для браузеров..
revenant
24-12-2008, 16:32
никак..
наш роутер не имеет аппаратной функции банорезки...
ставьте такой софт для браузеров..
Ну может программы какие то есть. Вот урл заблокировать можно, а банер нет... странно.
вообще то есть --- называются proxy, squid, например.
Lupo_Alberto
27-12-2008, 20:39
Есть ещё privoxy. Посетите сайт Privoxy in Russian (http://privoxy.org.ru/index.htm) для настройки фильтров на "русские" баннеры.
Musasimaru
29-12-2008, 13:00
Собственно сабж. Кто-нибудь пробовал ставить proxy-server - BFilter?
http://bfilter.sourceforge.net/index.php
unnamed777
28-01-2009, 08:24
Захотел сделать сжимающий прокси для телефона на своем wl500gp. Поскольку не нашел в пакетах прокси, который бы позволял сжимать gzipом страницы, решил попробовать связку lighttpd & mod_compress & polipo(легкий прокси-сервер), но столкнулся с проблемой еще на стадии связания софта. Если в браузере указать в качестве прокси 192.168.1.1:8123(polipo), то все работает. Если пустить браузер через lighttpd(192.168.1.1:8088), то запрашиваемые страницы не отдаются — минуты две браузер ждет ответ, потом появляется стартовая страница polipo, которую можно вызвать через адрес 192.168.1.1:8123 (сам lighttpd работает нормально, проверял с помощью url.redirect). В логах веб-сервера:
admin@router:polipo # cat /opt/var/log/lighttpd/error.log
2009-01-28 14:02:21: (log.c.97) server started
2009-01-28 14:02:31: (mod_proxy.c.1082) proxy - start
2009-01-28 14:02:31: (mod_proxy.c.1120) proxy - ext found
2009-01-28 14:02:31: (mod_proxy.c.1253) proxy - found a host 192.168.1.1 8123
2009-01-28 14:02:31: (mod_proxy.c.377) connect delayed: 8
2009-01-28 14:02:31: (mod_proxy.c.994) proxy: fdevent-out 1
2009-01-28 14:02:31: (mod_proxy.c.805) proxy - connect - delayed success
2009-01-28 14:02:31: (mod_proxy.c.961) proxy: fdevent-in 4
2009-01-28 14:02:31: (mod_proxy.c.645) proxy - have to read: 532
2009-01-28 14:02:54: (mod_proxy.c.1082) proxy - start
2009-01-28 14:02:54: (mod_proxy.c.1120) proxy - ext found
2009-01-28 14:02:54: (mod_proxy.c.1253) proxy - found a host 192.168.1.1 8123
2009-01-28 14:02:54: (mod_proxy.c.377) connect delayed: 10
2009-01-28 14:02:54: (mod_proxy.c.994) proxy: fdevent-out 1
2009-01-28 14:02:54: (mod_proxy.c.805) proxy - connect - delayed success
2009-01-28 14:02:54: (mod_proxy.c.961) proxy: fdevent-in 4
2009-01-28 14:02:54: (mod_proxy.c.645) proxy - have to read: 532
2009-01-28 14:04:31: (mod_proxy.c.961) proxy: fdevent-in 4
2009-01-28 14:04:31: (mod_proxy.c.645) proxy - have to read: 0
2009-01-28 14:04:54: (mod_proxy.c.961) proxy: fdevent-in 4
2009-01-28 14:04:54: (mod_proxy.c.645) proxy - have to read: 0
Кусок конфига lighttpd:
331 $SERVER["socket"] == "192.168.1.1:8088" {
332 #url.redirect = (".*" => "http://example.net")
333 proxy.debug = 1
334 proxy.server = ("" => (
335 "polipo" => (
336 "host" => "192.168.1.1",
337 "port" => 8123
338 )
339 )
340 )
341 }
Наверняка, я что-то где-то не то делаю, но что именно — понять не могу. Да и вообще не знаю, будет ли такая связка делать задуманное:-)
Заодно может быть подскажете — есть ли какая-то альтернатива? Например, сжимающий прокси(может быть я его в списке пакетов пропустил) или альтернативные связки?
Уже давно пользуюсь сабжем под ubuntu. Отлично режет все виды рекламы без заморочек с конфигурированием и обновлением бан-листов.
Хотел бы его поставить на WL-500gP. Попробовал самостоятельно скомпилировать - не получилось - не хватает знаний.
Если кто может - скомпилируйте пожалуйста.
http://ylsoftware.com/?action=news&na=viewfull&news=360
http://bfilter.sourceforge.net/
Есть ли способы экономии интернет трафика
программными методами роутера (прокси, сжатие и т.п.)
и кто-нибудь экономит интернет трафик?
Если да, то чем и как?
Есть ли способы экономии интернет трафика
программными методами роутера (прокси, сжатие и т.п.)
и кто-нибудь экономит интернет трафик?
Если да, то чем и как?
Один из стандартных вариантов - прокси + баннерорезалка.
на роутере можно например поднять из легких 3proxy, tinyproxy, из тяжелых - squid.
Один из стандартных вариантов - прокси + баннерорезалка.
на роутере можно например поднять из легких 3proxy, tinyproxy, из тяжелых - squid.
Так, имхо они ж даже не кэширующие :rolleyes:
кроме конечно squid, но больно тяжел для роута,
стоял у меня, работал, ну тормоза Уууу....
С настройкой "polipo" может кто поможет?
нужен оптимизированный конфиг под роутер.
или хотя бы описание его.
В идеале polipo+adzapper...
Гугл рыл, кроме невнятного англицкого, ничего не нашел.
На дом странице, тоже краткость-сестра таланта...
А вот так можно наверно попробовать:
http://ylsoftware.com/news/450
А вот так можно наверно попробовать:
http://ylsoftware.com/news/450
Спасибо (но это я уже находил)! Читал я там, читал...
Но думаю, кто-то ж пользуется на роуте или нет?
Тяжело (пока) пережевывать инструкции для ББ и Б(L)
(Большой Linux :) ) применительно к роуту :(
Что-то просматривается в виде
Privoxy + Polipo
кто поможет с настройками?
Не проходите мимо!
Ведь пользуемся, народ... и молчим ;)
подскажите, настройки от прог, стоящих на ББ (Linux)
подойдут ли для использования на роуте с теми же прогами?
С настройкой polipo разобрался, все работает, ВСЕМ спасибо!
как прикрутить к нему privoxy
или откомпилить bfilter
:confused::confused::confused:
Прокси для офиса с эвристическим фильтром рекламы!
Ну неужели никто не помогет :)
Да гуру скомпилить это дело, пара пустяков и новый коврик мыши :)
ну видимо пока некогда...:D
"Да-да. Именно так. Программы, позволяющие отсеивать рекламу используя интеллектуальные алгоритмы вместо чёрных списков существуют!"
BFilter - filtering web proxy
В отличии от других решений, в BFilter используются эвристические методы выявления рекламных блоков. Можно отметить, наличие встроенного javascript парсера, анализатора Flash роликов, поддержку сжатого контента, возможность пересылки запросов к другому прокси серверу."
Nebulosa
21-05-2009, 06:33
Скомпилировать то наверное можно... :)
Судя по http://bfilter.sourceforge.net/doc/build-unix.php для не GUI версии нужны
ACE >= 5.4
libsigc++ 2.x.x - ура! это есть в репазитории
zlib (any version) - тоже ура! тоже есть в репазитории.
Следовательно нужно сперва разобраться с ACE -
http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/ACE-INSTALL.html#unix_autoconf
Попробуем... :rolleyes:
С настройкой polipo разобрался, все работает, ВСЕМ спасибо!
как прикрутить к нему privoxy
или откомпилить bfilter
:confused::confused::confused:
Поделитесь как настроилось все и есть ли реальная экономия трафика за счет прокси. Спасибо
Поделитесь как настроилось все и есть ли реальная экономия трафика за счет прокси. Спасибо
Когда я сказал знакомому линуксоиду что у меня на роуте
стоял squid у него брови аж на прическу залезли...:D
Это я к тому, что squid много жрет ресурсов и памяти,
его вообще-то по-взрослому выделяют в отдельный сервер :eek:
Расказать как все настроилось - взял с гугла конфиг polipo
а и настроил :rolleyes:.
с ним пока никакой статистики нет.
Когда стоял squid - притормаживало, но работало,
странички грузились быстро (милисекундная задержка
и перед тобой вся страница, а не по частям появляющаяся :)
кэш побольше и гугл по оптимизации...
Имхо, объяснять работу кэширующего прокси грамотно врядли смогу,
а вот из почитанного известно, что брать из кэша на локальном
диске всегда дешевле чем из инета каждый раз посещая
определенный круг сайтов (интересов), при тарифе по трафику.
Пример настройки polipo (один из сотен по гуглу) вот (http://aliaksei.org/seh/?%CD%E0%F1%F2%F0%EE%E9%EA%E0_%EF%F0%EE%F1%F2%EE%E3 %EE_%EF%F0%EE%EA%F1%E8-%F1%E5%F0%E2%E5%F0%E0)
Скомпилировать то наверное можно... :)
Судя по http://bfilter.sourceforge.net/doc/build-unix.php для не GUI версии нужны
ACE >= 5.4
libsigc++ 2.x.x - ура! это есть в репазитории
zlib (any version) - тоже ура! тоже есть в репазитории.
Следовательно нужно сперва разобраться с ACE -
http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/ACE-INSTALL.html#unix_autoconf
Попробуем... :rolleyes:
Очень надеюсь , что у вас, спецов, все получится!!!
могу только тестировать (надеюсь, что пока),
это очень интересная и нужная прога в нашей копилке!
Nebulosa
21-05-2009, 19:06
Когда я сказал знакомому линуксоиду что у меня на роуте
стоял squid у него брови аж на прическу залезли...:D
Это я к тому, что squid много жрет ресурсов и памяти,
его вообще-то по-взрослому выделяют в отдельный сервер :eek:
Ммм... Ну а кроме того что он прокси polipo еще что-нибудь умеет? Самое минимальное хотелось бы чтобы по списку URL он блокировал и вместо него отправлял на другой урл с пустой гифкой.
А про squid зря вы так, вполне себе живет на роутере невыключаясь месяцами + еще параллельно нити для фильтрации рекламы висят.. могу цифры привести какие вам нужно, по накладным расходам.. в подписи у меня есть ссылочка впрочем..
Вы этому линуксоиду про nginx+php не рассказывайте :D (что параллельно со сквидом на роутере работает) а то боюсь ему сердцем будет плохо. А у сервачка то.. 2000+ хостов (не хитов!) ежесуточно..
Еще правда была база mysql, но как пользователей стало больше 50 joomla помирать начала.. перевел ее на "отдельный сервер" :)
http://www.pps.jussieu.fr/~jch/software/polipo/
Ммм... Ну а кроме того что он прокси polipo еще что-нибудь умеет? Самое минимальное хотелось бы чтобы по списку URL он блокировал и вместо него отправлял на другой урл с пустой гифкой.
А про squid зря вы так, вполне себе живет на роутере невыключаясь месяцами + еще параллельно нити для фильтрации рекламы висят.. могу цифры привести какие вам нужно, по накладным расходам.. в подписи у меня есть ссылочка впрочем..
Вы этому линуксоиду про nginx+php не рассказывайте :D (что параллельно со сквидом на роутере работает) а то боюсь ему сердцем будет плохо. А у сервачка то.. 2000+ хостов (не хитов!) ежесуточно..
Еще правда была база mysql, но как пользователей стало больше 50 joomla помирать начала.. перевел ее на "отдельный сервер" :)
Да работает то он (squid) - работает, только без свопа роутер
сразу загибался... И у меня он работал (повторяю).
А то что наставить в роут можно по самые уши, пожалуйста,
только не ехать это будет, а ползти на пределе...
Вообще, разговор об экономии трафика, весьма полезен
пользователям тарифа по трафику, которых имхо сейчас меньше,
чем безлимитчиков :) , но они пока ЕСТЬ, "значит нас будут
любить провайдеры, накручивая трафик, а мы будем любить
провайдеров устанавливая кэширующие прокси и резаки рекламы"
:D
"Программы, позволяющие отсеивать рекламу используя интеллектуальные алгоритмы вместо чёрных списков существуют!"
polipo + BFilter - 1-й делает кэш, 2-й режет рекламу!
В отличии от других решений, в BFilter используются эвристические методы выявления рекламных блоков. Можно отметить, наличие встроенного javascript парсера, анализатора Flash роликов, поддержку сжатого контента, возможность пересылки запросов к другому прокси серверу."
Подскажите, правильно ли:
(если кто поможет с реализацией (настройки) буду много благодарен)
Правильно.
Только для подобных схем лучше внутренние коннекты делать по локалхосту, не по внутриланоскому IP - так в настройках можео вообще второй прокси на LAN не светить.
Еще варианты (все с клиентов через прокси пропускать принудительно):
1. на входе транспарент прокси, на выходе polipo (он транспарентом работать не умеет).
2. Все запросы на известные порты роутить на my.router:8123, смотрящий на второй прокси.
первый вариант должен быть рабочим, второй не пробовал.
Правильно.
Только для подобных схем лучше внутренние коннекты делать по локалхосту, не по внутриланоскому IP - так в настройках можео вообще второй прокси на LAN не светить.
Еще варианты (все с клиентов через прокси пропускать принудительно):
1. на входе транспарент прокси, на выходе polipo (он транспарентом работать не умеет).
2. Все запросы на известные порты роутить на my.router:8123, смотрящий на второй прокси.
первый вариант должен быть рабочим, второй не пробовал.
1. Может или это не то?
Can Polipo behave as a transparent proxy?
Polipo is transparent if you set the following in your config file:
maxAge = 0
maxExpiresAge = 0
# Раскомментируйте, если вы хотите использовать родительский прокси:
# ParentProxy = "squid.example.org: 3128"
# Раскомментируйте, если вы хотите использовать родительский прокси SOCKS:
# SocksParentProxy = "локальный: 9050" # socksProxyType = socks5
Только сам еще не пробовал, пока разбираюсь.
Значит, родительский прокси для polipo поставить 127.0.0.1:3128 ?
а в конфигурации privoxy поставить использовать для себя
ip 127.0.0.1 потр 3128 ?
Так?__________
Может что-то я недопонимаю :)
Из инета трафик поступает на privoxy где
режется реклама и мусор, затем идет на polipo
где кэшируется на диске и подается клиенту.
Хотелось бы чтоб так сработало, возможно?
Так?__________
Да, так.
Полностью прозрачный - имеется в виду это:
Can Polipo behave as an intercepting proxy?
No.
Interception proxying (sometimes confusingly called ‘‘transparent’’ proxying) is a technique that intercepts client connections at the network layer in order to redirect them at an application layer proxy.
Interception proxying is a fundamentally broken design (see for example this posting and RFC 3143, Section 2.2.2), and will not be supported by Polipo. If you want to use interception proxying in order to avoid manually configuring your clients, please use Netscape's proxy.pac auto-configuration (you don't need a separate web server, as a proxy.pac file can be served by Polipo's internal server). If you want to use interception proxying for any other reason, you're probably doing something wrong.
Именно так указанная конфигурация и будет работать.
Да, так.
Полностью прозрачный - имеется в виду это:
Can Polipo behave as an intercepting proxy?
No.
Interception proxying (sometimes confusingly called ‘‘transparent’’ proxying) is a technique that intercepts client connections at the network layer in order to redirect them at an application layer proxy.
Interception proxying is a fundamentally broken design (see for example this posting and RFC 3143, Section 2.2.2), and will not be supported by Polipo. If you want to use interception proxying in order to avoid manually configuring your clients, please use Netscape's proxy.pac auto-configuration (you don't need a separate web server, as a proxy.pac file can be served by Polipo's internal server). If you want to use interception proxying for any other reason, you're probably doing something wrong.
Именно так указанная конфигурация и будет работать.
Спасибо !!!
Займусь настройками ;)
Требуется для privoxy libz.so.1.o
Что это и как это поставить???
Nebulosa
23-05-2009, 11:22
Так, имхо они ж даже не кэширующие :rolleyes:
кроме конечно squid, но больно тяжел для роута,
стоял у меня, работал, ну тормоза Уууу....
В идеале polipo+adzapper...
Позвольте с вами не согласится.. у меня он от 3 до 6 мегабайт занимает (если я правильно посчитал 12% и 21,5% которые показывает htop), кэш отключен, потому что делать кеш на флешке (где стоит сквид и все остальное) это ужас что получается.
Все летает. Аптайм - месяцы работы.
adzapper - это perlовый скрипт для которого нужно ставить perl а он весит много и ЦП выжирает основательно, я его заменил на три строчки в bash :D
Щас пытаюсь либо bfilter собрать, либо squidguard...
Позвольте с вами не согласится.. у меня он от 3 до 6 мегабайт занимает (если я правильно посчитал 12% и 21,5% которые показывает htop), кэш отключен, потому что делать кеш на флешке (где стоит сквид и все остальное) это ужас что получается.
Все летает. Аптайм - месяцы работы.
adzapper - это perlовый скрипт для которого нужно ставить perl а он весит много и ЦП выжирает основательно, я его заменил на три строчки в bash :D
Щас пытаюсь либо bfilter собрать, либо squidguard...
Конечно, кэш на флешке - это не правильно!
У меня opt большой был на диске, там же и кэш,
opt большой только из-за кэша (не знаю какие права выставить
для каталога кэша squid? если знаешь подскажи!?!)
Сам в разддумьях :rolleyes:
polipo (для кэша) + вырезатель рекламы
или squid (и с кэшем и с вырезателем,
но первый вариант очень нам подходит о ресурсам!
polipo+bfilter - было бы ОЧЕНЬ ЗДОРОВО!!! Попробуй, получится!
У меня, к сожалению, еще не выросли ногти для компиляций (или
как их там называют) , но много народу скажет СПАСИБО
за эту процедуру!
Что-то polipo не очень стабильно у меня работает,
имхо дело в настройках :confused:
или это так и есть :eek:
Nebulosa
23-05-2009, 19:54
Конечно, кэш на флешке - это не правильно!
У меня opt большой был на диске, там же и кэш,
opt большой только из-за кэша (не знаю какие права выставить
для каталога кэша squid? если знаешь подскажи!?!)
Сам в разддумьях :rolleyes:
polipo (для кэша) + вырезатель рекламы
или squid (и с кэшем и с вырезателем,
но первый вариант очень нам подходит о ресурсам!
polipo+bfilter - было бы ОЧЕНЬ ЗДОРОВО!!! Попробуй, получится!
У меня, к сожалению, еще не выросли ногти для компиляций (или
как их там называют) , но много народу скажет СПАСИБО
за эту процедуру!
Сам squid работает от пользователя nobody. Поэтому нужно сменить владельца у папки кеша и логов на nobody:nobody.
squidguard почти готов.. :) весь день убил на то чтобы подружить его с libdb, в результате нашел патчик у гентушников, завтра накачу, докомпилирую. Ну а там и за bfilter примусь! За сегодня более менее в этой "пакетной" кухне разобрался...
Про работу polipo ничего не знаю :) squid работает и ладно. ;)
adzapper - это perlовый скрипт для которого нужно ставить perl а он весит много и ЦП выжирает основательно, я его заменил на три строчки в bash :D
А какие строчки, если не секрет?
libz.so.1.o - это из пакета zlib ?
zlib_1.2.3-3_mipsel.ipk 17-Jul-2008 18:30 61K
Nebulosa
25-05-2009, 10:27
А какие строчки, если не секрет?
Нет конечно, давно все написано - http://wl500g.info/showpost.php?p=119535&postcount=43
Вообщем, мое кунфу оказалось слабее, squidguard отказывается кросскомпилироваться. И даже патчи из Gentoo не помогли, новые косяки вылезли, вообщем дело труба :)
Да, еще пробовал заменить grep на sed, но почему-то grep работает гораздо быстрее...
Почитал про bfilter вроде как он очень требователен к ресурсам ЦП, стоит ли вообще его компилировать...
Нет конечно, давно все написано - http://wl500g.info/showpost.php?p=119535&postcount=43
Вообщем, мое кунфу оказалось слабее, squidguard отказывается кросскомпилироваться. И даже патчи из Gentoo не помогли, новые косяки вылезли, вообщем дело труба :)
Да, еще пробовал заменить grep на sed, но почему-то grep работает гораздо быстрее...
Почитал про bfilter вроде как он очень требователен к ресурсам ЦП, стоит ли вообще его компилировать...
Конечно, хозяин - барин, компилировать или нет, сам решай ;)
Просто попробывать, имхо, стоит. Если получится, юзеры начнут
пользовать и обсуждать, говорить спасибо, и все наладится.
Зато сам ты будешь знать, что сделал ХОРОШЕЕ дело, на пользу
сообществу пользователей asus роутеров!
А нагрузка squid'а, имхо больше, чем polipo+bfilter, но цифр у меня нет, просто тоже где-то читал на просторах, сначала внимания не обратил (у меня ж Squid стоял :)), но когда поставил polipo, роут
вздохнул и залетал со свистом.
Пока удалось заставить работать polipo+privoxy
по схеме (см.выше)
вместо рекламы текст, что мол это вырезано privoxy (молодец,
что сказать) polipo кэширует...
Скорость пока не мерил, но субъективно... милисек и страница
полностью перед тобой! В opere даже не успеваю увидет
индикатор загрузки странички, раньше видел, хоть и тоже быстро,
измерения проведу по мере сил и если хватит извилин:)
Незнаю, прав ли, но privoxy работает с файлами правил, т.е. он их перечитывает и создает процессы в памяти на каждое соединение, регулируемое
параметром limit buffer , а BFILTER проводит эвристический анализ (как не знаю), т.е. как то без файлов списков и т.п. ПОПРАВТЕ меня...
Ну что тут на форуме, одни безлимитчики что-ли ?
theMIROn
28-05-2009, 18:47
Ну что тут на форуме, одни безлимитчики что-ли ?
гм, а где они не остались ;)
igor77777
29-05-2009, 10:06
Поставил polipo.
Хочу найти конфиг, чтобы подрухить с privoxy, и не могу.
Где он дежит свой конфиг?
oleg71
Опишите всю процедуру установки privoxy и polipo.
Это будет очень полезно всем.
Я думаю установка этой цепочки полезна не только тем, у кого лимитный инет, но и тем у кого безлимитный с сильным ограничением скорости.
Поставил polipo.
Хочу найти конфиг, чтобы подрухить с privoxy, и не могу.
Где он дежит свой конфиг?
oleg71
Опишите всю процедуру установки privoxy и polipo.
Это будет очень полезно всем.
Я думаю установка этой цепочки полезна не только тем, у кого лимитный инет, но и тем у кого безлимитный с сильным ограничением скорости.
f you want to use a configuration file, you should put it in one of
the locations `/etc/polipo/config' or `~/.polipo'; you can also use
the `-c' flag to put it in a non-standard location. See the file
`config.sample' for an example.
igor77777
29-05-2009, 17:56
f you want to use a configuration file, you should put it in one of
the locations `/etc/polipo/config' or `~/.polipo'; you can also use
the `-c' flag to put it in a non-standard location. See the file
`config.sample' for an example.
Дело в том, что у меня, почему-то не появился ни /etc/polipo/config, ни /opt/etc/polipo/config, и ни где в другом месте я не нашел конфигурационный файл polipo.
Так же не создался файла запуска Sxxpolipo в /opt/etc/init.d
Благо, под рукой есть ubuntu на виртуалке. Поставил polipo там, и забрал config от туда.
А вот файлом запуска, все сложнее. В нём используется конструкция start-stop-daemon, и как её переделать под наш роутер, я не знаю.
А вот файлом запуска, все сложнее. В нём используется конструкция start-stop-daemon, и как её переделать под наш роутер, я не знаю.
Можно взять стартовый скрипт, например от lighttpd или того-же rtorrent, и переделать под polipo.
Поставил polipo.
Хочу найти конфиг, чтобы подрухить с privoxy, и не могу.
Где он дежит свой конфиг?
oleg71
Опишите всю процедуру установки privoxy и polipo.
Это будет очень полезно всем.
Я думаю установка этой цепочки полезна не только тем, у кого лимитный инет, но и тем у кого безлимитный с сильным ограничением скорости.
Интересно вот что, его при установке polipo изначально НЕТ !
его нужно создать в /opt/etc/polipo/ файл conf
conf - это уже сам файл конфигурации
а privoxy держит конфиг : /opt/etc/privoxy/ файл config
конфиг polipo
proxyAddress = 192.168.1.1
proxyPort = 8123
allowedClients = 127.0.0.1, 192.168.1.0/24
parentProxy = 192.168.1.1:8118
chunkHighMark = 819200
objectHighMark = 128
diskCacheRoot = /tmp/mnt/disc1_1/Cache
diskCacheTruncateTime = 30d
diskCacheUnlinkTime = 90d
diskCacheTruncateSize = 2048 MB
dnsQueryIPv6 = no
dnsUseGethostbyname = true
dnsMaxTimeout = 3
disableServersList = false
diskCacheWriteoutOnClose = 32768
maxDiskEntries = 4096
disableIndexing = false
maxConnectionRequests = 512
maxDiskCacheEntrySize = -1
daemonise = true
конфиг privoxy
confdir /opt/etc/privoxy
templdir /opt/etc/privoxy/templates
logdir /opt/var/log/privoxy
actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
actionsfile default.action # Main actions file
actionsfile user.action # User customizations
filterfile default.filter
filterfile user.filter # User customizations
#debug 1 # Log the destination for each request Privoxy let through.
debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.
#debug 4096 # Startup banner and warnings
#debug 8192 # Non-fatal errors
hostname PRIVOXY
listen-address 192.168.1.1:8118
enable-remote-toggle 1
enable-remote-http-toggle 1
enable-edit-actions 1
enforce-blocks 0
buffer-limit 128
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 300
socket-timeout 300
работает, privoxy режет рекламу и т.п. polipo кэширует
клиенты настроены на прокси 192.168.1.1 (роутер polipo) порт 8123 (polipo)/
PS приведены просто рабочие конфиги без оптимизации и минимизации!!!
Запускается у меня из файла post-mount:
#!/bin/sh
/opt/etc/init.d/rc.unslung start
sleep 10
/opt/sbin/privoxy /opt/etc/privoxy/config
sleep 10
/opt/bin/polipo -c /opt/etc/polipo/conf
killall telnetd
прошу заметить, что у меня 3Г модем,
поэтому в файле post-boot куча всего для проверки связи,
а также есть post-pppd и т.п. http://wl500g.info/showthread.php?t=18155
и если ее нет убивается pppd и polipo и privoxy
и потом поднимаются. и связь поднимается с задержками
sleep , если polipo не словит DNS серверы провайдера то не работает,
короче еще мудрить и мудрить...;)
igor77777
31-05-2009, 07:20
Запускается у меня из файла post-mount:
#!/bin/sh
/opt/etc/init.d/rc.unslung start
sleep 10
/opt/sbin/privoxy /opt/etc/privoxy/config
sleep 10
/opt/bin/polipo -c /opt/etc/polipo/conf
killall telnetd
Спасибо.
Будуй писать свои Sxxprivox и Sxxpolipo.
прошу заметить, что у меня 3Г модем,
поэтому в файле post-boot куча всего для проверки связи,
а также есть post-pppd и т.п. http://wl500g.info/showthread.php?t=18155
и если ее нет убивается pppd и polipo и privoxy
и потом поднимаются. и связь поднимается с задержками
sleep , если polipo не словит DNS серверы провайдера то не работает,
короче еще мудрить и мудрить...;)
А в resolv.conf, не пробовал прописывать DNS-серверы провайдера?
И мне кажется в post-boot, рано ещё что-то проверять.
PS: Ещё сам мало, что знаю, а уже умничаю ;-)
Спасибо.
Будуй писать свои Sxxprivox и Sxxpolipo.
А в resolv.conf, не пробовал прописывать DNS-серверы провайдера?
И мне кажется в post-boot, рано ещё что-то проверять.
PS: Ещё сам мало, что знаю, а уже умничаю ;-)
Пробовал, но тут же как назло провайдер Билайн поменял один днс :eek:
Как напишешь Sxx сообщи !
Насчет умничаю, так тут все...:D тема в ссылке тебе вряд ли нужна, а там
все и написано.
igor77777
01-06-2009, 20:49
Пробовал, но тут же как назло провайдер Билайн поменял один днс :eek:
да, косяк. Кстати, я у себя кроме тех dns? что дает провайдер добавляю ещё пару днс так называемой службы opendns.com
Когда у провайдера, почему-то были глюки с днс, эти сервера мне помогали.
Как напишешь Sxx сообщи !
ОК.
В общем все готово. Постараюсь завтра утром оформить, чтобы понятно было.
Мне не понятно, как проверить, работает ли privoxy?
Что-то фантазии не хватает, не жать же ссылку "реклама на яндексе"
Насчет умничаю, так тут все...:D тема в ссылке тебе вряд ли нужна, а там все и написано.
По поводу твоей проблемы. Я не читал, твою тему, но подкину идею. может что-то из неё выростит. Мой провайдер предоставляет кроме всего прочего vpn по технологии openvpn, а IP в vpn раздает через dhcp. Так вот, чтобы заставить все работать, пришлось поступать следующим образом:
1. Создается и инициализирется интерфейс (у меня tap0)
2. Поднимается dhcp-клиент на этом интерфейсе (причем с моим скиптом обработки получения ip)
3. И только после этого поднимается openvpn на этом интерфейсе.
Попытка поднимать вначале openvpn, а потом dhcp-клиента, не увенчалась успехом. Вот такая фигня.
Ну ладно, в этой теме, про это не по теме.
Мне не понятно, как проверить, работает ли privoxy?
Что-то фантазии не хватает, не жать же ссылку "реклама на яндексе"
набери в браузере http://p.p
и увидишь enable или disable ;)
igor77777
02-06-2009, 07:47
набери в браузере http://p.p
и увидишь enable или disable ;)
Я неправильно выразился.
То, что через него идет трафик, я проверил.
Как бы проверить эффективность.
igor77777
02-06-2009, 09:17
Устанавливаем privoxy.
ipkg install privoxy
Не обязательно.
На сайте РУССКИЙ PRIVOXY (privoxy.org.ru) забираем дополнительный набор фильтров.
Распаковываем их в /opt/etv/privoxy
В readmi.txt описано, как правильно их подключить.
Правим конфиг.
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
Если собираетесь использовать дополнительный набор фильтров, то добавляем строки выделенные курсивом:
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
#!/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 со стартером (http://wl500g.info/showpost.php?p=180666&postcount=79)
Я поставил, у меня работает. За что выражаю vildi благодорность! Спасибо!
igor77777
02-06-2009, 09:28
Устанавливаем polipo.
ipkg install polipo
Создаем каталог /opt/etc/polipo и ложим туда следующие файлы:
config
# 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
# 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
# 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
#!/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 под ограниченным пользователем (http://wl500g.info/showpost.php?p=183541&postcount=84)
Я неправильно выразился.
То, что через него идет трафик, я проверил.
Как бы проверить эффективность.
Там же есть ссылка - пикаешь и
там написано строчкой (среди другого)
траля-ля 12% тря-ля-ля 32%
столько-то порезано...
у роута только под ночь буду, да ты и сам уже тогда найдешь ;)
И спасибо за инструкцию!
При запуске polipo -c /opt/etc/polipo/config
нормально работает, как только делаю через /opt/etc/init.d/S70polipo
не запускается и все тут. Проверил файл, вроде как выше...
Но стартует только privoxу!
Что ж не так!
Займемся перепроверкой.
igor77777
08-06-2009, 13:52
При запуске polipo -c /opt/etc/polipo/config
нормально работает, как только делаю через /opt/etc/init.d/S70polipo
не запускается и все тут. Проверил файл, вроде как выше...
Но стартует только privoxу!
Что ж не так!
Займемся перепроверкой.
1. попробуй руками запустить:
/opt/etc/init.d/S70polipo start
что напишет?
2. Что значит "вроде как выше"? Менялся ли тот S70polipo, что выложил я?
1. попробуй руками запустить:
/opt/etc/init.d/S70polipo start
что напишет?
2. Что значит "вроде как выше"? Менялся ли тот S70polipo, что выложил я?
1) при запуске /opt/etc/init.d/S70polipo start
пишет : Starting Polipo... и все, polipo в процессах нет.
2) да, ничего не менял.
Может я при копировании где-то ошибся, проверюсь - отпишу.
igor77777
08-06-2009, 20:31
1) при запуске /opt/etc/init.d/S70polipo start
пишет : Starting Polipo... и все, polipo в процессах нет.
2) да, ничего не менял.
Может я при копировании где-то ошибся, проверюсь - отпишу.
Ещё проверь наличие и правильность следующих путей и файлов:
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
Если у вас что-то по другому подправьте S70polipo
Или наобород, подгоните файловую структуру под S70polipo
SkySlider
08-06-2009, 21:37
а контроль трафика можно какой-нить пристроить асусу, чтоб к примеру не давал много скачивать, например не боллее 200мб за день, иначе информирует по email и т.п..
Очень пригодилось бы для юзеров с лимитными тарифами, у которых к примеру в тихую пошла загрузка обновлений windows update на ББ и т.п.
Или для пользователей которые используют связку wl500g + usb gprs\cdma модем, для которых очень не дешевый траффик.
Ещё проверь наличие и правильность следующих путей и файлов:
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
Если у вас что-то по другому подправьте S70polipo
Или наобород, подгоните файловую структуру под S70polipo
Проверил - все так.
Но уперся polipo и все тут. Privoxy запускается с S скрипта.
Пока оставил загрузку polipo в post-mount с параметром daemonise = true
вроде все работает.;)
Спасибо за помощь.
igor77777
11-06-2009, 14:40
Проверил - все так.
Но уперся polipo и все тут. Privoxy запускается с S скрипта.
Пока оставил загрузку polipo в post-mount с параметром daemonise = true
вроде все работает.;)
Спасибо за помощь.
Вчера, точнее сегодня столкнулся примерно с тем же самым.
Скрипт запуска отрабатывается, но polipo не работает.
Это произошло, после того как у нас отключалось электричество и роутер вырубился сам.
Пока вылечислось удалением вручную файла /opt/var/run/polipo.pid.
В общем цепочка действий такая:
1) S70polipo stop
2) удалить /opt/var/run/polipo.pid
3) S70polipo start
Попробуй сделать тоже самое.
PS: Теперь я хочу дописать проверку наличия pid-файла в функция start S70polipo и удалять его если он есть.
PSS: отпишись о результате
PSSS: Причем, мне не помагала, даже перегрузка роутера. Потому, ещё идея. Поменять путь к pid-файлу, на /var/run/polipo.pid тогда, приперегрузке роутера он будет удаляться автоматом. ...наверно
Вчера, точнее сегодня столкнулся примерно с тем же самым.
Скрипт запуска отрабатывается, но polipo не работает.
Это произошло, после того как у нас отключалось электричество и роутер вырубился сам.
Пока вылечислось удалением вручную файла /opt/var/run/polipo.pid.
В общем цепочка действий такая:
1) S70polipo stop
2) удалить /opt/var/run/polipo.pid
3) S70polipo start
Попробуй сделать тоже самое.
PS: Теперь я хочу дописать проверку наличия pid-файла в функция start S70polipo и удалять его если он есть.
PSS: отпишись о результате
PSSS: Причем, мне не помагала, даже перегрузка роутера. Потому, ещё идея. Поменять путь к pid-файлу, на /var/run/polipo.pid тогда, приперегрузке роутера он будет удаляться автоматом. ...наверно
Пока оставил как работает, пусть работает ;)
совет твой опробую чуть позже, спасибо!
igor77777 >
если не трудно не можешь скинуть мне файлы фильтров privoxy
user.action и т.п.
что-то имхо слабенько у меня настроены файлы действий,
есть пропуски флэша, да и кое-где реклама просачивается :rolleyes:
Nebulosa
23-06-2009, 06:00
А можно скриншотик посмотреть как оно выглядит?.. на Mail. ru том же.
И как с uptime? Какие load average?
Кто же все-таки решится!
Исходники:
http://sourceforge.net/project/downloading.php?groupname=bfilter&filename=bfilter-1.1.4.tar.gz&use_mirror=sunet
BFilter is a filtering web proxy. It was originally intended for removing banner ads only, but since then its capabilities have been greatly extended. Unlike most of the similar tools, it doesn't rely on blacklists (although it does support them). The problem with blacklists is that advertisers are always one step ahead. You see an ad slip through, you update your blacklist, and in case it didn't help, you add a new entry yourself. Once I got tired of that, I decided to write a proxy that would detect ads heuristically, much like modern anti-virus software manages to detect many viruses unknown to it.
BFilter is Free software released under the General Public License (version 2 or later).
Примерный перевод:
(от имени автора)
BFilter это фильтрующий веб прокси. Первоначально она была предназначена для удаления рекламных баннеров только, но с тех пор ее возможности были значительно расширены. В отличие от большинства аналогичных инструментов, не полагаться на черных (хотя она их поддерживает). Проблема заключается в том, что черные списки рекламодатели всегда на шаг впереди. Вы видите объявление просачиваться, вам обновить ваш черный список, и в случае, если оно не поможет, вы добавляете новую запись самостоятельно. После того, как я устал от этого, я решил написать прокси, что бы обнаружить объявления эвристически, как и современные антивирусные программы удается обнаружить множество неизвестных вирусов для нее.
BFilter является свободным программным обеспечением выпущен под General Public License (версия 2 или более поздней версии).
Nebulosa
23-06-2009, 15:59
Что тут решаться-то.. словами делу не поможешь.. :)
Вообщем, ACE (http://www.cs.wustl.edu/~schmidt/ACE.html) из-за которого не хочет собираться bfilter по зависимостям, не предназначен для кросс-компиляции, нужно попробовать собирать на самом роутере. Свой роутер насиловать не хочу что-то, уж больно АСЕ монструозен... :(
Nebulosa
25-06-2009, 07:53
на форуме примерно так:
Ясно. Ужас какой!
По мне пустая гифка вместо баннеров зело приятней. Остаюсь на squid, и жду когда допилят версию 1.5 squidguard, там вроде озаботились кросс-компиляцией..
Ясно. Ужас какой!
По мне пустая гифка вместо баннеров зело приятней. Остаюсь на squid, и жду когда допилят версию 1.5 squidguard, там вроде озаботились кросс-компиляцией..
Причем здесь ужас, непонятно, у меня там пустое место...
это пример, а замену ставь хоть тетю одетую :D
polipo+privoxy
оптимально легкое решение для железа 500-того
Но! у каждого свое имхо
:cool:
Прошу помощь, сделал всё как описано выше, privoxy запускается а polipo нет. если делаю так
/opt/bin/polipo -c /opt/etc/polipo/config
то получаю это:
Disabling disk cache: No such file or directory
Couldn't bind: Cannot assign requested address
Couldn't establish listening socket: Cannot assign requested address
а если запускать так:
/opt/etc/init.d/S70polipo start
то
Starting polipo...
и всё, в top его нет. Может кто поможет?
Disabling disk cache: No such file or directory
и всё, в top его нет.
Отключен кэш диска: Нет такого файла или каталога
Смотри в конфиге, что там у тебя с директорией кэша и правами на нее...
igor77777
20-10-2009, 06:15
Прошу помощь, сделал всё как описано выше, privoxy запускается а polipo нет. если делаю так
/opt/bin/polipo -c /opt/etc/polipo/config
то получаю это:
Disabling disk cache: No such file or directory
Couldn't bind: Cannot assign requested address
Couldn't establish listening socket: Cannot assign requested address
Ну я думаю, по сообщениям можно догадаться чего не хватает.
Проверьте /opt/etc/polipo/config чтобы параметры задаваемые конфигом, соответствовали вашим.
Первая строчка говорит, о том, что каталога где будет лежать кеш polipo просто нет.
По второй и третьей - даже не знаю. Но можно/нужно проверить правильность строк, в которых описывается с какого адреса(ов) и порта он будет принимать запросы и на какой адрес, порт передавать запросы.
Предполагаю, что все таки, не всё сделано как описано выше. Подходите более креативно, к исполнению инструкций, ведь к моменту установки privoxy и polipo, мы могли действовать по разным рекомендациям и инструкцям.
То, что описано мной в этой теме и у меня работает и сейчас. Так что, ищите различия.
а если запускать так:
/opt/etc/init.d/S70polipo start
то
Starting polipo...
и всё, в top его нет. Может кто поможет?
Если есть файл polipo.pid, если действовали по моей инструкции то он должен быть тут: /opt/var/run/polipo.pid
попробуйте его удалить ручками.
И после этого сделать
/opt/etc/init.d/S70polipo start
Спасибо за советы, тогда наверно глупый вопрос, мне вобщем то не нужно кэширование и вобще прокси в каком либо виде, нужна только банерорезалка, собственно вопрос, а нужен ли мне вобще работающий polipo?
Собственно банеры вырезает privoxy, запускается он наура только вот банеры не режет. Конфиг у него такой:
confdir /opt/etc/privoxy
templdir /opt/etc/privoxy/templates
logdir /opt/var/log
logfile privoxy.log
listen-address 192.168.10.10: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
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
В настройках браузера пробовал указывать покси 192.168.10.10 порт 8118 не работает, потому что нужен polipo или делаю что не так?
igor77777
21-10-2009, 05:39
Спасибо за советы, тогда наверно глупый вопрос, мне вобщем то не нужно кэширование и вобще прокси в каком либо виде, нужна только банерорезалка, собственно вопрос, а нужен ли мне вобще работающий polipo?
Да, тогда polipo Вам не нужен.
Собственно банеры вырезает privoxy, запускается он наура только вот банеры не режет. Конфиг у него такой:
confdir /opt/etc/privoxy
templdir /opt/etc/privoxy/templates
logdir /opt/var/log
logfile privoxy.log
listen-address 192.168.10.10: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
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
В настройках браузера пробовал указывать покси 192.168.10.10 порт 8118 не работает, потому что нужен polipo или делаю что не так?
А какой IP у вашего роутера?
У роутера ip 192.168.10.10, остальные машины в этой же подсети.
Тема затихла, что то. Хелп!
igor77777
26-10-2009, 07:39
Тема затихла, что то. Хелп!
Попробуйте просто не указывать этот параметр: listen-address правда, по умолчанию, privoxy слушает 127.0.0.1:8118 - это не совсем то, что хотите вы, но по пробовать можно.
Далее, можно попробовать указать так:
listen-address :8118
Судя по описанию, privoxy будет слушать порт 8118 на всех доступных интерфейсах.
И наконец, есть параметр
debug с помощью которого можно задавать уровень детализации лога.
Поиграйтесь с ним, посмотрите сообщения в логе. Возможно там всплывет подсказка, что не так.
igor77777
26-10-2009, 07:42
Тема затихла, что то. Хелп!
Кстати, а фаервол у Вас случайно не режет этот порт ?
C параметром debug 4096 в логе появляется это:
Jan 01 05:00:21.385 00000400 Info: Privoxy version 3.0.11
Jan 01 05:00:21.389 00000400 Info: Program name: /opt/sbin/privoxy
Jan 01 05:00:23.679 00000400 Info: Listening on port 8118 on IP address 127.0.0.1
хотя listen-address указан 192.168.10.10:8118
пробовал listen-address 127.0.0.1:8118 и просто :8118 результат один, privoxy в TOPе висит но при добавлении 192.168.10.10:8118 в адрес прокси сервера браузера странички не грузятся.
В веб интерфейсе файрвол выключен, в post-firewall следующее:
# set default policy.
iptables -P INPUT DROP.
# remove last default rule
iptables -A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT
iptables -I INPUT -p tcp --dport 51778:51779 -j ACCEPT
пробовал и так:
# set default policy.
#iptables -P INPUT DROP.
то же самое, куда теперь копать?
igor77777
27-10-2009, 09:11
то же самое, куда теперь копать?
Увидеть бы всю цепочку INPUT.
А не только, то что Вы добавляете в post-firewall
А на privoxy.org.ru не пробовали искать ответ по поводу listen-address?
igor77777
27-10-2009, 11:24
то же самое, куда теперь копать?
И ещё, приведите скрипт, которым Вы запускаете privoxy
или как Вы вообще его запускаете?
privoxy запускается из post-mount, вот он весь:
#!/bin/sh
# mount drives
/bin/mount -o sync,noatime,rw /dev/scsi/host0/bus0/target0/lun0/part1 /tmp/hardd
/bin/mount -o sync,noatime,rw /dev/scsi/host1/bus0/target0/lun0/part1 /opt
# enable swap
/sbin/swapon /opt/swap.file
# start services
/opt/etc/init.d/S80lighttpd start
/opt/etc/init.d/S99rtorrent start
export TERMINFO="/opt/share/terminfo"
export TERM="xterm"
/opt/sbin/privoxy /opt/etc/privoxy/config
Через init.d/S60privoxy не запускается.
Касабельно цепочки INPUT, весь листинг post-firewall выше я приводил, в web интерфейсе фаирвол выключен.
На privoxy.org.ru про listen-address ничего нового не нашёл (в преведущих постах Вы всё верно описали).
igor77777
28-10-2009, 06:43
privoxy запускается из post-mount, вот он весь:
Ну у меня настроен запуск всех служб через rs.unslung
Но по идее, сути это менять не должно.
Через init.d/S60privoxy не запускается.
А что пишет?
Тот S60privoxy, что писал я, отличается от просто запуска privoxy с конфиг-файлом, только тем, что задается PIDFILE для процесса privoxy
Касабельно цепочки INPUT, весь листинг post-firewall выше я приводил, в web интерфейсе фаирвол выключен.
с помощью программки
iptables-save > [имя файла] можно сохранить все цепочки в файл.
Например:
iptables-save > ./myrules сохранит ваши правила в текущий каталог в файл myrules
Ну и посмотреть, что там творится.
Просто правила в iptables добавляете не только Вы, но и сама прошивка добавляет правила
На privoxy.org.ru про listen-address ничего нового не нашёл (в преведущих постах Вы всё верно описали).
Откровенно говоря, у меня идеи уже закончились :-(
Устанавливаем polipo.
Спасибо за инструкцию! Я хоть и отношусь к пользователям безлимитного инета, но как-то привык к кэширующим прокси. Поставил по вашей инструкции, все вроде работает.
Просматривая config polipo, я обратил внимание на
diskCacheTruncateTime = 30d
diskCacheUnlinkTime = 90d
diskCacheTruncateSize = 2048 MB
И потом в инструкции к polipo (http://www.pps.jussieu.fr/~jch/software/polipo/polipo.html#Purging) обнаружил, что он автоматом кэш не очищает. Для очистки нужно отдельно запускать команду: polipo -x. Я предлагаю дополнить скрипт /opt/etc/init.d/S70polipo:
#!/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}`
/opt/bin/polipo -x
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac
exit 0
Тогда при остановке или рестарте кеш будет очищаться от устаревших данных. В принципе кому нужно, могут добавить в крон команду:
/opt/etc/init.d/S70polipo restart
igor77777
28-10-2009, 09:01
Спасибо за инструкцию! Я хоть и отношусь к пользователям безлимитного инета, но как-то привык к кэширующим прокси. Поставил по вашей инструкции, все вроде работает.
Просматривая config polipo, я обратил внимание на
diskCacheTruncateTime = 30d
diskCacheUnlinkTime = 90d
diskCacheTruncateSize = 2048 MB
И потом в инструкции к polipo (http://www.pps.jussieu.fr/~jch/software/polipo/polipo.html#Purging) обнаружил, что он автоматом кэш не очищает. Для очистки нужно отдельно запускать команду: polipo -x. Я предлагаю дополнить скрипт /opt/etc/init.d/S70polipo:
#!/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}`
/opt/bin/polipo -x
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac
exit 0
Тогда при остановке или рестарте кеш будет очищаться от устаревших данных. В принципе кому нужно, могут добавить в крон команду:
/opt/etc/init.d/S70polipo restart
Спасибо.
Я тоже обратил на это внимание, но искать причину не было времени.
В принципе, Ваше предложение правильное и нужное.
Я так понимаю, у себя Вы уже исправили?
Нужно проверить как будет работать очистка кэша при завершении после долгого аптайма.
Что меня смущает:
При завершении процессов, перед перегрузкой, почти все будут ломиться на диск, у меня например rTorrent будет скидывать данные, и т.п. и т.д.
Если ещё и polipo начнет чистить за собой кэш, успеют-ли они сделать все, что и им нужно.
В общем я склонен к такому варианту.
Нужно использовать и запуск по cron'у (например, ночью. Тогда не будет накапливаться кэш) и при завершении.
Или даже можно, очищать кэш при запуске.
Кстати, мне кажется, что нужно вместе с -x передавать конфиг, а то откуда polipo узнает где лежит кэш, который нужно почистить.
В принципе, да, пожалуй, лучше очистку переместить в старт.
Конечно же проверял. У меня сейчас такой скрипт и стоит. Запускал его с параметром restart, все отрабатывало, polipo писал, что очищено 0Kb и т.д., по поводу конфига не ругался. Вечером попробую в конфиге прописать длительность хранения кэша в 1 день и проверю как отработает скрипт.
igor77777
28-10-2009, 14:24
Сейчас запустил очистку кэша ручками.
Процесс очистка занял минут 20
/opt/bin/polipo -x -c /opt/etc/polipo/config
Couldn't parse x-polipo-access: Thu, 01 Jan 1970 00:02:05 GMT
Couldn't parse x-polipo-access: Thu, 01 Jan 1970 00:02:05 GMT
Couldn't parse x-polipo-date: Thu, 01 Jan 1970 00:02:05 GMT
Couldn't parse x-polipo-access: Thu, 01 Jan 1970 00:02:05 GMT
Couldn't parse x-polipo-date: Thu, 01 Jan 1970 00:02:03 GMT
Couldn't parse x-polipo-access: Thu, 01 Jan 1970 00:02:03 GMT
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Couldn't parse Pragma.
Disk cache purged.
142629 files, 103781 considered, 60943 removed, 30388 truncated (406302kB -> -1560712kB).
3412 directories, 1311 removed.
Меня смущают сообщения типа "Couldn't parse ..."
Чтобы это значило?
PS: Нужно запускать с указанием конфига!!!
Ну у меня настроен запуск всех служб через rs.unslung
Но по идее, сути это менять не должно.
А что пишет?
Тот S60privoxy, что писал я, отличается от просто запуска privoxy с конфиг-файлом, только тем, что задается PIDFILE для процесса privoxy
с помощью программки
iptables-save > [имя файла] можно сохранить все цепочки в файл.
Например:
iptables-save > ./myrules сохранит ваши правила в текущий каталог в файл myrules
Ну и посмотреть, что там творится.
Просто правила в iptables добавляете не только Вы, но и сама прошивка добавляет правила
Откровенно говоря, у меня идеи уже закончились :-(
Вот все iptables сохранённые в файл:
# Generated by iptables-save v1.2.7a on Wed Oct 28 20:57:58 2009
*nat
:PREROUTING ACCEPT [641:32135]
:POSTROUTING ACCEPT [355:21455]
:OUTPUT ACCEPT [361:22823]
:VSERVER - [0:0]
-A PREROUTING -d 10.255.148.194 -j VSERVER
-A PREROUTING -d 10.255.148.194 -p udp -m udp --sport 6112 -j NETMAP --to 192.168.10.0/24
-A POSTROUTING -s 192.168.10.0/255.255.255.0 -p udp -m udp --dport 6112 -j NETMAP --to 10.255.148.194/32
-A POSTROUTING -s ! 10.255.148.194 -o vlan1 -j MASQUERADE
-A POSTROUTING -s 192.168.10.0/255.255.255.0 -d 192.168.10.0/255.255.255.0 -o br0 -j MASQUERADE
-A VSERVER -p tcp -m tcp --dport 51777 -j DNAT --to-destination 192.168.10.119:51777
-A VSERVER -p udp -m udp --dport 51777 -j DNAT --to-destination 192.168.10.119:51777
-A VSERVER -p tcp -m tcp --dport 4012 -j DNAT --to-destination 192.168.10.119:4012
-A VSERVER -p udp -m udp --dport 4012 -j DNAT --to-destination 192.168.10.119:4012
COMMIT
# Completed on Wed Oct 28 20:57:58 2009
# Generated by iptables-save v1.2.7a on Wed Oct 28 20:57:58 2009
*mangle
:PREROUTING ACCEPT [3534:331347]
:INPUT ACCEPT [3388:283462]
:FORWARD ACCEPT [88:44621]
:OUTPUT ACCEPT [3220:494823]
:POSTROUTING ACCEPT [3356:546060]
COMMIT
# Completed on Wed Oct 28 20:57:58 2009
# Generated by iptables-save v1.2.7a on Wed Oct 28 20:57:58 2009
*filter
:INPUT DROP [537:27001]
:FORWARD ACCEPT [6:312]
:OUTPUT ACCEPT [3219:494734]
:MACS - [0:0]
:SECURITY - [0:0]
:logaccept - [0:0]
:logdrop - [0:0]
-A INPUT -p tcp -m tcp --dport 51778:51779 -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -m state --state NEW -j ACCEPT
-A INPUT -i br0 -m state --state NEW -j ACCEPT
-A INPUT -i vlan1 -m state --state NEW -j SECURITY
-A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j ACCEPT
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ! br0 -o vlan1 -j DROP
-A FORWARD -i ! br0 -m state --state NEW -j SECURITY
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
-A FORWARD -o br0 -j DROP
-A SECURITY -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j RETURN
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j RETURN
-A SECURITY -p udp -m limit --limit 5/sec -j RETURN
-A SECURITY -p icmp -m limit --limit 5/sec -j RETURN
-A SECURITY -j DROP
-A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logaccept -j ACCEPT
-A logdrop -m state --state NEW -j LOG --log-prefix "DROP " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logdrop -j DROP
COMMIT
Ещё мне непонятен такой момент почему privoxy из init.d не запускается, там есть строчки:
USER=p2p
GROUP=p2p
Пользователь p2p в системе создан под ним запускается rtorrent
Хотя так;
/opt/etc/init.d/S60privoxy start
запускается под пользователем admin
Хотя больше всего меня смущает лог privoxy со строчкой Listening on port 8118 on IP address 127.0.0.1
А может это просто глюк такой и у всех в логе так и дело вовсе не в listen-address?
igor77777
04-11-2009, 21:56
А может это просто глюк такой и у всех в логе так и дело вовсе не в listen-address?
Не знаю.
По поводу iptables. На мой взгляд должно работать, но я в линукс если не чайник, то максимум новичёк-любитель.
По поводу пользователя p2p.
По уму прокси-сервер, с точки зрения безопасности, нужно запускать под ограниченным пользователем. Чтобы злоумышленник, не смог иметь полный доступ к роутеру.
Но когда я писал стартовые скрипты для privoxy и polipo у меня просто не хватило знаний для реализации запуска privoxy и polipo под ограниченным пользователем. Собственно и сейчас, я не знаю как это сделать.
Мне подсказывали, что это можно сделать по аналогии с запуском rTorrent, т.е. пускать через screen.
Если кто-то сможет написать скрипты запуска под ограниченным пользователем, то это будет просто супер.
Как насчет прикрутить к прошивке gzip прокси ?
Собственно сабж здесь
http://ziproxy.sourceforge.net/
А для чего нужно и немного по теме здесь
http://4pda.ru/forum/index.php?showtopic=97184&st=0
Если вкратце, имея дома безлимит с белым IP адресом, и пользуясь где-нибудь на даче, например, дорогим и медленным gprs/edge или диалапом можно экономить на скорости/трафике в 2-4 раза (до 8 при пережатии картинок).
Сразу отвечу в чем преимущества собственного gzip прокси в сравнении с Opera, компрессорами, акселераторами: для работы не нужны никакие специальные приблуды, любой вменяемый браузер работает с gzip сжатием (в том числе в коммуникаторе), скорость отклика и стабильность работы на порядок выше публичных (даже платных) сервисов.
К сожалению в Linux я почти полный нуль.
Надеюсь спецов заинтересует тема, кто заинтересован - поддержите пожалуйста вопрос...
Как насчет прикрутить к прошивке gzip прокси ?
А смысл? С помощью дорогого/медленного интернета вы, все равно, загружаете в роутер всю страницу. Сжимаете ее и передаете, скажем, в наладонник. Где выгода??
sauron093
18-12-2009, 08:14
А смысл? С помощью дорогого/медленного интернета вы, все равно, загружаете в роутер всю страницу. Сжимаете ее и передаете, скажем, в наладонник. Где выгода??
выгода очевидна:
медленный и дорогой---------дешовый быстрый
кпк <----- инет -----> router <---- инет -----> сайт
_______1мб трафика___________5мб трафика
без прокси так:
кпк <----- инет -----> сайт
______5мб трафика
выгода очевидна:
медленный и дорогой---------дешовый быстрый
кпк <----- инет -----> router <---- инет -----> сайт
_______1мб трафика___________5мб трафика
без прокси так:
кпк <----- инет -----> сайт
______5мб трафика
Даже если вы получите в кпк 1МБ. Роутер скачает 5МБ. Значит заплатите вы за 5МБ, а не за 1МБ. Где выгода?
Я хочу Вам объяснить, что сжимающий прокси имеет смысл только на стороне провайдера, а не на стороне клиента.
Даже если вы получите в кпк 1МБ. Роутер скачает 5МБ. Значит заплатите вы за 5МБ, а не за 1МБ. Где выгода?
Я хочу Вам объяснить, что сжимающий прокси имеет смысл только на стороне провайдера, а не на стороне клиента.
Чет у вас с арифметикой плохо...
Судите сами: у меня есть роутер стоящий дома и подключеный по быстрому безлимитному тарифу к Провайдеру1 и есть наладонник с которым я уехал в другой город и через сотик по GPRS цепляюсь к дорогому медленному Провайдеру2. При этом если я на наладоннике укажу адрес прокси на роутере с установленным сжимающим прокси и скачаю страницу, то роутер через Провайдера1 скачает 5 мегабайт за которые я платить не буду т.к. тариф безлимитный, сожмет их, а на наладонник через Провайдера2 мне придет уже всего 1 мегабайт за который я и заплачу. Разницу чувствуете?
Чет у вас с арифметикой плохо...
Судите сами: у меня есть роутер стоящий дома и подключеный по быстрому безлимитному тарифу к Провайдеру1 и есть наладонник с которым я уехал в другой город и через сотик по GPRS цепляюсь к дорогому медленному Провайдеру2. При этом если я на наладоннике укажу адрес прокси на роутере с установленным сжимающим прокси и скачаю страницу, то роутер через Провайдера1 скачает 5 мегабайт за которые я платить не буду т.к. тариф безлимитный, сожмет их, а на наладонник через Провайдера2 мне придет уже всего 1 мегабайт за который я и заплачу. Разницу чувствуете?
Нуу если так... Тогда, конечно... но сомнительно...
Если вкратце, имея дома безлимит с белым IP адресом, и пользуясь где-нибудь на даче, например, дорогим и медленным gprs/edge или диалапом можно экономить на скорости/трафике в 2-4 раза (до 8 при пережатии картинок). И много вы видели серверов которые не используют стандартные возможности HTTP/1.1 и отдают не сжатый трафик?
Да, на сжатии картинок вообще ничего выйграть нельзя, они практически не жмутся ;)
И много вы видели серверов которые не используют стандартные возможности HTTP/1.1 и отдают не сжатый трафик?
Да, на сжатии картинок вообще ничего выйграть нельзя, они практически не жмутся ;)
Пережатие картинок, даже jpeg, элементарно делается с потерей качества (можно посмотреть на примере Opera Turbo, режим включается прямо в новой Opere, правда сервис тормозит). Ни для кого не секрет что горе-сайтоводы могут картинку размером с ядерный полигон баннером повесить. Никакой инормативности при низком качестве картинок на сайте не теряется, разве что на пореве :.
Как это ни прискорбно, но большинство серверов в пору развития мощностей не используют ни HTTP 1.1, ни gzip в нем (об этом можно судить по реальной работе с компрессорами трафика, сжатый трафик как известно уже практически несжимаем, в реале 2-4 раза в среднем).
Пережатие картинок, даже jpeg, элементарно делается с потерей качества Вы хотите, чтобы роутер картинки на лету конвертировал? :eek: А запорожец, под карьерный самосвал, приспособить не пробовали? :)
Как это ни прискорбно, но большинство серверов в пору развития мощностей не используют ни HTTP 1.1, ни gzip в нем. Привидите пример такого сайта, это же просто, т.к. их по вашему большинство, а я вот никак не найду :D
об этом можно судить по реальной работе с компрессорами трафика, сжатый трафик как известно уже практически несжимаем, в реале 2-4 раза в среднем Хотите я вам напишу программу, которая будет говорить, что она сжимает ваш трафик в 100 раз? :D
Зачем мне говорить?
Есть проксифаер с реальным графиком скорости, есть канал 64 (шейпер режет четко), есть слонакс (Ziproxy так не испытать), итог - скорость при серфинге пиками до 200. Есть изменение в комфортности серфинга при работе с Ziproxy. Что еще нужно сказать?
Для переконвертаци картинок Core i7 и гигабайты памяти, уверяю, не нужны. Впрочем это в Ziproxy опционно.
О сайтах спорить мне как-то лениво, вы их не искали и реальной статистики не имеете. Про HTTP 1.1 я возможно и погорячился, но gzip точно не включают.
И, честно говоря, не пойму отчего вас заклинило на критике замечательной, по сути, идеи. Да и как можно критиковать, не изучив сначала вопрос. Как ни странно, на любом форуме отвечают чаще критики, а заинтересовавшиеся, почесав репу, молчат.
Кстати вопрос на 5 копеек, готовый код впихнуть. Понимаю, если б я предложил изобретать эту колесницу, можно было б и спорить до посинения.
Вот почитал предложенную Вами тему http://4pda.ru/forum/index.php?showtopic=97184&st=0
IMHO, есть в этом что-то...
Душить ОПСОСов... Сделать , а ля OperaTurbo, на роутере...
upd:Только прочитав тему, вырисовывается вполне реальная картина. Не читавший недопонимает тонкостей...
Есть проксифаер с реальным графиком скорости, есть канал 64 (шейпер режет четко), есть слонакс (Ziproxy так не испытать), итог - скорость при серфинге пиками до 200. А можно схемку прохождения трафика увидеть с отметкой точки измерения?
Есть изменение в комфортности серфинга при работе с Ziproxy. Что еще нужно сказать? Ну я надеюсь вы слышали об эффекте плацебо? ;)
Для переконвертаци картинок Core i7 и гигабайты памяти, уверяю, не нужны. Впрочем это в Ziproxy опционно. Я вас уверяю хиленького проца роутера с немение хилым количеством памяти уж точно не хватит, а без этого экономия мифическая ;)
О сайтах спорить мне как-то лениво, вы их не искали и реальной статистики не имеете. Про HTTP 1.1 я возможно и погорячился, но gzip точно не включают. Т.е. большинство превращается в "немогу найти"?! Я же не просил мульен ссылок ;)
И, честно говоря, не пойму отчего вас заклинило на критике замечательной, по сути, идеи. Да и как можно критиковать, не изучив сначала вопрос. Это вы в вопросе плаваете, а идея просто никакая, смешно наблюдать как ламеры носятся с этими разнообразными "ускорителями интернета". А так то мне все равно.
Кстати вопрос на 5 копеек, готовый код впихнуть. Ну так впихните, я что запрещаю?
Уважаемый, прежде чем упираться, попользуйтесь этими самыми компрессорами и почувствуйте разницу.
Сайты я, извините, не через сниффер смотрю, и искать без сжатия для убеждения лично вас нет никакого желания.
Мне достаточно собственного опыта в экономии трафика.
Убеждать меня что это gzip пережимается компрессорами еще сильней или что меня, ламера, цифрами дурят, не стоит.
Картинки там далеко не фотошоп перепаковывает, ресурсоемкость в данном случае можно определить только экспериментально, но она весьма мала, сравнима с ресурсами роутера.
Схема со слонаксом такая:
|сайт|--|серверная часть слонакса|--|среда доставки|--|клиентская часть слонакса|--
|проксифаер (точка измерения)|--|браузер|
Ну а слова наподобие "ламер" применяют обычно когда уже сказать нечего, заметьте.
Если вы кроме 3G и FTTH в своем колхозе ничем не пользуетесь, то непонятно зачем пытаетесь в этой теме выставить меня дураком.
Я вам кажется не предложил вступить в какой-нибудь intway и поиметь с вас денег, а выдал реально проверенную идею.
Троллинг-полемику с вами считаю законченной, лично вас я впихивать ничего не просил.
Уважаемый, прежде чем упираться, попользуйтесь этими самыми компрессорами и почувствуйте разницу. Нет, это "удовольствие" я вам оставлю ;)
Сайты я, извините, не через сниффер смотрю Оно и видно, зато утверждать, причем голословно, что большинство не использует gzip, это всегда пожалуйста ;)
Картинки там далеко не фотошоп перепаковывает, ресурсоемкость в данном случае можно определить только экспериментально, но она весьма мала, сравнима с ресурсами роутера. :D Конечно, конечно. Там и калькулятора хватит :D
Схема со слонаксом такая:
|сайт|--|серверная часть слонакса|--|среда доставки|--|клиентская часть слонакса|--
|проксифаер (точка измерения)|--|браузер| :D Я так и думал, измеряется уже декомпрессированный трафик, приятно наверное наблюдать за зашкаливающими скоростями, только в чем тут выйгрыш по сравнению со стандартным gzip HTTP/1.1? Ах да, ведь "большинство его не включают" - аксиома, не требующая доказательств? :D
Ну а слова наподобие "ламер" применяют обычно когда уже сказать нечего, заметьте. А вы, что это на себя сразу примерили? Напрасно, хотя вам конечно виднее :p
непонятно зачем пытаетесь в этой теме выставить меня дураком. Делать мне больше нечего, как выставлять вас дураком. Я просто пытаюсь донести до вас простейшую мысль, что ваша затея не имеет большого смысла и является в основном самообманом.
а выдал реально проверенную идею. :D Кем проверенную? И с чем было проведено сравнение? Вы прежде чем с пеной у рта, голословно доказывать, что идея крута до безобразия, проведите экперимент, замерьте количество трафика скачанного при серфинге по обычным вашим сайтам, с zipproxy (только пережатие картинок отключить не забудьте :D ) и без него. Убедитесь, что выигрыш равен нулю и успокойтесь!
Троллинг-полемику с вами считаю законченной, лично вас я впихивать ничего не просил. Вы уже впихнули, там же делов на 5 копеек? :D
Отбросив вопрос с картинками, которые при ограниченном трафике итак отключают, применим простую математику: если один из четырех сайтов вывалит несжатые страницы, экономия при степени сжатия 1к5 будет 50%
Вот и профит.
Привидите пример такого сайта, это же просто, т.к. их по вашему большинство, а я вот никак не найду :D
mts.ru
mvideo.ru
ixbt.com
rbc.ru
rbcdaily.ru
asus.com
...
поверьте, их не мало. Хотя, заметно меньше, чем пару лет назад
Просто решил написать как установил я, пользуясь инструкциями igor77777 и прочей информацией.
Итак, устанавливаем privoxy
ipkg install privoxy
Не обязательно.
На сайте РУССКИЙ PRIVOXY (http://privoxy.org.ru/) забираем дополнительный набор фильтров.
Распаковываем их в /opt/etv/privoxy.
Далее правим файл конфига /opt/etc/privoxy/config
confdir /opt/etc/privoxy
templdir /opt/etc/privoxy/templates
logdir /opt/var/log/privoxy
debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.
hostname PRIVOXY
listen-address 192.168.1.1:8118 # router ip
enable-remote-toggle 1
enable-remote-http-toggle 1
enable-edit-actions 1
enforce-blocks 0
buffer-limit 128
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 300
socket-timeout 300
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
Затем я добавил нового пользователя proxy. Сделал это через утилиту adduser(у гого нет можно доставить ipkg install adduser).
adduser -s /sbin/nologin -D -H proxy
Проверил файл /etc/passwd и подправил там созданного юзера до вот такого состояния
proxy:x:1002:1002:Proxy User:/:/sbin/nologin
Следующим на очереди файлик /etc/group. Наша группа должна выглядеть примерно следующим образом
proxy:x:1002:Так, чтобы изменения сохранились, выполняем следующее
flashfs save && flashfs commit && flashfs enableНа данном этапе перезагрузка необязательна.
Далее выношу на ваш суд "свой" стартер, собранный в основном из стартера для rtorrent'a.
Итак, делаем
nano /opt/etc/init.d/S60privoxyИ вставляем следующее...
#!/bin/sh
SHELL="/bin/sh"
prefix="/opt"
NAME="privoxy"
DAEMON=${prefix}/sbin/${NAME}
DAEMON_OPTS=" ${prefix}/etc/privoxy/config"
USER=proxy
# Do not proceed unless some apps are available.
test -x /opt/bin/su -o -x /bin/su || ( echo "su not found." ; exit 2 )
start() {
if [ -n "`pidof $NAME`" ]; then
echo "$NAME already running! "
else
echo "Starting $NAME... "
su -c "$DAEMON $DAEMON_OPTS" -s $SHELL $USER 2>/dev/null
fi
}
stop() {
if [ -n "`pidof $NAME`" ]; then
echo "Stopping $NAME..."
killall $NAME 2> /dev/null
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac
exit 0 Данный стартер не использует pid файл и основывается на возможности выполнения комманды из-под другого юзера с помощью "su". Попрошу также учесть, что пути в стартере должны совпадать с настройками в конфиге privoxy.
Теперь выставим права и "отцовство" и дело в шляпе :) Делаем
chown proxy:proxy -R /opt/etc/privoxy
chown proxy:proxy -R /opt/var/log/privoxy Ну вот теперь всё готово к запуску, стартуем
/opt/etc/init.d/S60privoxy startЕсли запуск удался, то проверяем работу privoxy, зайдя на http://p.p/,выставив в браузере в качестве http прокси listen-address из конфига, в моём случае это 192.168.1.1:8118. При правильной работе privoxy, должна открыться интерфейсная страничка, что означает установка завершена:) Далее можно заняться настройкой конфига, в том числе и для совместной работы polipo+privoxy.
P.S. Кому интересно, могу также написать про то, как я поставил polipo с аналогичным стартером
AlexSmall
05-02-2010, 04:11
Вот слегка подправленный файл старта
в нем исправление бага когда полипо не пускается если пид файл уже есть.
#!/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... "
PPID=`cat $PIDFILE 2>/dev/null`
[ ! `ps |grep -c -e "$PPID .*polipo"` ] && rm $PIDFILE
/opt/bin/polipo -c $CONFIG_FILE pidFile=$PIDFILE daemonise=true logFile=$LOGFILE
}
stop() {
echo "Shutting down $NAME... "
[ -f ${PIDFILE} ] && kill `cat ${PIDFILE}`
/opt/bin/polipo -x -c $CONFIG
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac
exit 0
Может кому пригодится...
igor77777
05-02-2010, 13:46
Просто решил написать как установил я, пользуясь инструкциями igor77777 и прочей информацией.
Спасибо, что развиваете эту тему.
Но помогите теперь мне.
Пытаюсь повторить вашу версию запуска, и ни чего не получается. :-(
Т.е. вроде-бы что-то запускается
./S60privoxy start
Starting privoxy...
Feb 05 15:22:50.318 00000400 Info: Privoxy version 3.0.11
Feb 05 15:22:50.322 00000400 Info: Program name: /opt/sbin/privoxy
Но потом в процессах privoxy нет.
Случайно не надо для su, также как для sudo прописывать, что может запускать каждый пользователь?
Может, ещё есть идеи, что может мешать?
Спасибо, что развиваете эту тему.
Но помогите теперь мне.
Пытаюсь повторить вашу версию запуска, и ни чего не получается. :-(
Т.е. вроде-бы что-то запускается
./S60privoxy start
Starting privoxy...
Feb 05 15:22:50.318 00000400 Info: Privoxy version 3.0.11
Feb 05 15:22:50.322 00000400 Info: Program name: /opt/sbin/privoxy
Но потом в процессах privoxy нет.
Случайно не надо для su, также как для sudo прописывать, что может запускать каждый пользователь?
Может, ещё есть идеи, что может мешать?
Прошу прощения, что долго не отвечал. В связи с вашей проблемой... Если честно, на счёт su я как-то без понятия надо ли ему что прописывать, но судя по тому, что privoxy что-то выдал, значит он запустился. А так как его нет в процессах, то вероятно ему чего-то не хватило и он отвалился.Прошу заметить, что мой конфиг слегка отличается от вашего, а именно путь для логов!Проверте конфиг. Проверьте пути.Проверьте права на логи. Если всё сделали правильно, то собственно посмотрите что privoxy записал в логи.
Пишите сюда, если что найдёте.И да прибудет с вами сила!
igor77777
11-02-2010, 20:45
. . .
Проверте конфиг. Проверьте пути.Проверьте права на логи. Если всё сделали правильно, то собственно посмотрите что privoxy записал в логи.
Пишите сюда, если что найдёте.И да прибудет с вами сила!
Спасибо, что убедили меня проверить ещё раз права и расположение логов.
Я действительно не досмотрел права на лог и то, что Вы держите его подкаталоге privoxy. После того, как в этом разобрался и привел всё в порядок, privoxy заработал.
Хотя ситуация получилась ещё веселей.
У меня права на /opt/var/log равны 777, т.е. писать туда может кто попало. Теперь поменял на 666, но всёравно писать может любой.
А поскольку свой конфиг я не менял и мой лог лежит в /opt/var/log/privoxy.log мне было и не понятно, почему он не хочет работать.
Как выяснилось, проблема была в самом логе privoxy.log, владельцем которого оставался admin.
После смены владельца на proxy всё стало на свои места. И privoxy заработал.
Кстати, после удаления privoxy.log, новый создается уже с правильным владельцем.
PS:
На радостях, что всё так просто переписал, стартовый скрипт для polipo.
Новый вариант этого скрипта будет ниже.
igor77777
11-02-2010, 21:53
Стартовый скрипт для запуска polipo под ограниченным пользователем, т.е. на под admin (Напоминаю, admin у нас равен root)
Здесь я опишу только сам скрипт, и что нужно сделать чтобы он заработал. Что касается самой установки и настройки, то это можно прочитать в этом сообщении этой же темы: Установка privoxy+polipo. Часть 2. Polipo (http://wl500g.info/showpost.php?p=147672&postcount=43)
Итак, скрипт запуска /opt/etc/init.d/S70polipo теперь выглядит так:
#!/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)
adduser -s /sbin/nologin -D -H proxy
Проверяем файл /etc/passwd. Особое внимание обращаем на НЕ выделенное содержимое строки нашео пользователя. В общем подправим там созданного юзера до вот такого состояния
proxy:x:<ИД_пользователя>:<ИД_группы_пользователя>:Proxy User:/:/sbin/nologin
Проверяем файл /etc/group. Наша группа должна выглядеть примерно следующим образом
proxy:x:<ИД_группы>:
У меня <ИД_пользователя>, <ИД_группы_пользователя>, <ИД_группы> равны 1005. У Вас может быть другое число.
Если У Вас есть файл /etc/shells, то проверяем есть ли в нём строка
/sbin/nologin Если нет, то добавляем.
Так, чтобы изменения сохранились, выполняем следующее
flashfs save && flashfs commit && flashfs enable
Теперь даем права на каталог с настройками polipo, а точнее меняем владельца и группу:
chown proxy:proxy -R /opt/etc/polipo
И на каталог с логом, ну или на сам лог (лично я давал права на сам лог):
chown proxy:proxy -R /opt/var/log/polipo.log
Небольшое отступление. У меня права на каталог /opt/var/log/ равны 777, поэтому я и поменял владельца и группу только у самого файла лога.
И наконец сам кэш.
chown proxy:proxy -R /home/cache
Свой путь к кэшу, можно увидеть в конфиге polipo. Это параметр: diskCacheRoot. У меня эта строка выглядит так:
diskCacheRoot = "/home/cache/"
Если, кэш большой, то смена владельца может занять длительное время.
Для того, что кэш периодически очищался от старого содержимого, делаем задание для cron'а. Если у Вас cron ещё не установлен, то ищем тему на форуме, где описана установка cron'а (их достаточно на форуме) и ставим его.
Ну а для того чтобы каждый понедельник в 3 часа 1 минуту запускалась очистка кэша, нужно положить создать такой файл: /opt/etc/cron.d/polipo_cache
# кэш раз в недель в понедельник в 3:01
1 3 * * 1 admin /opt/etc/init.d/S70polipo cache
По идее, это всё.
Ссылки:
Мою инструкцию по настройке privoxy можно посмотреть тут: Установка privoxy+polipo. Часть 1. Privoxy (http://wl500g.info/showpost.php?p=147670&postcount=42)
Инструкцию по запуску privoxy под ограниченным пользователем от vildi можно посмотреть тут: Установка и запуск privoxy не от root'a со стартером (http://wl500g.info/showpost.php?p=180666&postcount=79)
Мою инструкцию по настройке polipo можно посмотреть тут: Установка privoxy+polipo. Часть 2. Polipo (http://wl500g.info/showpost.php?p=147672&postcount=43)
Спасибо, что убедили меня проверить ещё раз права и расположение логов.
Рад, что помогло :)
А по поводу стартера polipo есть пара замечаний - рекомендаций... У меня стоит мускул и его стартер тоже начинается с S70 ... поэтому я делал стартер для polipo S61 ...
Чтобы polipo подчищал за собой кэш, его запускают с командой - x. Следовательно в стартер можно добавить команду типа cache, при выполнении которой будет происходить очистка
cache() {
echo "$NAME caching...! "
su -c "$POLIPO $DAEMON_OPTS -x" -s $SHELL $USER 2>/dev/null
}...
ну и case подправить
case "$1" in
start)
start
;;
stop)
stop
;;
cache)
cache
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 (start|stop|restart|cache)"
exit 1
;;
esac
После таких манипуляций в крон можно добавить простенький и красивый скрипт
#!/bin/sh
/opt/etc/init.d/S61polipo cache
Ну и закинуть его на исполнение раз в неделю, например...
А так хороший тотуриал получился :)
igor77777
14-02-2010, 08:21
Рад, что помогло :)
Чтобы polipo подчищал за собой кэш, его запускают с командой - x. Следовательно в стартер можно добавить команду типа cache, при выполнении которой будет происходить очистка
cache() {
echo "$NAME caching...! "
su -c "$POLIPO $DAEMON_OPTS -x" -s $SHELL $USER 2>/dev/null
}...
А проверьте, есть ли у Вас в $DAEMON_OPTS ключ daemonise=true?
Просто когда, я запускаю так, как предлагаете Вы - ни чего не происходит.
А вот если так:
cache() {
echo "$NAME caching...! "
su -c "$POLIPO -c $CONFIG_FILE -x logFile=$LOGFILE" -s $SHELL $USER 2>/dev/null
}
то, кэш чистится
А проверьте, есть ли у Вас в $DAEMON_OPTS ключ daemonise=true?
Да, действительно, я такой ключ не ставил в своём стартере. Так что делайте как написали
cache() {
echo "$NAME caching...! "
su -c "$POLIPO -c $CONFIG_FILE -x logFile=$LOGFILE" -s $SHELL $USER 2>/dev/null
}
PS. Тему пора закрывать :)
По этой теме.
http://ompd-proxy.narod.ru/
Спецы, подскажите пожалуйста. Эту штуку можно запустить на роутере? На сайте есть версия для Python. Поставил питон. Запускаю ./python /путь/ompd.pyc
Выдает runtimeerror.
Или я неправильно .pyc запускаю? Это вроде исполняемый файл уже.
skuwakin
26-04-2011, 08:12
Поставил я его, "работает", если можно так сказать. Тормоза жуткие... Страницы открываются по минуте. Без него - летает. Ставил из репозитария. Никакие манипуляции с конфигом дело не меняют. Где-то наткнулся на интересную мысль, а может быть он в репозитарии собран без "многопоточности"... В общем буду признателен за любые идеи.
skuwakin
30-04-2011, 21:11
доброго времени суток. Самое интересное, что решение по устранению жутких тормозов при открытии страниц через privoxy я нашел, но вот объяснить его грамотно наверное не смогу. А помог FORWARD на 3proxy, тоже установлненном на роутере. Наверняка на месте 3proxy мог быть ЛЮБОЙ прокси. Но строго говоря, такое решение для роутере не очень красивое. Ведь у него не так много ресурсов. Что присоветуете? Заранее спасибо за идеи.
Установил себе зипроксю, с настройками
ProcessJPG = true
ProcessPNG = true
ProcessGIF = true
ProcessHTML = true
ProcessCSS = true
ProcessJS = true
ProcessHTML_CSS = true
ProcessHTML_JS = true
ProcessHTML_tags = false
ProcessHTML_text = false
ProcessHTML_PRE = true
ProcessHTML_NoComments = true
ProcessHTML_TEXTAREA = false
ImageQuality = {30,25,25,20}
в среднем экономится треть трафика.
Единственный баг - при включении CustomError407 аутентификация в многих браузерах не работает.
pretoreani
09-08-2011, 06:45
а я себе поставил обычный nginx
с конфигом
gzip on;
gzip_min_length 500;
gzip_proxied any;
gzip_types text/plain application/xml text/css text/javascript application/x-javascript application/xml+rss;
gzip_buffers 32 256k;
gzip_comp_level 1;
proxy_buffer_size 512k;
proxy_buffering on;
proxy_buffers 32 256k;
.....
location / {
proxy_pass $scheme://$http_host;
.....
все остальные параметры почти по дефолту
events {
worker_connections 1024;
use poll;
}
client_header_buffer_size 16k;
large_client_header_buffers 16 128k;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
output_buffers 8 128k;
postpone_output 1000;
вполне себе жмет, раза в 2 точно. ресурсов проца жрет 2-3% - буферов много поставил только потому что на RT-N16 памяти хватает. думаю можно намного меньше.
вполне себе жмет, раза в 2 точно. Тут просто включен гзип, зипрокси же даже гзипнутые файлы распаковывает, оптимизирует и запаковывает обратно экономя еще больше трафика. Хотя основная экономия идет от пережатия картинок.
pretoreani
12-08-2011, 12:22
Ну это уже сжатие с потерями - это как-то грустно.
Лучше текст сжимать, во всех его видах.
Господа, доброго времени суток!
Имею RT-N16 прошивка 1.9.2.7-rtn-r4105 с установленным скриптом для чайников(естественно добавлен пункт -установка Privoxy & Polipo). Задался целью настроить прокси для фильтрации контента (больше нужен adult -фильтр). Если настраивать Firefox как в описании (http://www.wl500g.info/showpost.php?p=168251&postcount=41) всё работает, и недетские картинки режет, НО в моём случае доступ в и-нет через роутер осуществляется с разных устройств(телефон, PC, ноут, iPad, PSP, TV e.t.c.) поэтому хотел бы настроить роутер пропускать/фильтровать ВЕСЬ трафик из интернета
роутер имеет следующие интерфейсы:
ifconfig
br0 Link encap:Ethernet HWaddr EE:CC:EE:BB:FF:DD
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:233475 errors:0 dropped:0 overruns:0 frame:0
TX packets:192211 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:216520930 (206.4 Mb) TX bytes:144657505 (137.9 Mb)
eth0 Link encap:Ethernet HWaddr EE:CC:EE:BB:FF:DD
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:514503 errors:0 dropped:0 overruns:0 frame:0
TX packets:476757 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:165358947 (157.6 Mb) TX bytes:351031058 (334.7 Mb)
Interrupt:4 Base address:0x2000
eth1 Link encap:Ethernet HWaddr EE:CC:EE:BB:FF:DD
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:232076 errors:0 dropped:0 overruns:0 frame:324659
TX packets:195341 errors:17 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:219618570 (209.4 Mb) TX bytes:148286649 (141.4 Mb)
Interrupt:3 Base address:0x1000
imq0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 -00
UP RUNNING NOARP MTU:1492 Metric:1
RX packets:375439 errors:0 dropped:0 overruns:0 frame:0
TX packets:375439 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:11000
RX bytes:146556265 (139.7 Mb) TX bytes:146556265 (139.7 Mb)
imq1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 -00
UP RUNNING NOARP MTU:1492 Metric:1
RX packets:425399 errors:0 dropped:0 overruns:0 frame:0
TX packets:425297 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:11000
RX bytes:326008096 (310.9 Mb) TX bytes:325867698 (310.7 Mb)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MULTICAST MTU:16436 Metric:1
RX packets:164610 errors:0 dropped:0 overruns:0 frame:0
TX packets:164610 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:338714240 (323.0 Mb) TX bytes:338714240 (323.0 Mb)
ppp0 Link encap:Point-to-Point Protocol
inet addr:70.106.125.143 P-t-P:88.30.211.87 Mask:255.255.255.255
UP POINTOPOINT RUNNING MULTICAST MTU:1492 Metric:1
RX packets:369540 errors:0 dropped:0 overruns:0 frame:0
TX packets:416141 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:143010009 (136.3 Mb) TX bytes:321014124 (306.1 Mb)
vlan1 Link encap:Ethernet HWaddr EE:CC:EE:BB:FF:DD
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1597 errors:0 dropped:0 overruns:0 frame:0
TX packets:33676 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:197088 (192.4 Kb) TX bytes:13063747 (12.4 Mb)
vlan2 Link encap:Ethernet HWaddr EE:CC:EE:BB:FF:DD
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:512906 errors:0 dropped:0 overruns:0 frame:0
TX packets:443081 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:155900805 (148.6 Mb) TX bytes:337967311 (322.3 Mb)
что пробовал:
#post-firewall
#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8123
#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8118
#iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8123
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j REDIRECT --to-port 8123
результат- см.выше
Знатоки, помогите настроить!!!
и ещё, попутно несколько вопросов от чайника:
polipo и privoxy - два самостоятельных прокси сервера, я правильно понял? Если так, то как они уживаются вдвоём в одном роутере? Не будет ли мешать работе прокси nShaper (http://wl500g.info/showthread.php?13609-QoS-%D3%F1%F2%E0%ED%EE%E2%EA%E0-%E8-%ED%E0%F1%F2%F0%EE%E9%EA%E0-nShaper)?
Присоединяюсь к просьбе:
У меня лично сейчас 3G интернет и я несколько ограничен в трафике. Как только выберусь в цивилизацию, соберу последнюю из svn.
Кстати, кто занимался проблемой экономии трафика на 3G, ткните куда почитать. Мегафон московский принудительно сжатие трафика блокирует на pptp соединениях, мне кажется. Как бы эту проблему обойти. Дома есть 500gp с реальным ip. Рассматриваю варианты поднятия там l2tp или openvpn сервера.
Кстати, кто занимался проблемой экономии трафика на 3G, ткните куда почитать. Мегафон московский принудительно сжатие трафика блокирует на pptp соединениях, мне кажется. Как бы эту проблему обойти. Дома есть 500gp с реальным ip. Рассматриваю варианты поднятия там l2tp или openvpn сервера.[/SIZE]
может SSH туннель = Dropbear на 500gp + PuTTY с "Enable compression" ?
4.17.3 "Enable compression"
This enables data compression in the SSH connection: data sent by the server is compressed before sending, and decompressed at the client end. Likewise, data sent by PuTTY to the server is compressed first and the server decompresses it at the other end. This can help make the most of a low-bandwidth connection.
staticroute
19-05-2012, 14:49
У меня лично сейчас 3G интернет и я несколько ограничен в трафике. Как только выберусь в цивилизацию, соберу последнюю из svn.
Кстати, кто занимался проблемой экономии трафика на 3G, ткните куда почитать. Мегафон московский принудительно сжатие трафика блокирует на pptp соединениях, мне кажется. Как бы эту проблему обойти. Дома есть 500gp с реальным ip. Рассматриваю варианты поднятия там l2tp или openvpn сервера.
openvpn вам не сэкономит трафик, скорее наоборот в 2 раза будет больше трафика.
можно сделать прокси с gzip сжатием например https (squid, nginx, 3proxy).
ssh скорее всего тоже будет потреблять больше трафика, так как есть оверхед шифрования.
Прокси с gzip и так есть - опера турбо называется.
Хотелось бы сжимаемый тоннель. Ибо когда заканчивается лимит трафика и наступает ограничение 64кбит, эти ушлепки еще и приоритезацию включают - трафик http отдают по "остаточному" принципу. Страницы тормозят и не грузятся. Таким образом склоняют народ нести им еще бабло. А когда через vpn все идет - никаких тормозов, недозагрузов и т.п., просто медленно. Вот туда бы сжатие еще добавить. Для pptp не получается - походу фильтруют они его.
Вообще, это надо в отдельную тему.
staticroute
19-05-2012, 15:06
Прокси с gzip и так есть - опера турбо называется.
Хотелось бы сжимаемый тоннель. Ибо когда заканчивается лимит трафика и наступает ограничение 64кбит, эти ушлепки еще и приоритезацию включают - трафик http отдают по "остаточному" принципу. Страницы тормозят и не грузятся. Таким образом склоняют народ нести им еще бабло. А когда через vpn все идет - никаких тормозов, недозагрузов и т.п., просто медленно. Вот туда бы сжатие еще добавить. Для pptp не получается - походу фильтруют они его.
Вообще, это надо в отдельную тему.
openvpn поддерживает comp-lzo, но по моим тестам особо трафика это не экономило, поэкспериментируйте.. не забудьте сделать mssfix 1400 или 1450.
https://forums.openvpn.net/topic10254.html
MercuryV
20-05-2012, 21:27
может SSH туннель = Dropbear на 500gp + PuTTY с "Enable compression" ?
AFAIK, Dropbear в прошивке собран без поддержки компрессии, так что галочка в putty ничего не даст.
Прокси с gzip и так есть - опера турбо называется.
Есть отличная свободная альтернатива: ziproxy (http://ziproxy.sourceforge.net/). Умеет примерно то же самое, только можно тонко настраивать транскодинг изображений, оптимизацию страниц, сжатие gzip и т.п. Под "узкие" каналы позволяет добиться потрясающих результатов, особенно в паре с кеширующим прокси на стороне клиента.
Правда есть нюанс: как показали эксперименты, чтобы задействовать ziproxy "на полную" - вычислительной мощности роутера может быть недостаточно (точнее надо быть терпеливым человеком). Лучше запускать на системе помощнее за роутером.
MercuryV
27-06-2012, 15:15
Пакет ziproxy теперь включён в репозиторий Entware.
Что это и зачем нужно разбиралось и в данной теме и в теме (http://wl500g.info/showthread.php?28036-%CF%E5%F0%E5%F5%EE%E4-%ED%E0-%ED%EE%E2%FB%E9-%F0%E5%EF%EE%E7%E8%F2%EE%F0%E8%E9-Entware-%F1-Optware&p=246330#post246330) по Entware.
Порядок установки:
$ opkg install ziproxy
Для запуска в режиме демона можно воспользоваться стартовым скриптом
$ /opt/etc/init.d/S25ziproxy start
или выполнить
$ ziproxy -d
По умолчанию ziproxy слушает входящие соединения на порту 8080. Для типового сценария использования - серфинг с мобильного устройства вне домашней сети в условиях медленного и/или дорогого соединения с интернетом - необходимо:
1) тем или иным образом обеспечить доступ к прокси извне (я рекомендую пользоваться SSH туннелированием (http://wl500g.info/showthread.php?12833-%C8%F1%EF%EE%EB%FC%E7%EE%E2%E0%ED%E8%E5-ssh-%F2%F3%ED%E5%EB%E5%E9-%E4%EB%FF-%E1%E5%E7%EE%EF%E0%F1%ED%EE%E3%EE-%E4%EE%F1%F2%F3%EF%E0-%EA-%F0%E5%F1%F3%F0%F1%E0%EC-LAN), любителям открывать порты на роутере напоминаю о необходимости включить аутентификацию в конфиге, не оставляйте прокси открытым)
2) настроить браузер на мобильном устройстве для использования ziproxy в качестве http proxy.
Конфигурационный файл находится по пути /opt/etc/ziproxy/ziproxy.conf
Расскажу о некоторых настройках в конфиге:
MaxActiveUserConnections = 4
Имхо, для "личного" использования этого вполне достаточно, а увеличение параметра может привести не к ускорению, а наоборот, к падению производительности, так как ziproxy будет жать информацию со страницы в большее количество потоков одновременно.
# AccessLog = "/opt/var/log/ziproxy/access.log"
Если раскомментировать лог доступа, то ценой незначительной потери производительности можно смотреть детальную статистику по работе прокси. Пакет содержит утилиту ziproxylogtool, позволяющую быстро извлечь из лога информацию об эффективности сжатия (в целом или по хостам), например:
$ ziproxylogtool -m g -i /opt/var/log/ziproxy/access.log
Total accesses : 605
Total incoming bytes (uncompressed): 3722672
Total outgoing bytes (compressed) : 1410183
и скрипт ziproxy_genhtml_stats.sh, который из лога доступа генерирует HTML документ с детализацией (пример (http://x.vm0.ru/wl500g-repo/tmp/zi-lenta.htm))
MaxSize = 524288
Максимальный размер файла (в байтах), подлежащего рекомпресии. На устройствах с достатком ОЗУ можно увеличить.
# ProcessJPG = true
# ProcessPNG = true
# ProcessGIF = true
Здесь можно включать/отключать рекомпрессию отдельных типов графических файлов. Несмотря на то, что строки закомментированы, рекомпрессия графики по умолчанию включена.
ProcessHTML = true
ProcessCSS = true
# ProcessJS = false
ProcessHTML_CSS = true
ProcessHTML_JS = false
ProcessHTML_tags = true
ProcessHTML_text = true
ProcessHTML_PRE = true
ProcessHTML_NoComments = true
ProcessHTML_TEXTAREA = true
Это экспериментальные опции вмешательства в содержимое HTML/CSS/JS с целью их максимального "облегчения". Например, будут вырезаться комментарии и т.п. На отдельных, особенно забивающих на стандарты сайтах использование таких опций может привести к расползанию вёрстки или потере части функционала, но это редкость.
ImageQuality = {35,30,25,20}
Параметры сжатия при рекомпрессии JPEG, в процентах (чем меньше, тем хуже качество). Четыре величины используются для изображений разного размера (от меньших к большим), за подробностями отсылаю в документацию.
Пара слов насчет производительности и ресурсоемкости. Проверено, работает даже на wl500gp на штатных частотах, но в таком случае посещать ресурсы с обилием графики и включенной рекомпрессией изображений стоит, только если никуда не торопитесь. Положение несколько спасает то, что ziproxy всегда сначала отдаёт тело веб-страницы, а только потом начинает передавать изображения. На современных роутерах, особенно на N66U, работает вполне комфортно.
skuwakin
27-06-2012, 17:11
2 MercuryV
Спасибо за интересный, а главное, полезный материал!
В репозитории entware сейчас старинная версия polipo - 1.0.4, которая любит падать по любому чиху. Соберите пожалуйста свежую 1.1.0 https://github.com/jech/polipo
ryzhov_al
14-05-2014, 11:59
В репозитории entware сейчас старинная версия polipo - 1.0.4, которая любит падать по любому чиху. Соберите пожалуйста свежую 1.1.0 https://github.com/jech/polipoОставьте заявку в Issues (https://github.com/Entware/entware/issues), иначе ваше сообщение здесь скоро «утонет» и будет благополучно забыто.
Есть приложение, демон. Очень полезный. Но падучий, как сволочь.
Автору для локализации проблемы и её решения нужны бэктрейсы. А с их получением не всё гладко: во первых, причина падения неизвестна и падения почти непредсказуемы, во-вторых -- на x86_64 (где есть инструменты на любой вкус) проблема не вопроизводится, падает демон только на роутере.
Значит надо отлавливать падения на самом роутере.
собираем бинарник с отладочной информацией. Тулчейн свежайший отсюда (https://code.google.com/p/wl500g/), для сборки можно использовать вспомогательные скрипты (по мотивам найденного где-то):
dmig@dmig-laptop:~$ cat ~/bin/entware-configure.sh
#!/bin/sh
AR=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-ar \
AS=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-as \
LD=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-ld \
NM=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-nm \
CC=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-gcc \
CPP="~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-gcc -E" \
GCC=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-gcc \
CXX=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-g++ \
RANLIB=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-ranlib \
STRIP=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-strip \
LDFLAGS="-Wl,-rpath,/opt/lib "
./configure \
--build=i386-pc-linux-gnu \
--host=mipsel-linux \
--target=mipsel-linux $@
dmig@dmig-laptop:~$ cat ~/bin/entware-make
#!/bin/sh
AR=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-ar \
AS=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bi2n/mipsel-uclibc-as \
LD=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-ld \
NM=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-nm \
CC=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-gcc \
CPP="~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-gcc -E" \
GCC=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-gcc \
CXX=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-g++ \
RANLIB=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-ranlib \
STRIP=~/workspace/hndtools-mipsel-uclibc-4.6.4-K26/bin/mipsel-uclibc-strip \
LDFLAGS="-Wl,-rpath,/opt/lib "
make CC=$CC LD=$LD $@
демон установлен из репозитория, поэтому просто заменяем его бинарник свежесобранным
пробуем получить корку:
ulimit -c unlimited
polipo -c /opt/etc/polipo/config
Получаем болт. Потому что ядро собрано без поддержки core dump.
зато в репозитории присутствует gdb - он поможет, так же пригодится incron
демон, за падениями которого надо следить, оставляет файл /tmp/var/log/polipo.pid. повесим свой скрипт на создание и модификацию файла в /tmp/var/run (а так же скрипт для перезапуска демона, следящий за /tmp):
[dmig@my-router ~]$ cat /opt/etc/incron.d/polipo-debug
/tmp/var/run IN_CREATE,IN_MODIFY /opt/sbin/polipo-gdb.sh $@/$#
/tmp IN_CREATE /opt/sbin/polipo-restart.sh $@/$#
для получения бэктрейса придётся запускать gdb вместе с демоном, вот так:
[dmig@my-router ~]$ cat /opt/sbin/polipo-gdb.sh
#! /bin/sh
# incron следит за всеми изменениями в директории и будет запускать этот скрипт
# для любого файла
n=`basename $1`
[ "$n" = "polipo.pid" ] || exit; # нам нужен только polipo.pid
PID=`cat $1 2>/dev/null`
[ "$PID" = "" ] && exit;
# -q -- без лишних слов
# -d -- директория с исходниками
# --pid -- прицепиться к процессу с $PID
# -x -- пакетный режим, скрипт для выполнения
gdb -q -d /home/dmig/polipo --pid=$PID -x /home/dmig/polipo/polipo.gdb >/opt/var/log/polipo-stack-trace-$PID.txt
TM=`date +%F-%H-%M-%S`
mv /opt/var/log/polipo-stack-trace-$PID.txt /opt/var/log/polipo-stack-trace-$TM.txt
touch /tmp/polipo.restart # за созданием этого файла следит скрипт перезапуска демона
Скрипт для gdb:
[dmig@my-router ~]$ cat /home/dmig/polipo/polipo.gdb
handle SIGPIPE noprint nostop pass
continue
backtrace full
quit
handle SIGPIPE -- конкретно в случае с polipo, SIGPIPE -- в порядке вещей, демон его обрабатывает сам, поэтому молча игнорируем сигнал.
Скрипт для перезапуска демона:
[dmig@my-router ~]$ cat /opt/sbin/polipo-restart.sh
#! /bin/sh
n=`basename $1`;
[ "$n" = "polipo.restart" ] || exit;
rm $1;
/opt/etc/init.d/S28polipo start &>/dev/null
Теперь в /opt/var/log будут копиться файлы с бэктрейсами:
[dmig@my-router ~]$ ls -l /opt/var/log/
-rw-r--r-- 1 admin root 330901 May 21 22:45 polipo
-rw-r--r-- 1 admin root 1808 May 19 13:20 polipo-stack-trace-2014-05-19-13-01-12.txt
-rw-r--r-- 1 admin root 1709 May 19 13:05 polipo-stack-trace-2014-05-19-13-01-23.txt
-rw-r--r-- 1 admin root 1809 May 19 13:20 polipo-stack-trace-2014-05-19-13-01-30.txt
-rw-r--r-- 1 admin root 3598 May 19 13:14 polipo-stack-trace-2014-05-19-13-01-36.txt
-rw-r--r-- 1 admin root 1808 May 19 13:20 polipo-stack-trace-2014-05-19-13-01-44.txt
-rw-r--r-- 1 admin root 1814 May 19 13:20 polipo-stack-trace-2014-05-19-13-01-54.txt
-rw-r--r-- 1 admin root 1826 May 19 13:23 polipo-stack-trace-2014-05-19-13-01-58.txt
-rw-r--r-- 1 admin root 1817 May 19 14:25 polipo-stack-trace-2014-05-19-14-02-01.txt
-rw-r--r-- 1 admin root 1814 May 19 15:55 polipo-stack-trace-2014-05-19-15-03-32.txt
-rw-r--r-- 1 admin root 1288 May 19 16:02 polipo-stack-trace-2014-05-19-16-02-45.txt
-rw-r--r-- 1 admin root 2652 May 19 16:01 polipo-stack-trace-2014-05-19-16-04-08.txt
-rw-r--r-- 1 admin root 2648 May 19 19:32 polipo-stack-trace-2014-05-19-19-32-08.txt
-rw-r--r-- 1 admin root 1809 May 19 19:34 polipo-stack-trace-2014-05-19-19-34-21.txt
-rw-r--r-- 1 admin root 1809 May 19 19:36 polipo-stack-trace-2014-05-19-19-36-45.txt
-rw-r--r-- 1 admin root 2643 May 19 19:46 polipo-stack-trace-2014-05-19-19-46-40.txt
-rw-r--r-- 1 admin root 5336 May 19 19:47 polipo-stack-trace-2014-05-19-19-47-32.txt
-rw-r--r-- 1 admin root 1288 May 19 21:17 polipo-stack-trace-2014-05-19-21-13-28.txt
Если бы ядра в ночных сборках были с поддержкой core dump, процедура бы упростилась.
Надеюсь, эта инструкция будет кому-то полезна.
ryzhov_al
22-05-2014, 07:38
1. Фрагмент из вашего листинга:
LDFLAGS="-Wl,-rpath,/opt/lib-oleg "
Так и задумано? Если в /opt/lib-oleg нет собранных тулчейновых библиотек, то будут использоваться прошивочные.
2. Значит, новая версия polipo такая же падучая?
Если бы ядра в ночных сборках были с поддержкой core dump, процедура бы упростилась.
Дело в том, что для 98% народу это приведёт только к забиванию /tmp, /opt/var и т.д. И на форуме будут поститься вопли "забилась память, флешка, и т.п. ЧТО ДЕЛАТЬ??!"
А пересобрать прошивку, поменяв единственный параметр в конфиге ядра, очень несложно.
Надеюсь, эта инструкция будет кому-то полезна.
Однозначно!
1. Фрагмент из вашего листинга:
LDFLAGS="-Wl,-rpath,/opt/lib-oleg "
Так и задумано? Если в /opt/lib-oleg нет собранных тулчейновых библиотек, то будут использоваться прошивочные.
Я не разбирался, что значит этот параметр, но путь меня смутил. Какой вариант будеь правильным?
2. Значит, новая версия polipo такая же падучая?
Гораздо менее падучая, чем 1.0.4, но на 1м сайте у меня стабильно валится.
Дело в том, что для 98% народу это приведёт только к забиванию /tmp, /opt/var и т.д. И на форуме будут поститься вопли "забилась память, флешка, и т.п. ЧТО ДЕЛАТЬ??!"
А пересобрать прошивку, поменяв единственный параметр в конфиге ядра, очень несложно.
я не просто так написал ночных -- многие ли их ставят?
по умолчанию ulimit -c 0 не даст ядру создавать корки
я не просто так написал ночных -- многие ли их ставят?
Так сложилось, что многие...
по умолчанию ulimit -c 0 не даст ядру создавать корки
Или в проге не переделается через setrlimit и prctl.
Здесь ещё один момент - всё "лишнее" отключалось в целях экономии RAM. Например, для девайсов с 32Mb это важно,а для еще оставшихся RT-N10 с 16Mb просто супер-критично. Поэтому, так как сбор/анализ core предполагает хоть минимальную сообразительность ;) , и решили, что пересборка прошивки будет правильнее.
Например, для девайсов с 32Mb это важно,а для еще оставшихся RT-N10 с 16Mb просто супер-критично.
Ой, ещё и такое бывает...
Поэтому, так как сбор/анализ core предполагает хоть минимальную сообразительность ;) , и решили, что пересборка прошивки будет правильнее.
Ок, тогда спрошу инструкцию по сборке ядра/прошивки.
Вообще, не помешала бы тема с инструкциями по сборке софта новым тулчейном, искать что-то на форуме -- малоэффективно.
ryzhov_al
28-05-2014, 14:53
Для polipo больше патчей не будет? Если нет, тогда добавляю ваш и на этом остановлюсь.
Ок, тогда спрошу инструкцию по сборке ядра/прошивки.На wiki лежит, вполне актуальна.
Для polipo больше патчей не будет? Если нет, тогда добавляю ваш и на этом остановлюсь.
Не помню, есть ли уже патч для Makefile?
Исправляющий пути по умолчанию: /var/cache/polipo => /opt/var/cache/polipo и /var/run/polipo.pid => /tmp/var/run/polipo.pid
Надо сказать версия 1.1.1 стала гораздо реже падать. Если добавить скрипт для крона, вполне можно пользоваться:
[dmig@my-router ~]$ cat /opt/etc/cron.5mins/polipo-keepalive.sh
#! /bin/sh
pidof polipo || /opt/etc/init.d/S28polipo start &>/dev/null
Можно положить его не в /opt/etc/cron.5mins/, а в /opt/etc/cron.1min/ -- падения станут менее заметны.
Помогите решить многолетнюю проблему:rolleyes:
Прошивка Tomato + optware
Стоит polipo, всё настроено, всё работает за исключением ... автостарта polipo))
В /opt/etc/init.d лежит S70polipo с таким конфигом:
#!/bin/sh
NAME="polipo"
PIDFILE=/opt/var/run/polipo.pid
POLIPO=/opt/sbin/polipo
CONFIG_FILE=/opt/etc/polipo.conf
start() {
echo "Starting $NAME... "
/opt/sbin/polipo -c $CONFIG_FILE
}
..
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
В administration -> scripts-> init
пробовал и так /opt/etc/init.d/S70polipo start и сяк /opt/bin/polipo -c /opt/etc/polipo.conf
и даже polipo перекинул из bin в sbin но, автоматом не стартует:mad:
А так /opt/etc/init.d/S70polipo start в ручную стартует на ура. Что я пропустил?