ဤဆောင်းပါးတွင် ArchLinux/CentOS လည်ပတ်မှုစနစ်မှ ပံ့ပိုးပေးထားသော သီးခြားဆာဗာတစ်ခုတွင် 3proxy ဖွဲ့စည်းမှုပုံစံကို ပြသပါမည်။ 3proxy သည် အသက်ဆိုင်ဆုံးနှင့် လုပ်ဆောင်နိုင်သော ကိရိယာများထဲမှ တစ်ခုဖြစ်သည်။ ၎င်းသည် အမျိုးမျိုးသော ပရိုတိုကောများကို ပံ့ပိုးပေးသည်- HTTP၊ HTTPS၊ FTP၊ SOCKS နှင့် အခြားအရာများ။ မိနစ်အနည်းငယ်အတွင်း သင့်ကိုယ်ပိုင် proxy ဆာဗာကို စဖွင့်သတ်မှတ်ရန် ကူညီပေးပါမည်။
ဆောင်းပါးတွင် အသုံးဝင်ပုံထည့်သွင်းခြင်းနှင့် ၎င်း၏နောက်ထပ်ဖွဲ့စည်းပုံဆိုင်ရာ အဆင့်ဆင့်လမ်းညွှန်ချက်ပါရှိသည်။ တရားဝင်ရင်းမြစ်တစ်ခုမှ တပ်ဆင်ခြင်း၊ ဖွဲ့စည်းမှုဖိုင်များကို စနစ်ထည့်သွင်းခြင်း၊ စံမဟုတ်သော ဆိပ်ကမ်းများဖွင့်ခြင်းစသည့် ပြဿနာများကို ထည့်သွင်းစဉ်းစားထားပြီး ဘုံအမှားများကို ဖော်ပြထားပြီး ၎င်းတို့ကို ဖြေရှင်းရန်အတွက် လက်တွေ့ကျသော အကြံပြုချက်များကို ပေးထားသည်။ မစတင်မီ၊ သင်တစ်ဦးကို မှာကြားရပါမည်။ VPS or dedicated server CentOS သို့မဟုတ် ArchLinux လည်ပတ်မှုစနစ်မှ ပံ့ပိုးပေးသည်။ နမူနာရှိ လုပ်ဆောင်ချက်များအားလုံးကို သီးသန့်တည်ရှိနေသော အများသူငှာ IP လိပ်စာတစ်ခုဖြင့် CentOS7 လည်ပတ်မှုစနစ်မှ ပံ့ပိုးပေးထားသည့် သီးခြားဆာဗာတစ်ခုပေါ်တွင် လုပ်ဆောင်မည်ဖြစ်သည်။
installation
အဆင့် 1
3proxy ကို ရင်းမြစ်များမှ တိုက်ရိုက် ထည့်သွင်းထားသည်။ gcc compiler အဖြစ် အသုံးပြုပါမည်။ ကျွန်ုပ်တို့သည် root (superuser) အဖြစ် server သို့ချိတ်ဆက်ပြီး 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
ကျွန်ုပ်တို့သည် ကတ်တလောက်ဖြင့် အလုပ်လုပ်ရန် အသုံးပြုသူတစ်ဦးကို ဖန်တီးပါသည်။ ဤကိစ္စတွင်အသုံးပြုသူအမည်သည် 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
ယခု command ကိုအသုံးပြု၍ configuration file တစ်ခုကိုဖန်တီးကြပါစို့။
touch /etc/3proxy/3proxy.cfg
လိုအပ်ပါက၊ အမြစ်အသုံးပြုသူအတွက် ဖွဲ့စည်းမှုဖိုင်တွင် ခွင့်ပြုချက်များကို သင်သတ်မှတ်နိုင်သည်။ ဒီအဆင့်က မလိုအပ်ပါဘူး၊ ဒါပေမယ့် ကာကွယ်မှု ထပ်ထည့်မယ်
chmod 600 /etc/3proxy/3proxy.cfg
3proxy ဖွဲ့စည်းမှု
အဆင့် 6
စောစောကဖန်တီးခဲ့တဲ့ configuration file ကို မှန်မှန်ကန်ကန်ဖြည့်ဖို့ လိုအပ်တယ်။ ပထမဦးစွာ command ဖြင့်အသုံးပြုသူ၏ uid နှင့် gid ကိုရှာဖွေပါ။
id 3proxyuser
ကျွန်ုပ်တို့၏အခြေအနေတွင်၊ ဤအရာများသည် အောက်ပါတန်ဖိုးများဖြစ်သည်။
configuration file ကိုဖြည့်ရန်၊ အသင့်လုပ်ထားသော configurations ကိုယူနိုင်သည် သို့မဟုတ် ၎င်းကိုသုံးနိုင်သည်။ စာရွက်စာတမ်းများ တရားဝင် website တွင်။ နမူနာတစ်ခုပါရှိသော ဖိုင်ကိုလည်း မူရင်းအတိုင်း ကြိုတင်ထည့်သွင်းထားပြီးဖြစ်သည်။ လမ်းတလျှောက် တွေ့နိုင်သည်- /cfg/3proxy.cfg.sample
ဥပမာအားဖြင့်၊ ကျွန်ုပ်တို့သည် ဖွဲ့စည်းမှုပုံစံ 2 မျိုးကို သုံးသပ်ပါမည်။ သစ်ခုတ်ခြင်းမရှိဘဲ. စာကြောင်းတစ်ခုစီကို မှတ်ချက်များဖြင့် တွဲပေးမည် (၎င်းတို့ကို “#” သင်္ကေတဖြင့် အမှတ်အသားပြုထားသည်။
ဒါက အဆင်သင့်လုပ်ထားတဲ့ config ရဲ့ ဥပမာတစ်ခုပါ။ သစ်ခုတ်ခြင်းမရှိဘဲ:
# 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
မှတ်တမ်းမတင်ဘဲ ဖွဲ့စည်းမှုပုံစံဖိုင်တစ်ခု၏ ရွေးချယ်မှုကို ကျွန်ုပ်တို့ ထည့်သွင်းစဉ်းစားခဲ့သည်။ ယခုကျွန်ုပ်တို့နှင့်အတူ configuration file ကိုဖန်တီးပါလိမ့်မယ်။ မှတ်တမ်းနှင့် အသုံးပြုသူ ခွင့်ပြုချက်; ဆာဗာတည်ဆောက်မှုအတွင်း ၎င်းကို နောက်ပိုင်းတွင် အသုံးပြုမည်ဖြစ်သည်။.
ဆာဗာသည် ပုံမှန်မဟုတ်သော ဆိပ်ကမ်းများတွင်ပင် ရှာဖွေတွေ့ရှိနိုင်သောကြောင့် ခွင့်ပြုချက်အချက်အလက်ကို ပေးဆောင်ကြောင်း သေချာပါစေ။.
# 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 configuration ကို command ဖြင့် update လုပ်ရန်လိုအပ်သည်-
systemctl daemon-reload
အဆင့် 8
ကျွန်ုပ်တို့လိုအပ်သည်မှာ configured 3proxy ကိုဖွင့်ရန်၊ ၎င်းကို autostart သို့ထည့်ရန်နှင့် firewall အတွင်းရှိ port များကိုဖွင့်ရန်ဖြစ်သည်။
၎င်းကို အလိုအလျောက်စတင်ရန်၊ စတင်ရန်နှင့် အခြေအနေကို စစ်ဆေးရန်-
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
အခြေအနေကို စစ်ဆေးပြီးနောက်၊ 3proxy ကို အောင်မြင်စွာ စတင်လိုက်သည်ဟူသော အချက်အလက်ကို ကျွန်ုပ်တို့ တွေ့ရသည်-
တစ်ခုတည်းသောအရာမှာ ports ကိုဖွင့်ရန်ဖြစ်သည်
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
လိုအပ်ပါက ဆာဗာကို ပြန်လည်စတင်ပါ။ command ဖြင့် port များကိုဖွင့်ခြင်းရှိမရှိစစ်ဆေးရန်ဖြစ်နိုင်သည်-
firewall-cmd --list-all
ဖြစ်သင့်သည်-
ကျွန်ုပ်တို့မြင်ရသည့်အတိုင်း၊ ဆိပ်ကမ်းနှစ်ခုလုံးကို အောင်မြင်စွာဖွင့်ပြီး နားထောင်နေပါသည်။ http ချိတ်ဆက်မှုသည် ပထမအပေါက်တွင်ရှိပြီး ခြေအိတ်များသည် ဒုတိယအပေါက်တွင်ရှိသည်။
အဆင်ပြေသောဝန်ဆောင်မှုမှတဆင့်ချိတ်ဆက်မှုကိုစစ်ဆေးပါ
အရာအားလုံးလည်ပတ်နေပါတယ်။ ငါတို့အပိုင်း၊ လော့ဂ်အင်/စကားဝှက် ခွင့်ပြုချက်မရှိဘဲ လုံခြုံမှုမရှိသော ချိတ်ဆက်မှုအား အသုံးပြုရန် အကြံပြုထားခြင်း မရှိဘဲ၊ ပုံမှန် port အစုံလိုက်ဖြင့်၊. configuration file ကို set up လုပ်နေစဉ်၊ လော့ဂ်အင်ကို သတ်မှတ်ပြီး ရှုပ်ထွေးသော စကားဝှက်တစ်ခု ဖန်တီးပြီး ဆိပ်ကမ်းများကို စံမဟုတ်သော အရာများသို့လည်း ပြောင်းလဲပါ။. ထူးခြားသောကိစ္စများတွင်၊ IP လိပ်စာခွင့်ပြုချက်ကို အသုံးပြုနိုင်သည်။
ဘုံပြproblemsနာများ
တစ်ခုခုမှားသွားပြီး proxy အလုပ်မလုပ်ဘူးလား။ 3proxy configuration ကို မှားယွင်းစွာ လုပ်ဆောင်ခဲ့ခြင်း ဖြစ်နိုင်သည်။ utility ကို install လုပ်ပြီး configure လုပ်နေစဉ်မှာ အဖြစ်အများဆုံး ပြဿနာတွေနဲ့ သူတို့ရဲ့ ဖြေရှင်းနည်းတွေကို စဉ်းစားကြည့်ရအောင်။
ဆက်သွယ်မှုမရှိပါ
အသုံးပြုသူများစွာအတွက် အဖြစ်များဆုံးပြဿနာမှာ configuration ဖိုင်များကို မှန်ကန်စွာပြင်ဆင်ထားပုံပေါ်သည့်အခါ လက်လှမ်းမမီနိုင်သော ချိတ်ဆက်မှုတစ်ခုဖြစ်သည်။ ဆက်တင်များအားလုံးကို မှန်ကန်စွာ စီစဉ်သတ်မှတ်ထားကြောင်း သေချာပါက၊ hosting ဝန်ဆောင်မှုပေးသူက ရွေးချယ်ထားသော ပို့တ်ကို ကန့်သတ်မထားဘဲ ဒေတာအားလုံးသည် အလုပ်လုပ်သော ဝန်ဆောင်မှုကို ညွှန်ပြသည်၊ ပြဿနာမှာ Firewall တွင် ရှိနိုင်သည်၊ သို့မဟုတ် အတိအကျပြောရလျှင် ၎င်း၏ မမှန်ကန်သော ဖွဲ့စည်းမှုပုံစံ။ ဥပမာအားဖြင့်၊ တစ်ခုနှင့်တစ်ခု ပဋိပက္ခဖြစ်စေမည့် စနစ်တွင် ထည့်သွင်းထားသည့် ပရိုဂရမ်နှစ်ခုထက်မက ရှိနိုင်သည်။ ပြဿနာကိုဖြေရှင်းရန်၊ သတ်မှတ်ထားသော Firewall တစ်ခုကိုအသုံးပြုရန်လုံလောက်သည်။ iptables သို့မဟုတ် firewall-cmd ကိုသာ ရွေးချယ်ရန် သင့်အား ကျွန်ုပ်တို့ အကြံပြုအပ်ပါသည်။
ဝန်ဆောင်မှုကို မစတင်ပါ။
လိုအပ်သော configuration ဖိုင်များအားလုံးကို စနစ်ထည့်သွင်းပြီးနောက် ဝန်ဆောင်မှုသည် မစတင်ပါ။ ဖွဲ့စည်းမှုအဆင့်တစ်ခု လွတ်သွားသောအခါ၊ သင့်လျော်သောအခွင့်အရေးများကို မပေးဘဲ သို့မဟုတ် ဖွဲ့စည်းမှုဖိုင်များတွင် အသေးစား အမှားအယွင်းတစ်ခု ပြုလုပ်သွားသည့်အခါ ၎င်းသည် ဖြစ်ပေါ်သည်။ ညွှန်ကြားချက်များကို တစ်ဆင့်ပြီးတစ်ဆင့် သေချာလေ့လာရန် သင့်အား အကြံပြုလိုသည်မှာ၊ သင်သည် အဆင့်များထဲမှ တစ်ခုကို လွတ်သွားခြင်းဖြစ်နိုင်သည်။ ဘာမှမကူညီပါက OS ကို ပြန်လည်ထည့်သွင်းပြီး အဆင့်အားလုံးကို အစမှ လိုက်နာရန် အကြံကောင်းဖြစ်ပါမည်။ အသုံးပြုရန်အကြံပြုပါသည်။ နမူနာ စမ်းသပ်ဖွဲ့စည်းမှုတစ်ခုအနေဖြင့် /cfg/3proxy.cfg.sample တွင်တည်ရှိပြီး ကြိုတင်ထည့်သွင်းထားသည် firewall-cmd firewall အဖြစ်။
သစ်ထုတ်လုပ်ရေး
နောက်ဆုံးအချက်မှာ ဖိုင်သိုလှောင်မှုနှင့် ပတ်သက်သော အရေးကြီးသောပြဿနာမရှိပါ။ 3proxy သည် ထည့်သွင်းစဉ်အတွင်း mb များစွာကြာသော်လည်း အချိန်ကြာလာသည်နှင့်အမျှ လော့ဂ်လုပ်ခြင်းဖြင့်သာ အရွယ်အစား သိသိသာသာ တိုးလာနိုင်သည်။ အမှန်မှာ အသုံးပြုသူအများအပြားသည် သီးခြားဖိုင်တစ်ခုတွင် မှတ်တမ်းမှတ်တမ်းတင်ခြင်းကို ဖွင့်ထားသော်လည်း လည်ပတ်မှုကို မသတ်မှတ်ဘဲ မသက်ဆိုင်သောမှတ်တမ်းများကို မဖျက်ပါနှင့်။ ဤပြဿနာကိုဖြေရှင်းရန်အတွက် ရွေးချယ်စရာသုံးခုကို အသုံးပြုနိုင်သည်။
- မှတ်တမ်းကိုဖွင့်ပါ;
- မသက်ဆိုင်သောမှတ်တမ်းများကို အခါအားလျော်စွာ ဖျက်ပါ။
- အပေါ်က configuration တွင် လုပ်ဆောင်ခဲ့သည့်အတိုင်း လှည့်ခြင်းကို ဖွင့်ပါ။ ဥပမာအားဖြင့်၊ configuration file တွင် "rotate 30" ဆိုသည်မှာ 3proxy သည် နောက်ဆုံးထွက်ဖိုင် 30 ကိုသာ သိမ်းဆည်းမည်ကို ဆိုလိုသည်။
ကောက်ချက်
CentOS နှင့် ArchLinux လည်ပတ်မှုစနစ်များပေါ်တွင် 3proxy ကို ထည့်သွင်းခြင်းနှင့် ပြင်ဆင်သတ်မှတ်ခြင်းသည် အတော်လေးရိုးရှင်းသော်လည်း တစ်ချိန်တည်းတွင် ထိရောက်သောအလုပ်ဖြစ်သည်။ ဆောင်းပါးတွင် လိုအပ်သော ပက်ကေ့ဂျ်များ ထည့်သွင်းရန် အဆင့်များ၊ ဖွဲ့စည်းမှုပုံစံဖိုင်များကို စီစဉ်သတ်မှတ်ခြင်းနှင့် ဝန်ဆောင်မှုကို စတင်ရန် အဆင့်များပါရှိသည်။ ရရှိလာသော အသိပညာသည် သင့်အား အခက်အခဲမရှိဘဲ သင့်ပရောက်စီဆာဗာကို သင်ကိုယ်တိုင်ထည့်သွင်းကာ ပြင်ဆင်သတ်မှတ်နိုင်စေမည်ဖြစ်သည်။