នៅក្នុងអត្ថបទនេះ យើងនឹងបង្ហាញពីការកំណត់រចនាសម្ព័ន្ធប្រូកស៊ី 3 នៅលើម៉ាស៊ីនមេដែលខិតខំប្រឹងប្រែងដែលដំណើរការដោយប្រព័ន្ធប្រតិបត្តិការ ArchLinux/CentOS ។ 3proxy គឺជាឧបករណ៍មួយដែលពាក់ព័ន្ធ និងមុខងារច្រើនបំផុត។ វាគាំទ្រប្រភេទផ្សេងៗនៃពិធីការ៖ HTTP, HTTPS, FTP, SOCKS និងផ្សេងទៀត។ វានឹងជួយអ្នកក្នុងការដំឡើងម៉ាស៊ីនមេប្រូកស៊ីផ្ទាល់ខ្លួនរបស់អ្នកក្នុងរយៈពេលប៉ុន្មាននាទី។
អត្ថបទមានការណែនាំជាជំហាន ៗ លើការដំឡើងឧបករណ៍ប្រើប្រាស់ និងការកំណត់រចនាសម្ព័ន្ធបន្ថែមរបស់វា។ បញ្ហាដូចជាការដំឡើងពីប្រភពផ្លូវការ ការដំឡើងឯកសារកំណត់រចនាសម្ព័ន្ធ ការបើកច្រកដែលមិនមានស្តង់ដារត្រូវបានពិចារណា ក៏ដូចជាកំហុសទូទៅត្រូវបានពិពណ៌នា ហើយអនុសាសន៍ជាក់ស្តែងសម្រាប់ការដោះស្រាយពួកគេត្រូវបានផ្តល់ឱ្យ។ មុនពេលបើកដំណើរការ អ្នកត្រូវតែបញ្ជាទិញ ក ការ VPS or ម៉ាស៊ីនបម្រើឧទ្ទិស ដំណើរការដោយប្រព័ន្ធប្រតិបត្តិការ CentOS ឬ ArchLinux ។ សកម្មភាពទាំងអស់នៅក្នុងឧទាហរណ៍នឹងត្រូវបានអនុវត្តនៅលើម៉ាស៊ីនមេដែលខិតខំប្រឹងប្រែងដែលដំណើរការដោយប្រព័ន្ធប្រតិបត្តិការ CentOS7 ជាមួយនឹងអាសយដ្ឋាន IP សាធារណៈឋិតិវន្តតែមួយគត់។
ការដំឡើង
ជំហានទី 1
ប្រូកស៊ី 3 ត្រូវបានដំឡើងដោយផ្ទាល់ពីប្រភព។ gcc នឹងត្រូវបានប្រើជាអ្នកចងក្រង។ យើងភ្ជាប់ទៅ server ជា root (superuser) ហើយដំឡើង compiler ។
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
យើងបង្កើតថតឯកសារ ហើយចម្លងឯកសារ 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
តែមួយគត់ដែលយើងត្រូវការគឺដើម្បីបើកដំណើរការ 3proxy ដែលបានកំណត់រចនាសម្ព័ន្ធ បន្ថែមវាទៅ autostart និងក៏បើកច្រកនៅក្នុងជញ្ជាំងភ្លើងផងដែរ។
បន្ថែមវាទៅ autostart បើកដំណើរការ និងពិនិត្យមើលស្ថានភាព៖
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 ជាការកំណត់រចនាសម្ព័ន្ធសាកល្បង និងបានដំឡើងជាមុន ជញ្ជាំងភ្លើង-cmd ជាជញ្ជាំងភ្លើង។
ការកាប់ឈើ
ចុងក្រោយ ប៉ុន្តែមិនមានបញ្ហាសំខាន់តិចទាក់ទងនឹងការផ្ទុកឯកសារទេ។ 3proxy ចំណាយពេលច្រើន mb កំឡុងពេលដំឡើង ប៉ុន្តែទំហំអាចត្រូវបានកើនឡើងយ៉ាងខ្លាំងតាមរយៈការចូលជាមួយនឹងពេលវេលាដែលកន្លងផុតទៅ។ ការពិតគឺថាអ្នកប្រើប្រាស់ជាច្រើនបើកការកត់ត្រាកំណត់ហេតុក្នុងឯកសារដាច់ដោយឡែក ប៉ុន្តែកុំរៀបចំការបង្វិល និងកុំលុបកំណត់ហេតុដែលមិនពាក់ព័ន្ធ។ ជម្រើសបីអាចត្រូវបានប្រើសម្រាប់ដំណោះស្រាយនៃបញ្ហានេះ:
- បើកដំណើរការកំណត់ហេតុ;
- ម្តងម្កាលលុបកំណត់ហេតុដែលមិនពាក់ព័ន្ធ;
- បើកការបង្វិល ដូចដែលត្រូវបានធ្វើរួចនៅក្នុងការកំណត់ខាងលើ។ ឧទាហរណ៍ "បង្វិល 30" នៅក្នុងឯកសារកំណត់រចនាសម្ព័ន្ធមានន័យថា 3proxy នឹងរក្សាទុកតែឯកសារចុងក្រោយបំផុត 30 ប៉ុណ្ណោះ។
សន្និដ្ឋាន
ការដំឡើង និងកំណត់រចនាសម្ព័ន្ធ 3proxy នៅលើប្រព័ន្ធប្រតិបត្តិការ CentOS និង ArchLinux គឺជាកិច្ចការដ៏សាមញ្ញមួយ ប៉ុន្តែនៅពេលជាមួយគ្នានោះកិច្ចការដ៏មានប្រសិទ្ធភាព។ អត្ថបទបានគ្របដណ្តប់ជំហានដើម្បីដំឡើងកញ្ចប់ចាំបាច់ កំណត់រចនាសម្ព័ន្ធឯកសារ និងបើកដំណើរការសេវាកម្ម។ ចំណេះដឹងដែលទទួលបាននឹងអនុញ្ញាតឱ្យអ្នកដំឡើង និងកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនមេប្រូកស៊ីដោយខ្លួនឯងដោយគ្មានការលំបាកណាមួយឡើយ។