Ավելի ու ավելի շատ մարդիկ օգտագործում են իրենց սեփական VPN-ը՝ վճարովի, պատրաստի ծառայությունների փոխարեն. այն ավելի էժան է, ավելի լավ է գաղտնիության համար և ձեզ լիարժեք վերահսկողություն է տալիս սերվերի նկատմամբ: Ագրեսիվ ցանցային արգելափակում ունեցող տարածաշրջանների համար ամենաարդյունավետ տարբերակներից մեկը AmneziaWG-ն է՝ WireGuard-ի վրա հիմնված Amnezia նախագծի կողմից մշակված արձանագրություն:
Դասական WireGuard-ը արագ և հուսալի է, բայց այն ունի ֆիքսված փաթեթային կառուցվածք և կանխատեսելի ձեռքսեղմում, որը DPI (Deep Packet Inspection) համակարգերը կարող են հուսալիորեն մատնահետք պահել և արգելափակել: AmneziaWG-ն լուծում է այս խնդիրը. այն ավելացնում է անցանկալի փաթեթներ սովորական WireGuard միացմանը, պատահականորեն տարբերակում է վերնագրերը և փոխում ձեռքսեղմման դաշտերի չափը՝ այդպիսով WireGuard-ի բնորոշ ստորագրությունը անհետանում է, և երթևեկությունը այլևս չի առանձնանում սովորական UDP երթևեկությունից:
Արդեն աշխատացնո՞ւմ եք դասական թունել և մտածում եք՝ արժե՞ այն փոխել։ Համեմատեք սա Linux-ի վրա VPN սերվերի կարգավորման մեջ՝ PPTP, թե՞ OpenVPN, պարզ OpenVPN/PPTP կարգավորման հետ , կամ սովորական WireGuard-ի հետ (առանց խճճվածքի)՝ « Ինչպես կարգավորել Wireguard VPN-ը ձեր սերվերի վրա» բաժնում ։
Այս ուղեցույցը AmneziaWG սերվերը կարգավորում է ձեռքով՝ առանց Docker-ի կամ վեբ վահանակի՝ VPS-ի վրա հնարավոր ամենափոքր տարածքը, որը կարգավորվում է ամբողջությամբ հրամանի տողից: Այն ամենաթեթև տարբերակն է և լավ է աշխատում բյուջետային VPS-ի վրա, քանի որ այն կարիք չունի GUI-ի, տվյալների բազայի և հակադարձ պրոքսիի: Ստորև բերված օրինակելի սերվերը օգտագործում է տեղապահ IP հասցե՝ փոխարինեք այն ձեր սեփական VPS-ի հասցեով, որտեղ այն հայտնվում է:
Ձեզ անհրաժեշտ կլինի՝ Ubuntu 22.04/24.04 կամ Debian 11/12 օպերացիոն համակարգերով աշխատող VPS, root մուտք և ձեր VPS-ի IP հասցեն: Դոմեյնի անունը պարտադիր չէ. AmneziaWG-ն չի օգտագործում վկայականներ, ուստի չկա ոչինչ երկարաձգելու և ոչինչ DPI-ի համար՝ որպես TLS ձեռքսեղմում նշելու համար:
Դեռևս սերվեր չունե՞ք։ Տեսեք, թե ինչպես պատվիրել սերվեր
Միացում սերվերին
Windows (PuTTY)
Բացեք PuTTY-ն, մուտքագրեք ձեր VPS IP հասցեն Host Name դաշտում, սահմանեք պորտը 22-ի վրա և մուտք գործեք որպես root՝ օգտագործելով ձեր VPS մատակարարի կողմից ձեզ ուղարկված գաղտնաբառը։
Սերվերի IP հասցե՝ ձեր IP հասցեն
մուտք գործել որպես՝ root
Գաղտնաբառ՝ ձեր գաղտնաբառը
1. Բացեք PuTTY-ն, մուտքագրեք ձեր VPS IP հասցեն Host Name դաշտում:
2. Սահմանեք միացքը 22-ի վրա։
3. Մուտք գործեք որպես root:
4. Օգտագործելով ձեր VPS մատակարարի կողմից ձեզ էլեկտրոնային փոստով ուղարկված գաղտնաբառը։
Արդյունքը պետք է լինի հետևյալը.
PuTTY/SSH-ի միջոցով միանալու մանրամասն ուղեցույցի համար տե՛ս՝ Ինչպես միանալ Linux սերվերին SSH-ի միջոցով։
Linux / macOS (տերմինալ)
ssh root@YOUR_SERVER_IP
Ստորև նշված բոլոր հրամանները կատարվում են սերվերի վրա՝ այս նույն SSH սեսիայում, որը ներառում է 2-ից 5 բաժինները, գումարած 9-րդ բաժնում սերվերի կողմից ստուգումները: 6-8 բաժինները (VPN հաճախորդի տեղադրում և կարգաբերում) տեղի են ունենում ձեր սեփական Windows/macOS/Linux սարքի վրա, քանի որ դա այն սարքն է, որի վրա VPN-ը պետք է աշխատի. այդ բաժիններից յուրաքանչյուրը հստակ նշում է, թե որ գծերը, եթե կան, դեռևս շփվում են սերվերի հետ:
Սպասարկիչի պատրաստում
Թարմացրեք համակարգը
Նախքան որևէ բան տեղադրելը, թարմացրեք փաթեթների ցանկը և թարմացրեք տեղադրված փաթեթները։
apt update -y && apt upgrade -y
Եթե սա թարմացնում է միջուկը, վերագործարկեք համակարգիչը նախքան 3-րդ բաժնում AmneziaWG միջուկի մոդուլը կառուցելը, հակառակ դեպքում DKMS-ը կարող է կառուցել սխալ միջուկի վերնագրերի վրա, և մոդուլը չի բեռնվի։ (Apt-ի և Linux փաթեթների կառավարիչների աշխատանքի վերաբերյալ թարմացման համար տե՛ս Linux փաթեթների կառավարիչներ ): Ստուգեք՝
cat /var/run/reboot-required
Միացնել IP վերահասցեավորումը
Այս կարգավորումը թույլ է տալիս սերվերին հաճախորդների փաթեթները փոխանցել ինտերնետին. առանց դրա թունելը կբացվի, բայց դրա միջով երթևեկություն չի անցնի։
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system
Առաջին հրամանը ստեղծում է նվիրված կարգավորման ֆայլ, երկրորդը կիրառում է այն առանց սերվերը վերագործարկելու։
Կարգավորեք firewall-ը (UFW)
UFW կանոնների մասին ավելին իմանալու համար տե՛ս Linux-ում Firewall-ի կարգավորումը ։
Բացեք ձեզ անհրաժեշտ երկու պորտերը՝ 22/tcp SSH-ի համար (եթե բաց թողնեք այս կանոնը, կարող եք կորցնել սերվերին մուտքը) և 42666/udp պորտը, որը AmneziaWG-ն կօգտագործի։
apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status
Երկու կանոններն էլ պետք է ufw կարգավիճակի արտածման մեջ ցուցադրվեն որպես ALLOW։
AmneziaWG-ի տեղադրում
Debian-ը Ubuntu-ի ոճի PPA-ները ուղղակիորեն չի աջակցում, ուստի պահոցը պետք է ավելացվի ձեռքով, այլ ոչ թե add-apt-repository-ի միջոցով: Սա նույն կերպ է աշխատում Ubuntu-ի վրա:
Ձեռքով ավելացրեք պահոցը
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list
Ավելացնել GPG ստորագրման բանալին
Օգտագործեք dearmored keyring ֆայլը հնացած apt-key հրամանի փոխարեն և ստացեք PPA-ի իրական ստորագրման բանալին (մատնահետք 75C9DD72C799870E310542E24166F2C257290828):
apt install -y gnupg2
gpg --keyserver keyserver.ubuntu.com --recv-keys 57290828
gpg --export 57290828 | tee /usr/share/keyrings/amnezia.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/amnezia.gpg] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list
Թարմացնել և տեղադրել
apt update
apt install -y amneziawg
Ստուգեք մոդուլի բեռնվածությունը
modprobe amneziawg
lsmod | grep amnezia
Սերվերի և հաճախորդի կոնֆիգուրացիայի ստեղծում
Տեղադրեք օժանդակ կոմունալ ծրագրեր
Տեղադրեք qrcode կախվածությունը, այնուհետև ստեղծեք նվիրված աշխատանքային գրացուցակ և ներբեռնեք համայնքի կոնֆիգուրատորի սկրիպտը դրա մեջ։
apt install -y python3-qrcode
mkdir -p ~/awg && cd ~/awg
wget -O awgcfg.py \
https://gist.githubusercontent.com/remittor/8c3d9ff293b2ba4b13c367cc1a69f9eb/raw/awgcfg.py
Եթե python3-qrcode-ը հասանելի չէ ձեր բաշխման պահոցներում, օգտագործեք pip3 install qrcode --break-system-packages հրամանը (դրոշը պարտադիր է Debian 12+/Ubuntu 24.04-ում, որը լռելյայնորեն արգելափակում է չկառավարվող pip տեղադրումները): Մի՛ գործարկեք երկու տեղադրումներն էլ՝ ընտրեք մեկը:
Ստեղծեք սերվերի կոնֆիգուրացիան
Ստեղծեք /etc/amnezia/amneziawg/awg0.conf ֆայլը։ Կարող եք թունելի ներքին ենթացանցը և UDP պորտը թողնել իրենց լռելյայն արժեքներին կամ սահմանել ձեր սեփականը։
python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
-i 10.10.8.1/24 -p 42666
-i դրոշը սահմանում է թունելի ներքին ցանցային հասցեն և դիմակը, իսկ -p-ը՝ սերվերի UDP պորտը (նույնը, որը բացվել է 2.3 քայլում):
Ստեղծեք հաճախորդի կարգավորման ձևանմուշ
python3 awgcfg.py --create
Սա պահպանում է ձևանմուշը նույն թղթապանակում, որտեղից կառուցվում են անհատական հաճախորդի կոնֆիգուրացիաները. այն արդեն ներառում է սերվերի հանրային բանալին, դրա IP հասցեն և խեղաթյուրման պարամետրերը (Jc, Jmin, Jmax, S1, S2, H1–H4), որոնք տարբերակում են AmneziaWG-ն պարզ WireGuard-ից։
Ավելացնել հաճախորդներ
Ստեղծեք մեկ գրառում յուրաքանչյուր սարքի համար՝ անունը կարող է լինել ցանկացած, օրինակ՝ սարքի անունը՝
python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Ստեղծեք հաճախորդի ֆայլեր և QR կոդեր
python3 awgcfg.py -c -q
~/awg թղթապանակը այժմ կպարունակի laptop.conf և phone.conf ֆայլեր, ինչպես նաև համապատասխան PNG QR կոդեր, որոնք կարող եք սկանավորել անմիջապես բջջային հավելվածում։
~/awg թղթապանակը այժմ կպարունակի laptop.conf և phone.conf ֆայլեր, ինչպես նաև համապատասխան PNG QR կոդեր, որոնք կարող եք սկանավորել անմիջապես բջջային հավելվածում։
Ծառայության մեկնարկը և ավտոմատ մեկնարկի միացումը
Բացեք awg0 ինտերֆեյսը և միացրեք այն ավտոմատ կերպով գործարկել վերագործարկման ժամանակ։
systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]
Կարգավիճակը պետք է ցույց տա ակտիվ (անջատված)՝ սարքը միացված լինելով բեռնման ժամանակ։ Եթե կոնսոլը կարծես «կախված» է, ցուցադրելով գրանցամատյանները, սեղմեք Q՝ դուրս գալու համար։
Ստուգեք ակտիվ գործընկերների և յուրաքանչյուր գործընկերի միջև տրաֆիկի ցանկը՝ օգտագործելով հետևյալը.
awg show
Միացում Windows-ից
Այս բաժնում ամեն ինչ տեղի է ունենում ձեր Windows համակարգչի վրա, այլ ոչ թե SSH-ի միջոցով՝ VPN հաճախորդը պետք է տեղադրվի այն սարքի վրա, որն իրականում կօգտագործի թունելը: Սերվերին վերաբերող միակ քայլը 6.2 տարբերակում scp ներբեռնումն է, և նույնիսկ այդ հրամանը մուտքագրվում է ձեր համակարգչի վրա՝ ներբեռնելով ֆայլը, որը սերվերն արդեն ստեղծել է 4-րդ բաժնում:
Տեղադրեք հաճախորդը
AmneziaWG-ն ունի Windows-ի համար նախատեսված առանձին հավելված՝ դրա ինտերֆեյսը կրկնում է ստանդարտ WireGuard հաճախորդը, բայց հասկանում է խեղաթյուրման պարամետրերը: Ներբեռնեք տեղադրիչը նախագծի պաշտոնական պահոցից՝
https://github.com/amnezia-vpn/amneziawg-windows-client/releases
Վերևում գտնվող հղումը Windows հաճախորդի թարմացված տարբերակի էջն է՝ այնտեղից ներբեռնեք վերջին .msi/.exe ֆայլը։ Սա էջ է, որը պետք է բացվի ձեր զննարկիչում, այլ ոչ թե հրաման՝ տերմինալում տեղադրելու համար։
Գործարկեք տեղադրիչը և քայլ առ քայլ կարդացեք կարգավորման օգնականը. լռելյայն կարգավորումները փոխելու կարիք չկա։
Ներմուծել կարգավորումը
Պատճենեք հաճախորդի կարգավորման ֆայլը սերվերից ձեր համակարգիչ՝ ամենահեշտ ձևը scp-ն է, գործարկեք PowerShell-ում ձեր համակարգչում, այլ ոչ թե սերվերում։
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
AmneziaWG հավելվածում սեղմեք «Ներմուծել թունել(ներ) ֆայլից», ընտրեք laptop.conf և միացրեք նոր թունելի կողքին գտնվող անջատիչը։
Միացում macOS-ից
Գոյություն ունեն երկու աջակցվող տարբերակ՝
- AmneziaWG (Mac App Store). թեթև հաճախորդ, աշխատում է macOS 12 և ավելի նոր տարբերակների վրա: App Store-ում որոնեք «AmneziaWG», տեղադրեք այն, այնուհետև օգտագործեք «Ներմուծել թունել(ներ) ֆայլից» հրամանը և ընտրեք ձեր .conf ֆայլը՝ նույն աշխատանքային հոսքը, ինչ Windows հաճախորդը:
- AmneziaVPN (ամբողջական հավելված, macOS 14+): ներբեռնեք .pkg ֆայլը github.com/amnezia-vpn/amnezia-client/releases/latest կայքից, եթե նախընտրում եք օգտագործել լիարժեք Amnezia հավելվածը՝ միայն թեթև AmneziaWG հաճախորդի փոխարեն:
Անհրաժեշտության դեպքում նախ պատճենեք հաճախորդի կոնֆիգուրացիան, ինչպես 6.2 քայլում։
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
Միացում Linux-ից
Linux-ի աշխատասեղանի կամ նոութբուքի վրա դուք ունեք երկու տարբերակ.
- Գրաֆիկական ինտերֆեյս. տեղադրեք AmneziaVPN-ի ամբողջական աշխատասեղանի հաճախորդը github.com/amnezia-vpn/amnezia-client/releases կայքից, այնուհետև ներմուծեք .conf ֆայլը նույն կերպ, ինչպես Windows/macOS-ում։
- CLI, օգտագործելով սերվերի վրա օգտագործվող նույն amneziawg գործիքները (awg / awg-quick):
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0
Գործարկեք այս կոդը՝ անջատվելու համար։
awg-quick down awg0
Մուտք գործելիս թունելը ավտոմատ կերպով բացելու համար միացրեք այն որպես ծառայություն՝
systemctl enable --now awg-quick@awg0
Միացման ստուգում
Երբ թունելը ակտիվ է 6-րդ, 7-րդ կամ 8-րդ բաժիններից, վերադարձեք ձեր սեփական սարքին (ոչ թե SSH սեսիային) և բացեք ցանկացած «ի՞նչ է իմ IP-ն» ստուգիչ զննարկիչում. ցուցադրված հասցեն պետք է համընկնի ձեր VPS-ի IP հասցեի հետ։ SSH սեսիայից ստուգելու համար սերվերի վրա գործարկեք awg show հրամանը և համոզվեք, որ հաճախորդի peer-ը ցույց է տալիս վերջերս ձեռքսեղմում և ոչ զրոյական երթևեկություն։
Հղում
|
Դաշտ |
Արժեք |
|
հասցե |
YOUR_TUNNEL_IP (հաճախորդի հասցեն թունելի ներսում, օրինակ՝ 10.10.8.2/32 — ավտոմատ կերպով նշանակվում է, երբ հաճախորդը ավելացվել է 4.4 քայլում) |
|
Վերջնակետ |
YOUR_SERVER_IP:42666 (Սերվերի արտաքին IP հասցեն և UDP միացքը, որին միանում է հաճախորդը): |
|
DNS |
8.8.8.8 |
|
Ջկ / Ջմին / Ջմաքս |
«Ձեռքսեղմումից առաջ ուղարկված «անպետք» փաթեթների քանակը և չափը՝ կարող են տարբեր լինել սերվերի և հաճախորդի միջև՝ առանց կապը խզելու |
|
S1 / S2 |
ձեռքսեղմման լրացման դաշտերի չափը՝ պետք է համապատասխանի սերվերի և յուրաքանչյուր հաճախորդի միջև բայթ առ բայթի չափին |
|
H1–H4 |
փաթեթային տիպի վերնագրեր, որոնք արձանագրությունը քողարկում են որպես սովորական երթևեկություն՝ պետք է նաև ճշգրտորեն համընկնեն և եզակի լինեն միմյանցից |
Միայն S1/S2-ը և H1–H4-ը պետք է նույնական լինեն թունելի երկու ծայրերում։ Jc-ն, Jmin-ը և Jmax-ը վերաբերում են միայն նրան, թե ինչպես է յուրաքանչյուր կողմ լրացնում իր սեփական ելքային անցանկալի երթևեկությունը, ուստի հաճախորդի և սերվերի արժեքները կարող են արդարացիորեն տարբերվել, ինչպես վերը նշված օրինակում։
Եզրափակում
Այս ուղեցույցին հետևելու դեպքում ձեր VPS-ը կաշխատի իր սեփական AmneziaWG սերվերով՝ WireGuard-ի հետ համատեղելի արձանագրություն՝ երթևեկության խցանումով, որը DPI համակարգերի համար զգալիորեն ավելի դժվար է տարբերակել սովորական UDP երթևեկությունից, քան սովորական WireGuard-ը: Ծառայությունը գործում է որպես systemd միավոր awg-quick@awg0 և գոյատևում է սերվերի վերագործարկումից հետո՝ առանց ձեր կողմից որևէ գործողության:
Արդյունքում ստացված .conf ֆայլերը և QR կոդերը ~/awg-ում աշխատում են ոչ միայն Windows հաճախորդի հետ, այլև կարող են ներմուծվել AmneziaWG կամ Amnezia հավելվածներ Android, iOS, macOS և Linux-ի, ինչպես նաև Keenetic և OpenWrt ռոուտերների համար։
Կարող եք ցանկացած պահի ավելացնել նոր հաճախորդներ՝ կրկնելով 4.4–4.5 քայլերը (python3 awgcfg.py -a "name", ապա awgcfg.py -c -q) և վերագործարկելով ինտերֆեյսը՝ օգտագործելով systemctl restart [email protected] հրամանը ։
Մի քանի սովորություններ, որոնք արժե պահպանել սերվերի գործարկումից հետո.
- Պահեք համակարգը թարմացված։ Պարբերաբար վերագործարկեք apt update -y և& apt upgrade -y հրամանները և վերագործարկեք միջուկի թարմացումներից հետո, որպեսզի DKMS-ը վերակառուցի amneziawg մոդուլը նոր միջուկի հիման վրա։
- Պահուստավորեք ~/awg ֆայլը։ Այն awg0.conf ֆայլում պահում է յուրաքանչյուր հաճախորդի անձնական բանալին և սերվերի սեփական բանալիների զույգը։ Դրա կորուստը նշանակում է վերականգնել կարգավորումները յուրաքանչյուր սարքի համար։
- Անհապաղ ջնջեք կորած սարքերը։ Հեռացրեք համապատասխան [Peer] բլոկը /etc/amnezia/amneziawg/awg0.conf ֆայլից և գործարկեք systemctl restart հրամանը։ [էլեկտրոնային փոստով պաշտպանված].
Եթե կապը չի հաստատվում, ստուգեք հերթականությունը՝
- ծառայության կարգավիճակը (systemctl կարգավիճակը [էլեկտրոնային փոստով պաշտպանված])
- firewall-ի կանոնները (ufw կարգավիճակ — 42666/udp պորտը պետք է բաց լինի)
- DKMS/մոդուլի կարգավիճակը, եթե ինտերֆեյսը նույնիսկ չի գործարկվում (dkms կարգավիճակ, lsmod | grep amnezia)
- սերվերի վրա ակտիվ հասակակիցների ցանկը (awg show)
- որ հաճախորդի կոնֆիգուրացիան մատնանշում է ճիշտ արտաքին սերվերի IP հասցեն
Համեմատե՞լ AmneziaWG-ն այլ տարբերակների հետ նախքան գործարք կնքելը: Տես՝ VPN սերվերի կարգավորում Linux-ում. PPTP, թե՞ OpenVPN: և Ինչպես կարգավորել Wireguard VPN-ը ձեր սերվերի վրա : Եթե ձեզ անհրաժեշտ է միայն պարզ պրոքսի, այլ ոչ թե ամբողջական VPN թունել, CentOS/ArchLinux-ում 3 պրոքսի կարգավորումն ավելի թեթև այլընտրանք է: VPN-ի գործարկումից հետո սերվերի ընդհանուր ամրապնդման համար տես՝ Linux օգտատերեր. կառավարում և թույլտվություններ :