База знань Проста інструкція по роботі з сервісом Профітсервер
головний База знань Конфігурація 3проксі на CentOS/ArchLinux

Конфігурація 3проксі на CentOS/ArchLinux


У цій статті ми покажемо конфігурацію 3proxy на виділеному сервері під керуванням операційної системи ArchLinux/CentOS. 3proxy - один з найбільш актуальних і функціональних інструментів. Він підтримує різні типи протоколів: HTTP, HTTPS, FTP, SOCKS та інші. Це допоможе вам налаштувати власний проксі-сервер за лічені хвилини.

У статті міститься покрокова інструкція по установці утиліти і її подальшого налаштування. Розглянуто такі питання, як установка з офіційного джерела, налаштування конфігураційних файлів, відкриття нестандартних портів, а також описані типові помилки та надані практичні рекомендації щодо їх вирішення. Перед запуском необхідно замовити a VPS or Виділений сервер на базі операційної системи CentOS або ArchLinux. Усі дії в прикладі виконуватимуться на виділеному сервері під керуванням операційної системи CentOS7 з однією виділеною статичною публічною IP-адресою.

Встановлення

крок 1

3proxy встановлюється безпосередньо з вихідних кодів. ПКУ буде використовуватися як компілятор. Підключаємося до сервера як root (суперкористувач) і встановлюємо компілятор.

yum install gcc

крок 2

Тепер необхідно завантажити вихідні файли 3proxy. Ви можете зробити це, перейшовши на сторінку Офіційний сайт і копіювання посилання на поточну версію:

Установка утиліти

Якщо потрібна заархівована версія, ви також можете завантажити посилання безпосередньо з GitHub:

Встановлення 3proxy з Github

На момент написання цієї статті поточною версією є 0.9.3. Завантажте його та негайно розпакуйте:

wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz

крок 3

Перейдіть до каталогу з розпакованим проектом і скомпілюйте:

cd 3proxy-0.9.3/
make -f Makefile.Linux

крок 4

Ми створюємо каталоги та копіюємо файл 3proxy в /usr/bin:

mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/

крок 5

Створюємо користувача для роботи з каталогом. У цьому випадку це ім’я користувача 3proxyuser:

useradd -s /usr/sbin/nologin -U -M -r 3proxyuser

Надаємо права на роботу з каталогами створеному користувачеві:

chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy

Тепер давайте створимо файл конфігурації за допомогою команди:

touch /etc/3proxy/3proxy.cfg

Якщо необхідно, ви можете встановити дозволи на конфігураційний файл для користувача root. Цей крок не є обов'язковим, але додасть захист:

chmod 600 /etc/3proxy/3proxy.cfg

конфігурація 3проксі

крок 6

Необхідно правильно заповнити конфігураційний файл, який був створений раніше. Спочатку дізнайтеся uid і gid користувача командою:

id 3proxyuser

У нашому випадку це такі значення:

uid і gid

Для заповнення конфігураційного файлу можна взяти готові конфігурації або скористатися документація на офіційному сайті. Також файл із прикладом уже встановлено за замовчуванням; ви можете знайти його на шляху: /cfg/3proxy.cfg.sample

