Итак, теперь приступим к настройке роутера, в моем случае это NETGEAR WNR-3500L-RUS и прошивка Tomato (модификация прошивки не имеет значения). Данная статья рассчитана на продвинутого пользователя и считается. что человек уже умеет обращаться с командной строкой, putty и знает что делает.
Сперва, необходимо сделать так, чтобы прокси работал всегда и не зависел ни от флешек ни от чего-либо ещё, то есть будем размещать программу в памяти роутера, для этого в разделе Администрирования включаем опцию JFFS — это небольшой раздел, в моем случае 320 кб, на программу для прокси хватит.
Итак, идем в Administration / JFFS, включаем галочку Enable и нажимаем Format / Erase, ждем некоторое время, и нажимаем Save.
Когда раздел JFFS отформатирован и смонтирован, то появится доступ к папке /jffs, сюда то и поместим программу srelay.
Чтобы скачать программу (файл расположен мной на моем же сайте гугла для удобства, уже скомпиленный из optware), выполняем следующий скрипт, можно в разделе Tools / System:
wget "http://sites.google.com/site/denserru/Home/srelay/srelay?attredirects=0&d=1" -O "/jffs/srelay"
chmod +x /jffs/srelayТеперь у нас есть программа srelay в разделе jffs, который находится в памяти роутера, остается настроить порты, автозапуск программы и её параметры.
Параметры программы можно увидеть по команде:
root@denser-router:/tmp/home/root# /jffs/srelay -h
srelay 0.4.6 2003/04/13 (Tomo.M)
usage: srelay [options]
options:
-c file config file
-i i/f listen interface IP[:PORT]
-m num max child/thread
-o min idle timeout minutes
-p file pid file
-a np auth methods n: no, p:pass
-u file srelay password file
-f run into foreground
-r resolve client name in log
-s force logging to syslog
-t disable threading
-b avoid BIND port restriction
-v show version and exit
-h show this help and exit
Нам понадобится следующие из них:
/jffs/srelay -i :9999 -t -a pP@ssW0rDГде 9999 — порт, который будет использоваться для подключения, используйте какой угодно, кроме стандартных. P@ssW0rD замените на пароль, который будет использоваться для авторизации(обратите внимание на букву р перед паролем), имя пользователя при доступе к прокси — root. Добавляем эту строку в поле Execute When Mounted, чтобы программа запускалась при инициализации раздела JFFS с заданными параметрами, а именно:
- работа по протоколам HTTP, SOCKS4 и SOCKS5
- авторизация на порту 9999 пользователь: root, пароль: P@ssW0rD.
Приблизительно так должно выглядеть в итоге:

Теперь, добавим правило в Firewall на открытие порта 9999, для этого переключаемся в раздел Administration / Scripts, вкладка Firewall, туда добавляем через перенос строки следующее:
iptables -I INPUT -p tcp --dport 9999 -j ACCEPTВыглядеть это будет приблизительно вот так:

Теперь перезагружаем роутер и проверяем работу программы любым доступным методом, например, браузером. Надеюсь вам пригодится эта инструкция как и мне.
Было замечено, что после длительной работы, программа могла закрываться, для этих целей я ставлю программу monit, но это тема другой статьи.
Используемые материалы:
1. Исходники самой программы — socks-relay.sourceforge.net
2. Очерк одного из пользователей — www.linksysinfo.org/index.php?threads/a-socks-proxy-server-for-tomato.23898

