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