Для прикладу розглянемо 2 типи конфігурації: з вирубкою та без. Кожен рядок буде супроводжуватися коментарями (вони позначені символом «#»).

Це приклад готової конфігурації без реєстрації:

# We specify the user's data that we found out in the previous command
setgid 995
setuid 997

# Type the NS-servers. It is possible to clarify your own servers at /etc/resolv.conf
nserver 1.1.1.1
nserver 8.8.8.8

# Cache size
nscache 65536

# Timeouts
timeouts 1 5 30 60 180 1800 15 60

# Authorization of users by login/password (if required). You may not to use it or specify the path to the file in which authorization data is stored, for example, users $/etc/3proxy/.authfile

# If you insert a password in md5 format, replace “CL” with “CR”, as indicated in the example. You can use 2 methods at the same time.
auth cache strong
users "userproxy:CL:passwordproxy"
users "userproxy2:CR:b89097a7ad0b94f13b3c313ae76699d4 "

# Launch mode. Daemon only.
Daemon

# We write the port through which the http connection will take place. The example shows the standard one. To establish a socks connection, use the command specified in the second line, the port is also standard.
proxy -p3128			
socks -p1080

Ми розглядали варіант конфігураційного файлу без логування. Тепер ми створимо файл конфігурації з реєстрація та авторизація користувачів; він буде використаний пізніше під час налаштування сервера.

Переконайтеся, що ви надали інформацію про авторизацію, оскільки сервер можна виявити навіть на нестандартних портах.

# Configuring the server to launch from the userproxy user and the passwordproxy password.
users userproxy:CL:passwordproxy

# Specify the user's uid and gid
setgid 995
setuid 997

# Nameservers (NS-servers)
nserver 1.1.1.1
nserver 8.8.8.8

# Timeouts
timeouts 1 5 30 60 180 1800 15 60

# Cache size (standard)
nscache 65536

# Indicate the launch mode
daemon

# We install http proxy on a non-standard 50001 port. If there are several IP addresses on the server, be sure to specify a specific address for connecting the network. For example, "-e91.150.32.146". The argument "i" is a local address.
proxy –p50001	

# In a same way as socks proxy, we conduct the installation on a 50002 port.
socks –p50002			

# Path to the directory with logs, logs format and proxy rotation
Log /var/log/3proxy/3proxy.log D	
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30

На цьому налаштування основного файлу конфігурації завершено. Переходимо до фінального етапу і запуску.

крок 7

Створіть файл ініціалізації для systemd:

touch /etc/systemd/system/3proxy.service

Видайте необхідні права:

chmod 664 /etc/systemd/system/3proxy.service

Скопіюйте та вставте такі значення у файл і збережіть:

[Unit]
Description=3proxy Proxy Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg
ExecStop=/bin/kill `/usr/bin/pgrep 3proxyuser`
RemainAfterExit=yes
Restart=on-failure
[Install]
WantedBy=multi-user.target»

Будь ласка, зверніть увагу:  у значенні «ExecStop» необхідно вказати ім'я користувача, створене на кроці №5.

Після чого потрібно оновити конфігурацію Daemon командою:

systemctl daemon-reload

крок 8

Єдине, що нам потрібно, це запустити налаштований 3proxy, додати його в автозапуск, а також відкрити порти в брандмауері.

Додайте його в автозапуск, запуск і перевірку статусу:

systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy

Після перевірки статусу ми бачимо інформацію про те, що 3proxy успішно запущено:

Проксі працює

Залишається тільки відкрити порти:

firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload

Якщо необхідно, перезавантажте сервер. Перевірити, чи відкриті порти, можна командою:

firewall-cmd --list-all

Що має бути:

Відкрийте порти брандмауера

Як бачимо, обидва порти успішно відкриті та прослуховуються. http-з’єднання на першому порту, socks – на другому.

Перевірте підключення через будь-який зручний сервіс:

Успішне налаштування 3proxy

Все працює. зі свого боку, не рекомендуємо використовувати незахищене з'єднання без авторизації логіна/пароля, а також зі стандартним набором портів. Під час налаштування файлу конфігурації обов'язково вкажіть логін і створіть складний пароль, а також змініть порти на нестандартні. У виняткових випадках можливе використання авторизації IP-адреси

Загальні проблеми

Щось пішло не так і проксі не працює? Можливо, конфігурація 3proxy була виконана неправильно. Розглянемо найпоширеніші проблеми та способи їх вирішення під час встановлення та налаштування утиліти.

Немає з'єднання

Найпоширенішою проблемою для багатьох користувачів є недоступне підключення, коли файли конфігурації налаштовані правильно. Якщо ви впевнені, що всі параметри налаштовані правильно, хостинг-провайдер не обмежує вибраний порт і всі дані вказують на працюючу службу, проблема може бути в брандмауері, а точніше, в його неправильній конфігурації. Наприклад, у системі може бути встановлено більше двох програм, які конфліктуватимуть одна з одною. Щоб вирішити проблему, достатньо використовувати один конкретний Firewall. Радимо вибрати лише iptables або firewall-cmd.

Служба не запускається

Служба не запускається після налаштування всіх необхідних конфігураційних файлів. Це трапляється, коли пропущений крок конфігурації, не надано відповідних прав або зроблено незначну помилку у файлах конфігурації. Рекомендуємо ще раз уважно вивчити інструкцію покроково, можливо, ви пропустили один з кроків. Якщо нічого не допомагає, було б гарною ідеєю перевстановити ОС і виконати всі кроки з самого початку. Рекомендуємо використовувати зразок розташований у /cfg/3proxy.cfg.sample, як тестова конфігурація та попередньо встановлена firewall-cmd як брандмауер.

Запис

Останнє, але не менш важливе питання стосується зберігання файлів. 3proxy займає кілька Мб під час інсталяції, але розмір можна значно збільшити лише за допомогою журналювання з часом. Справа в тому, що багато користувачів включають запис логів в окремий файл, але не налаштовують ротацію і не видаляють неактуальні журнали. Для вирішення цієї проблеми можна використовувати три варіанти:

  1. Увімкнути журналювання;
  2. Періодично видаляйте невідповідні журнали;
  3. Увімкніть обертання, як було зроблено в налаштуваннях вище. Наприклад, «rotate 30» у файлі конфігурації означає, що 3proxy зберігатиме лише останні 30 файлів.

Висновок

Встановлення та налаштування 3proxy в операційних системах CentOS і ArchLinux - досить просте, але в той же час ефективне завдання. У статті описано кроки для встановлення необхідних пакетів, налаштування файлів конфігурації та запуску служби. Отримані знання дозволять вам самостійно без проблем встановити та налаштувати проксі-сервер.

❮ Попередня стаття Як скинути пароль Windows
Наступна стаття ❯ Як збільшити розділ диска в ОС Windows

Запитайте нас про VPS

Ми завжди готові відповісти на ваші запитання в будь-який час дня і ночі.