ამ სტატიაში ჩვენ ვაჩვენებთ 3 პროქსის კონფიგურაციას გამოყოფილ სერვერზე, რომელიც აღჭურვილია ArchLinux/CentOS ოპერაციული სისტემით. 3proxy არის ერთ-ერთი ყველაზე აქტუალური და ფუნქციონალური ინსტრუმენტი. იგი მხარს უჭერს სხვადასხვა ტიპის პროტოკოლებს: HTTP, HTTPS, FTP, SOCKS და სხვა. ის დაგეხმარებათ რამდენიმე წუთში დააყენოთ თქვენი საკუთარი პროქსი სერვერი.
სტატია შეიცავს ნაბიჯ-ნაბიჯ ინსტრუქციას კომუნალური ინსტალაციისა და მისი შემდგომი კონფიგურაციის შესახებ. განიხილება ისეთი საკითხები, როგორიცაა ინსტალაცია ოფიციალური წყაროდან, კონფიგურაციის ფაილების დაყენება, არასტანდარტული პორტების გახსნა, ასევე აღწერილია საერთო შეცდომები და მოცემულია პრაქტიკული რეკომენდაციები მათი გადასაჭრელად. გაშვებამდე, თქვენ უნდა შეუკვეთოთ ა VPS or თავდადებული სერვერზე იკვებება CentOS ან ArchLinux ოპერაციული სისტემით. მაგალითში ყველა ქმედება შესრულდება სპეციალურ სერვერზე, რომელიც აღჭურვილია CentOS7 ოპერაციული სისტემით, ერთი გამოყოფილი სტატიკური საჯარო IP მისამართით.
მონტაჟი
ნაბიჯი 1
3პროქსი დაინსტალირებულია უშუალოდ წყაროებიდან. gcc გამოყენებული იქნება როგორც შემდგენელი. ჩვენ ვუკავშირდებით სერვერს, როგორც root (სუპერ მომხმარებელი) და ვაინსტალირებთ კომპილერს.
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
ჩვენ ვქმნით დირექტორიებს და ვაკოპირებთ 3proxy ფაილს /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
საჭიროების შემთხვევაში, შეგიძლიათ დააყენოთ ნებართვები კონფიგურაციის ფაილზე 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
ერთადერთი რაც გვჭირდება არის კონფიგურირებული 3პროქსის გაშვება, მისი დამატება ავტოსტარტზე და ასევე პორტების გახსნა ფაირვოლში.
დაამატეთ იგი ავტომატურ დაწყებაში, გაუშვით და შეამოწმეთ სტატუსი:
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 მისამართის ავტორიზაციის გამოყენება
საერთო პრობლემები
მოხდა რაღაც შეცდომა და პროქსი არ მუშაობს? შესაძლოა, 3პროქსის კონფიგურაცია არასწორად გაკეთდა. მოდით განვიხილოთ ყველაზე გავრცელებული პრობლემები და მათი გადაწყვეტილებები პროგრამის ინსტალაციისა და კონფიგურაციის დროს.
Არ არის კავშირი
ბევრი მომხმარებლისთვის ყველაზე გავრცელებული პრობლემა არის მიუწვდომელი კავშირი, როდესაც კონფიგურაციის ფაილები, როგორც ჩანს, სწორად არის კონფიგურირებული. თუ დარწმუნებული ხართ, რომ ყველა პარამეტრი სწორად არის კონფიგურირებული, ჰოსტინგის პროვაიდერი არ ზღუდავს არჩეულ პორტს და ყველა მონაცემი მიუთითებს სამუშაო სერვისზე, პრობლემა შეიძლება იყოს Firewall-ში ან, უფრო ზუსტად, მის არასწორ კონფიგურაციაში. მაგალითად, სისტემაში შეიძლება იყოს დაინსტალირებული ორზე მეტი პროგრამა, რომლებიც კონფლიქტშია ერთმანეთთან. პრობლემის გადასაჭრელად, საკმარისია გამოიყენოთ ერთი კონკრეტული Firewall. ჩვენ გირჩევთ აირჩიოთ მხოლოდ iptables ან firewall-cmd.
სერვისი არ იწყება
სერვისი არ იწყება ყველა საჭირო კონფიგურაციის ფაილის დაყენების შემდეგ. ეს ხდება მაშინ, როდესაც კონფიგურაციის ნაბიჯი გამოტოვებულია, შესაბამისი უფლებები არ არის მინიჭებული, ან მცირე შეცდომა დაშვებულია კონფიგურაციის ფაილებში. ჩვენ გირჩევთ, ყურადღებით შეისწავლოთ ინსტრუქციები ეტაპობრივად, შესაძლოა, რომელიმე ნაბიჯი გამოგრჩეთ. თუ არაფერი დაგვეხმარება, კარგი იქნება OS ხელახლა დააინსტალიროთ და თავიდანვე მიჰყვეთ ყველა საფეხურს. ჩვენ გირჩევთ გამოიყენოთ ნიმუში მდებარეობს მისამართზე /cfg/3proxy.cfg.sample, როგორც სატესტო კონფიგურაცია და წინასწარ დაინსტალირებული firewall-cmd როგორც firewall.
ხე
საბოლოო, მაგრამ არანაკლებ მნიშვნელოვანი საკითხი ეხება ფაილების შენახვას. 3პროქსი ინსტალაციის დროს იღებს რამდენიმე მეგაბაიტს, მაგრამ ზომა შეიძლება მნიშვნელოვნად გაიზარდოს მხოლოდ დროთა განმავლობაში ლოგინგით. ფაქტია, რომ ბევრი მომხმარებელი რთავს ჟურნალის ჩაწერას ცალკე ფაილში, მაგრამ არ აყენებს როტაციას და არ წაშლის შეუსაბამო ჟურნალებს. ამ პრობლემის გადასაჭრელად შეიძლება გამოყენებულ იქნას სამი ვარიანტი:
- შესვლის ჩართვა;
- პერიოდულად წაშალეთ შეუსაბამო ჟურნალები;
- ჩართეთ როტაცია, როგორც ეს გაკეთდა ზემოთ მოცემულ კონფიგურაციაში. მაგალითად, "როტაცია 30" კონფიგურაციის ფაილში ნიშნავს, რომ 3proxy შეინახავს მხოლოდ უახლეს 30 ფაილს.
დასკვნა
3proxy-ის ინსტალაცია და კონფიგურაცია CentOS და ArchLinux ოპერაციულ სისტემებზე საკმაოდ მარტივი, მაგრამ ამავე დროს ეფექტური ამოცანაა. სტატიაში განხილული იყო აუცილებელი პაკეტების ინსტალაციის, კონფიგურაციის ფაილების კონფიგურაციისა და სერვისის გაშვების ნაბიჯები. მიღებული ცოდნა საშუალებას მოგცემთ დააინსტალიროთ და დააკონფიგურიროთ თქვენი პროქსი სერვერი ყოველგვარი სირთულეების გარეშე.