База ведаў Простая інструкцыя па працы з сэрвісам Профітсервер
галоўны База ведаў Канфігурацыя 3proxy на CentOS/ArchLinux

Канфігурацыя 3proxy на 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

Пры неабходнасці вы можаце ўсталяваць правы доступу да файла канфігурацыі для каранёвага карыстальніка. Гэты крок не абавязковы, але дадасць абарону:

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 была зроблена няправільна. Разгледзім найбольш распаўсюджаныя праблемы і шляхі іх вырашэння пры ўсталёўцы і наладзе ўтыліты.

Няма сувязі

Найбольш частай праблемай для многіх карыстальнікаў з'яўляецца недаступнае злучэнне, калі канфігурацыйныя файлы, здаецца, настроены правільна. Калі вы ўпэўнены, што ўсе налады настроены правільна, хостынг-правайдэр не абмяжоўвае абраны порт і ўсе дадзеныя сведчаць аб працы службы, праблема можа быць у брандмаўэры, а дакладней, у яго няправільнай наладзе. Напрыклад, у сістэме можа быць усталявана больш за дзве праграмы, якія будуць канфліктаваць адна з адной. Каб вырашыць праблему, дастаткова выкарыстоўваць адзін пэўны брандмаўэр. Мы раім вам выбіраць толькі iptables або firewall-cmd.

Сэрвіс не запускаецца

Служба не запускаецца пасля наладжвання ўсіх неабходных канфігурацыйных файлаў. Гэта адбываецца, калі прапушчаны крок канфігурацыі, не дадзены адпаведныя правы або зроблена нязначная памылка ў файлах канфігурацыі. Рэкамендуем яшчэ раз уважліва вывучыць інструкцыю пакрокава, магчыма, вы прапусцілі адзін з крокаў. Калі нічога не дапамагае, нядрэнна было б пераўсталяваць АС і выконваць усе крокі з самага пачатку. Рэкамендуем выкарыстоўваць ўзор размешчаны ў /cfg/3proxy.cfg.sample, у якасці тэставай канфігурацыі і папярэдне ўсталяванай брандмаўэр-cmd як брандмаўэр.

Запіс

Апошняе, але не менш важнае пытанне - гэта захоўванне файлаў. 3proxy займае некалькі мб падчас усталявання, але з цягам часу памер можа быць значна павялічаны толькі праз рэгістрацыю. Справа ў тым, што многія карыстальнікі ўключаюць запіс логі ў асобны файл, але не наладжваюць ратацыю і не выдаляюць неактуальныя логі. Для вырашэння гэтай праблемы можна выкарыстоўваць тры варыянты:

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

Conclusion

Ўстаноўка і настройка 3proxy ў аперацыйных сістэмах CentOS і ArchLinux - даволі простая, але ў той жа час эфектыўная задача. У артыкуле разглядаліся этапы ўстаноўкі неабходных пакетаў, канфігурацыі файлаў канфігурацыі і запуску службы. Атрыманыя веды дазволяць вам без асаблівых цяжкасцяў самастойна ўсталяваць і наладзіць проксі-сервер.

❮ Папярэдні артыкул Як павялічыць падзел дыска ў АС Windows
Наступны артыкул ❯ Як скінуць пароль Windows

Спытайце нас пра VPS

Мы заўсёды гатовы адказаць на вашы пытанні ў любы час дня і ночы.