FreeBSD: установка сервера SOCKS-прокси
Мне по работе понадобился простой, без лишних наворотов, быстро и стабильно работающий SOCKS-прокси. Можно попытаться нагуглить целую пачку проксей, но, к сожалению, те прокси, которые лежат в интернете в открытом доступе, по большей части либо совсем мёртвые (к ним невозможно подключиться), либо еле живые (работа через них чрезвычайно медленная). К тому же мрут они как мухи, поэтому, если нужны прокси на продолжительное время, то, скорее всего, придётся раз разом гуглить новые по мере отмирания тех, которые уже нашёл.
Так как в данном случае требовался всего лишь один прокси, но надёжный и надолго, то при наличии своего сервера в США грех не воспользоваться возможностью и не поднять прокси на этом сервере.
Выбор пал на nylon. Написанный командой OpenBSD этот прокси настоящий аскет, но делает своё дело шустро и без лишних вопросов. Авторизация не поддерживается, но в конфиге можно указать, с каких адресов или подсетей разрешить и/или запретить доступ. Меня это более, чем устраивает -- с авторизацией он мне как раз и не нужен.
Итак, установка стандартная, из портов:
cd /usr/ports/net/nylon/ make install clean
При установке никаких вопросов не задаётся, необходимые библиотеки подгружаются и устанавливаются автоматом. Все проходит быстро и гладко.
После установки в директории "/usr/local/etc" находим пример конфигурационного файла и копируем его в качестве рабочей конфигурации. Естественно, после копирования его надо будет отредактировать:
cp /usr/local/etc/nylon.conf.sample /usr/local/etc/nylon.conf
Запускаем редактор:
vim /usr/local/etc/nylon.conf
Видим файл конфигурации:
# sample configuration # marius aamodt eriksen (marius@umich.edu) # $Id: nylon.conf,v 1.11 2002/03/27 07:39:53 beriksen Exp $ # general settings [General] # number of simultaneous connections allowed No-Simultaneous-Conn=10 # log connections and other information to syslog? 1: on, 0: off Log=1 # be verbose on the console? 1: on, 0: off Verbose=0 # store pid file #PIDfile=/var/run/nylon.pid # server settings [Server] # interface to listen to connections #Binding-Interface=fxp1 # interface to bind outgoing connections to #Connecting-Interface=fxp0 # listening port to bind to Port=1080 # allowed is processed first, then deny # allowable connect ips/ranges #Allow-IP=141.0.0.0/8 127.0.0.1 10.0.0.0/24 Allow-IP=127.0.0.1/32 # denied connect ips/ranges #Deny-IP=10.0.0.0/24
Значения параметров конфигурационного файла:
No-Simultaneous-Conn | Максимально возможное число одновременных подключений к прокси серверу. |
---|---|
Log | Нужно ли записывать в журнал сообщения от прокси. 1 - нужно. 0 - не нужно. |
Verbose | При запуске из консоли, писать 1 - более развёрнутую информацию, 0 - стандартные сообщения. |
PIDfile | Путь к файлу с идентификатором процесса. По всей видимости, предотвращает запуск более одной копии программы. |
Binding-Interface | Сетевой интерфейс для входящих подклчений. |
Connecting-Interface | Сетевой интерфейс для исходящих подключений. |
Port | Номер порта, который будет слушать прокси. |
Allow-IP | Список IP-адресов и масок подсетей, разделённых пробелом, которым разрешено подключение к прокси. Если пустой, то разрешено всем, кроме перечисленных в параметре Deny-IP. |
Deny-IP | Список IP-адресов и масок подсетей, разделённых пробелом, которым запрещено подключение к прокси. Если пустой, то запрещено всем, кроме тех, что указаны в параметре Allow-IP. |
После редактирования сохраним файл:
:w! :q
Добавим строчку для автоматического запуска прокси при каждом старте системы:
echo "nylon_enable=YES" >> /etc/rc.conf
Запускаем сервер:
/usr/local/etc/rc.d/nylon start
Теперь проверяем и пользуемся.