Дар ин мақола мо конфигуратсияи 3проксиро дар сервери бахшидашуда нишон медиҳем, ки бо системаи оператсионии ArchLinux/CentOS кор мекунад. 3proxy яке аз абзорҳои мувофиқтарин ва функсионалӣ мебошад. Он намудҳои гуногуни протоколҳоро дастгирӣ мекунад: HTTP, HTTPS, FTP, SOCKS ва ғайра. Он ба шумо кӯмак мекунад, ки сервери прокси худро дар тӯли чанд дақиқа насб кунед.
Дар мақола роҳнамоии қадам ба қадам оид ба насби утилитаҳо ва конфигуратсияи минбаъдаи он оварда шудааст. Масъалаҳо аз қабили насб аз манбаи расмӣ, насб кардани файлҳои конфигуратсия, кушодани портҳои ғайристандартӣ баррасӣ карда мешаванд, инчунин хатогиҳои умумӣ тавсиф ва тавсияҳои амалӣ барои ҳалли онҳо дода мешаванд. Пеш аз оғози кор, шумо бояд фармоиш диҳед VPS or сервери махсус бо системаи оператсионии CentOS ё ArchLinux кор мекунад. Ҳама амалҳои дар мисол овардашуда дар сервери ҷудошуда, ки бо системаи оператсионии CentOS7 бо як суроғаи IP-и статикии ҷамъиятии бахшидашуда таъмин карда мешаванд, иҷро карда мешаванд.
насби
1 қадами
3proxy мустақиман аз манбаъҳо насб карда мешавад. gcc ҳамчун компилятор истифода мешавад. Мо ба сервер ҳамчун root (superuser) пайваст мешавем ва компиляторро насб мекунем.
yum install gcc
2 қадами
Акнун зарур аст, ки файлҳои сарчашмаи 3проксиро зеркашӣ кунед. Шумо метавонед ин корро тавассути рафтан ба сомонаи расмии ва нусхабардории истинод ба версияи ҷорӣ:
Агар версияи бойгонӣ лозим бошад, шумо инчунин метавонед истинодро мустақиман аз он зеркашӣ кунед 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 қадами
Мо директорияҳо эҷод мекунем ва файли 3проксиро ба /usr/bin нусхабардорӣ мекунем:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
5 қадами
Мо корбареро эҷод мекунем, ки бо каталог кор кунад. Дар ин ҳолат номи корбар аст 3 прокси-сервер:
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
Дар ҳолати мо ин арзишҳои зерин мебошанд:
Барои пур кардани файли конфигуратсия, шумо метавонед конфигуратсияҳои тайёрро гиред ё ҳуҷҷатҳо дар вебсайти расмӣ. Инчунин файл бо намуна аллакай бо нобаёнӣ пешакӣ насб карда шудааст; шумо метавонед онро дар роҳ пайдо кунед: /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 дар бандари аввал, ҷӯроб дар бандари дуюм аст.
Пайвастшавиро тавассути ягон хидмати қулай санҷед:
Ҳама чиз кор мекунад. Аз тарафи мо, мо тавсия намедиҳем, ки пайвасти бехатарро бидуни иҷозати логин/парол ва инчунин бо маҷмӯи стандартии портҳо истифода барем.. Ҳангоми насб кардани файли конфигуратсия, боварӣ ҳосил кунед, ки логинро муайян кунед ва пароли мураккаб эҷод кунед ва инчунин портҳоро ба портҳои ғайристандартӣ иваз кунед. Дар ҳолатҳои истисноӣ, иҷозати суроғаи IP-ро истифода бурдан мумкин аст
Проблемаҳои умумӣ
Чизе хато кард ва прокси кор намекунад? Шояд конфигуратсияи 3proxy нодуруст анҷом дода шудааст. Биёед мушкилоти маъмултарин ва роҳҳои ҳалли онҳоро ҳангоми насб ва конфигуратсияи утилита баррасӣ кунем.
Пайваст нест
Мушкилоти маъмултарин барои бисёре аз корбарон ин пайвасти дастнорас аст, вақте ки файлҳои конфигуратсия ба назар дуруст танзим шудаанд. Агар шумо мутмаин бошед, ки ҳама танзимот дуруст танзим шудаанд, провайдери хостинг порти интихобшударо маҳдуд намекунад ва ҳама маълумот хидмати кориро нишон медиҳад, мушкилот метавонад дар Сипар бошад, ё дақиқтараш, конфигуратсияи нодурусти он. Масалан, дар система зиёда аз ду барнома насб карда шуда метавонад, ки бо ҳамдигар мухолифат мекунанд. Барои ҳалли мушкилот, истифодаи як Firewall мушаххас кофӣ аст. Мо ба шумо маслиҳат медиҳем, ки танҳо iptables ё firewall-cmd -ро интихоб кунед.
Хизматрасонӣ оғоз намешавад
Пас аз насб кардани ҳамаи файлҳои конфигуратсияи зарурӣ хидмат оғоз намешавад. Ин вақте рух медиҳад, ки қадами конфигуратсия аз даст дода мешавад, ҳуқуқҳои мувофиқ дода нашудаанд ё дар файлҳои конфигуратсия хатогии ночиз содир мешавад. Мо ба шумо тавсия медиҳем, ки дастурҳоро қадам ба қадам бодиққат омӯзед, шояд шумо яке аз қадамҳоро аз даст додаед. Агар ҳеҷ чиз ёрӣ надиҳад, хуб мебуд, ки OS-ро аз нав насб кунед ва ҳама қадамҳоро аз аввал иҷро кунед. Мо тавсия медиҳем, ки истифода баранд намуна воқеъ дар /cfg/3proxy.cfg.sample, ҳамчун конфигуратсияи санҷишӣ, ва қаблан насбшуда firewall-cmd ҳамчун девори девор.
ботлоќшавї
Масъалаи ниҳоӣ, вале на камтар аз муҳим ба нигоҳдории файл дахл дорад. 3proxy ҳангоми насб якчанд мб мегирад, аммо андозаи онро танҳо тавассути сабткунӣ бо гузашти вақт ба таври назаррас зиёд кардан мумкин аст. Далели он аст, ки бисёре аз корбарон сабти сабтро дар файли алоҳида фаъол мекунанд, аммо гардишро танзим намекунанд ва гузоришҳои номатлубро нест намекунанд. Барои ҳалли ин мушкилот се вариантро истифода бурдан мумкин аст:
- Ба қайдгириро фаъол созед;
- Давра ба давра тоза кардани гузоришҳои номатлуб;
- Ротацияро фаъол созед, тавре ки дар конфигуратсияи боло иҷро шудааст. Масалан, "30 гардиш" дар файли конфигуратсия маънои онро дорад, ки 3proxy танҳо 30 файли охиринро нигоҳ медорад.
хулоса
Насб ва танзими 3proxy дар системаҳои оператсионии CentOS ва ArchLinux кори хеле содда, вале дар айни замон самаранок аст. Дар мақола қадамҳои насб кардани бастаҳои зарурӣ, конфигуратсияи файлҳои конфигуратсия ва оғози хидмат дар бар гирифта шудааст. Дониши ба даст овардашуда ба шумо имкон медиҳад, ки сервери прокси худро худатон бе ягон мушкилот насб ва танзим кунед.