VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Сүлжээнд байгаа янз бүрийн эх сурвалжид хандах эрхгүй болох тусам хаалтыг тойрч гарах асуудал улам бүр хурцаар тавигдаж байгаа бөгөөд энэ нь "Блоклохыг хэрхэн хурдан тойрч гарах вэ?" Гэсэн асуулт улам бүр хамааралтай болж байна.

DPI цагаан жагсаалтыг алгасах үр ашгийн сэдвийг өөр тохиолдолд орхиж, түгээмэл блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийг харьцуулцгаая.

Анхаар: Нийтлэлд спойлерын доор маш олон зураг байх болно.

Анхааруулга: Энэ нийтлэл нь "хамгийн тохиромжтой" нөхцөл байдалд байгаа алдартай VPN прокси шийдлүүдийн гүйцэтгэлийг харьцуулсан болно. Энд олж авсан болон тайлбарласан үр дүн нь таны талбайн үр дүнтэй давхцах албагүй. Учир нь хурдны тестийн тоо нь тойрч гарах хэрэгсэл хэр хүчтэй байхаас бус харин таны үйлчилгээ үзүүлэгч үүнийг хэрхэн тохируулж байгаагаас шалтгаална.

Арга зүй

3 VPS-ийг дэлхийн янз бүрийн улс орнуудын үүлэн үйлчилгээ үзүүлэгчээс (DO) худалдаж авсан. Нидерландад 2, Германд 1. Купон зээлийн саналын дагуу дансанд ашиглах боломжтой хүмүүсээс хамгийн үр бүтээлтэй VPS (цөмийн тоогоор) сонгогдсон.

Хувийн iperf3 серверийг Голландын анхны сервер дээр байрлуулсан.

Голландын хоёр дахь сервер дээр блок тойрч гарах хэрэгслүүдийн янз бүрийн серверүүдийг нэг нэгээр нь байрлуулдаг.

VNC болон виртуал ширээний компьютер бүхий ширээний Linux дүрсийг (xubuntu) Германы VPS дээр байрлуулсан. Энэ VPN бол нөхцөлт үйлчлүүлэгч бөгөөд янз бүрийн VPN прокси клиентүүдийг ээлжлэн суулгаж ажиллуулдаг.

Хурдны хэмжилтийг гурван удаа хийдэг, бид дунджаар анхаарлаа хандуулж, 3 хэрэгслийг ашигладаг: Chromium-д вэб хурдны тестээр дамжуулан; fast.com-оор дамжуулан Chromium-д; консолоос iperf3-ээр дамжуулан proxychains4-ээр дамжуулан (та прокси руу iperf3 урсгалыг оруулах шаардлагатай).

"Клиент" серверийн iperf3 шууд холболт нь iperf2 дээр 3 Gbps хурдыг өгдөг бол fastspeedtest дээр арай бага хурдыг өгдөг.

Сонирхолтой уншигч “Яагаад speedtest-cli-г сонгоогүй юм бэ?” гэж асууж магадгүй. тэгээд тэр зөв байх болно.

Speedtest-cli нь надад үл мэдэгдэх шалтгааны улмаас найдваргүй, дамжуулах чадварыг хэмжих хангалтгүй арга болж хувирсан. Гурван дараалсан хэмжилт нь огт өөр гурван үр дүнг өгч болно, эсвэл жишээлбэл, миний VPS портын хурдаас хамаагүй өндөр дамжуулах чадварыг харуулж байна. Асуудал нь миний мушгирсан гар байж магадгүй, гэхдээ ийм багажаар судалгаа хийх боломжгүй юм шиг санагдсан.

Хэмжилтийн гурван аргын үр дүнгийн хувьд (speedtest fastiperf) би iperf үзүүлэлтүүдийг хамгийн үнэн зөв, найдвартай, мөн fastspeedtest-ийг лавлагаа болгон авч үздэг. Гэхдээ зарим тойрч гарах хэрэгслүүд iperf3-ээр дамжуулан 3 хэмжилт хийхийг зөвшөөрдөггүй бөгөөд ийм тохиолдолд та speedtestfast дээр найдаж болно.

хурдны тест нь өөр үр дүнг өгдөгVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Хэрэгсэл

Нийтдээ 24 өөр тойрч гарах хэрэгсэл эсвэл тэдгээрийн хослолыг туршиж үзсэн бөгөөд тус бүрийн хувьд би жижиг тайлбар, тэдэнтэй ажиллах талаархи сэтгэгдлээ өгөх болно. Гэвч үндсэндээ зорилго нь shadowsocks (мөн түүнд зориулсан олон янзын төөрөгдүүлэгч) openVPN болон wireguard-ийн хурдыг харьцуулах явдал байв.

Энэ материалд би "таслахгүйн тулд замын хөдөлгөөнийг хэрхэн яаж нуух вэ" гэсэн асуултыг нарийвчлан авч үзэхгүй, учир нь хаалтыг тойрч гарах нь реактив арга хэмжээ юм - бид цензурын ашигладаг зүйлд дасан зохицож, үүний үндсэн дээр ажилладаг.

Результаты

Стронгсванипсек

Миний сэтгэгдлээс харахад үүнийг тохируулахад маш хялбар бөгөөд нэлээд тогтвортой ажилладаг. Давуу талуудын нэг нь платформ бүр дээр үйлчлүүлэгч хайх шаардлагагүй, үнэхээр хөндлөн платформ юм.

татаж авах - 993 Мбит; байршуулах - 770 МбитVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

SSH туннель

Зөвхөн залхуу хүмүүс SSH-ийг туннелийн хэрэгсэл болгон ашиглах талаар бичээгүй байх. Сул талуудын нэг нь шийдлийн "таяг" юм, i.e. Үүнийг платформ бүрт тохиромжтой, үзэсгэлэнтэй үйлчлүүлэгчээс байрлуулах нь ажиллахгүй болно. Давуу тал нь сайн гүйцэтгэлтэй, сервер дээр юу ч суулгах шаардлагагүй.

татаж авах - 1270 Мбит; байршуулах - 1140 МбитVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Openvpn

OpenVPN-ийг tcp, tcp+sslh, tcp+stunnel, udp гэсэн 4 үйлдлийн горимд туршсан.

OpenVPN серверүүдийг streisand суулгаснаар автоматаар тохируулсан.

Одоогийн байдлаар зөвхөн stunnel горим нь дэвшилтэт DPI-д тэсвэртэй байна. OpenVPN-tcp-ийг stunnel-д боох үед дамжуулах чадвар хэвийн бус нэмэгдсэн шалтгаан нь надад тодорхойгүй байна, шалгалтыг хэд хэдэн гүйлтээр, өөр өөр цаг, өөр өдрүүдэд хийсэн боловч үр дүн нь ижил байв. Магадгүй энэ нь Стрейзандыг байршуулах үед суулгасан сүлжээний стекийн тохиргоотой холбоотой байж магадгүй, яагаад ийм болсон талаар ямар нэгэн санаа байвал бичээрэй.

openvpntcp: татаж авах - 760 Мбит; байршуулах - 659 МбитVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

openvpntcp+sslh: татаж авах - 794 мбит; байршуулах - 693 МбитVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

openvpntcp+stunnel: татаж авах - 619 мбит; байршуулах - 943 МбитVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

openvpnudp: татаж авах - 756 Мбит; байршуулах - 580 МбитVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Нээлттэй холболт

Түгжрэлийг даван туулах хамгийн түгээмэл хэрэгсэл биш бөгөөд энэ нь Стрейзанд багцад багтсан тул бид үүнийг бас туршиж үзэхээр шийдсэн.

татаж авах - 895 Мбит; 715 mbps байршуулахVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Утасны хамгаалалт

Барууны хэрэглэгчдийн дунд түгээмэл хэрэглэгддэг дуулиан шуугиантай хэрэгсэл болох протоколыг боловсруулагчид батлан ​​​​хамгаалах сангаас хөгжүүлэхэд зориулж зарим тэтгэлэг авч байсан. UDP-ээр дамжуулан Линуксийн цөмийн модуль болж ажилладаг. Саяхан windowsios-д зориулсан үйлчлүүлэгчид гарч ирэв.

Үүнийг бүтээгч нь мужид байхгүй байхдаа Netflix-ийг үзэх энгийн бөгөөд хурдан арга гэж санаачилсан.

Тиймээс давуу болон сул талууд. Давуу тал: маш хурдан протокол, суулгах, тохируулахад харьцангуй хялбар. Сул талууд - хөгжүүлэгч нь ноцтой түгжрэлийг даван туулах зорилгоор үүнийг бүтээгээгүй тул wargard-ийг хамгийн энгийн хэрэгслээр амархан илрүүлдэг. wireshark.

wireshark дахь wireguard протоколVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт
татаж авах - 1681 Мбит; 1638 mbps байршуулахVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Сонирхолтой нь, warguard протоколыг гуравдагч этгээдийн tunsafe клиентэд ашигладаг бөгөөд үүнийг ижил warguard сервертэй ашиглахад илүү муу үр дүн өгдөг. Windows wargard клиент ижил үр дүнг харуулах магадлалтай:

tunsafeclient: татаж авах - 1007 Mbits; байршуулах - 1366 МбитVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

OutlineVPN

Outline нь Google-ийн эвлүүлэгээс авсан үзэсгэлэнтэй, тохиромжтой хэрэглэгчийн интерфэйс бүхий shadowox сервер болон үйлчлүүлэгчийн хэрэгжилт юм. Windows дээр тойм клиент нь ердөө л shadowsocks-local (shadowsocks-libev клиент) болон badvpn (машины бүх урсгалыг орон нутгийн оймс прокси руу чиглүүлдэг tun2socks binary) хоёртын файлуудын багц юм.

Shadowsox нэг удаа Хятадын Их галт хананд тэсвэртэй байсан ч сүүлийн үеийн тоймуудаас харахад энэ нь тийм биш болсон. ShadowSox-ээс ялгаатай нь энэ нь нэмэлт өргөтгөлөөр дамжуулан бүдүүлэг холбохыг дэмждэггүй боловч үүнийг сервер болон үйлчлүүлэгчтэй харьцах замаар гараар хийж болно.

татаж авах - 939 Мбит; байршуулах - 930 МбитVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

ShadowsocksR

ShadowsocksR нь Python хэл дээр бичигдсэн анхны Shadowsocks-ийн сэрээ юм. Нэг ёсондоо энэ нь замын хөдөлгөөнийг бүдгэрүүлэх хэд хэдэн аргыг нягт холбосон сүүдрийн хайрцаг юм.

ssR-ийн салаа libev болон өөр зүйл байдаг. Дамжуулах чадвар бага байгаа нь кодын хэлтэй холбоотой байх. Питон дээрх анхны shadowsox нь тийм ч хурдан биш юм.

shadowsocksR: 582 Мбит татаж авах; 541 Мбит байршуулах.VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Shadowsocks

Замын хөдөлгөөнийг санамсаргүй байдлаар хуваарилж, бусад гайхалтай аргаар автомат шинжилгээнд саад учруулдаг хятадын блок тойрч гарах хэрэгсэл. Саяхныг хүртэл GFW-ийг хаагаагүй, одоо зөвхөн UDP реле асаалттай үед л хаагдсан гэж тэд хэлэв.

Хөндлөн платформ (ямар ч платформд зориулсан үйлчлүүлэгчид байдаг), Thor-ийн бүдүүвчтэй төстэй PT-тэй ажиллахыг дэмждэг, хэд хэдэн өөрийн эсвэл түүнд зохицсон бүдүүвчүүд байдаг.

Өөр өөр хэл дээр shadowox клиент болон серверүүдийн олон тооны хэрэгжилтүүд байдаг. Туршилтанд shadowsocks-libev өөр өөр үйлчлүүлэгчид серверийн үүрэг гүйцэтгэсэн. Хамгийн хурдан Линукс клиент нь Shadowsocks2 on go байсан бөгөөд streisand-д өгөгдмөл клиент болгон тараагдсан бөгөөд shadowsocks-windows нь хэр үр дүнтэй болохыг би хэлж чадахгүй. Ихэнх туршилтуудад shadowsocks2-г үйлчлүүлэгч болгон ашигласан. Энэхүү хэрэгжилтийн илт хоцрогдолтой тул цэвэр shadowsocks-libev-ийн туршилтын дэлгэцийн агшинг хийгээгүй.

shadowsocks2: татаж авах - 1876 мбит; байршуулах - 1981 Мбит.VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

shadowsocks-rust: татаж авах - 1605 Mbits; байршуулах - 1895 Мбит.VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Shadowsocks-libev: татаж авах - 1584 Mbits; байршуулах - 1265 Мбит.

Энгийн-obfs

Shadowsox-д зориулсан залгаас нь одоо "элэгдүүлсэн" статустай байгаа ч ажиллаж байна (хэдийгээр үргэлж сайн байдаггүй). Үндсэндээ v2ray-plugin-ээр солигдсон. HTTP вэб залгуураар (мөн та pornhub үзэхгүй байгаа мэт дүр эсгэж очих газрын толгой хэсгийг хууран мэхлэх боломжийг олгодог, гэхдээ жишээлбэл, ОХУ-ын Үндсэн хуулийн вэбсайт) эсвэл псевдо-tls (псевдо) ашиглан траффикийг бүдгэрүүлдэг. , энэ нь ямар ч гэрчилгээ ашигладаггүй тул үнэгүй nDPI гэх мэт хамгийн энгийн DPI-г "tls no cert" гэж илрүүлдэг. tls горимд толгой хэсгийг хуурамчаар үйлдэх боломжгүй болсон).

Маш хурдан, нэг командын тусламжтайгаар репо-оос суулгасан, маш энгийнээр тохируулсан, суулгасан бүтэлгүйтлийн функцтэй (энгийн бус obfs клиентээс ирсэн траффик нь simple-obfs-ийн сонсдог порт руу ирэхэд тэр хаяг руу дамжуулдаг) Тохиргоонд зааж өгсөн газар - үүнтэй адилаар та 80-р портыг гараар шалгахаас зайлсхийх боломжтой, жишээлбэл, http-тэй вэбсайт руу дахин чиглүүлэх, мөн холболтын датчикаар дамжуулан хаах замаар).

shadowsockss-obfs-tls: татаж авах - 1618 Mbits; 1971 Мбит байршуулах.VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

shadowsockss-obfs-http: татаж авах - 1582 Mbits; байршуулах - 1965 Мбит.VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

HTTP горим дахь энгийн-obfs нь CDN урвуу прокси (жишээлбэл, cloudflare)-ээр дамжуулан ажиллах боломжтой тул манай үйлчилгээ үзүүлэгчийн хувьд трафик нь HTTP-ийн үүл рүү чиглэсэн урсгал шиг харагдах бөгөөд энэ нь бидэнд туннелээ бага зэрэг илүү сайн нуух боломжийг олгодог. Үүний зэрэгцээ нэвтрэх цэг болон замын хөдөлгөөний гарцыг тусгаарлана - үйлчилгээ үзүүлэгч таны урсгал CDN IP хаяг руу чиглэж байгааг харж байгаа бөгөөд энэ мөчид VPS IP хаягаас зурган дээрх хэт даврагч лайкуудыг байрлуулна. Энэ нь CF-ээр дамжуулан s-obfs бөгөөд тодорхой бус ажилладаг, жишээлбэл зарим HTTP эх сурвалжуудыг үе үе нээхгүй гэж хэлэх ёстой. Тиймээс shadowsockss-obfs+CF-ээр дамжуулан iperf ашиглан байршуулалтыг шалгах боломжгүй байсан ч хурдны тестийн үр дүнгээс харахад дамжуулах чадвар нь shadowsocksv2ray-plugin-tls+CF түвшинд байна. Би iperf3-аас дэлгэцийн агшинг хавсаргахгүй байна, учир нь... Та тэдэнд найдах ёсгүй.

татаж авах (хурдны тест) - 887; байршуулах (хурдны тест) - 1154.VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Татаж авах (iperf3) - 1625; байршуулах (iperf3) - NA.

v2ray залгаас

V2ray-plugin нь ss libs-ийн үндсэн "албан ёсны" бүдүүвч болгон энгийн obfs-ийг сольсон. Энгийн obf-ээс ялгаатай нь энэ нь хадгалах санд хараахан ороогүй байгаа бөгөөд та урьдчилан угсарсан хоёртын файлыг татаж авах эсвэл өөрөө эмхэтгэх хэрэгтэй.

3 үйлдлийн горимыг дэмждэг: анхдагч, HTTP вэбсокет (хүлээн авагчийн толгой хэсгийг хуурамчаар үйлдэх дэмжлэгтэй); tls-websocket (s-obfs-ээс ялгаатай нь энэ нь ямар ч урвуу прокси вэб серверээр хүлээн зөвшөөрөгдсөн бүрэн хэмжээний tls траффик бөгөөд жишээлбэл, cloudfler сервер эсвэл nginx дээр tls төгсгөлийг тохируулах боломжийг танд олгоно); quic - udp-ээр ажилладаг боловч харамсалтай нь v2rey дахь quic-ийн гүйцэтгэл маш бага байна.

Энгийн obf-тэй харьцуулахад давуу талуудын дунд: v2ray залгаас нь HTTP-вэбсокет горимд CF-ээр ямар ч траффиктай ажилладаг, TLS горимд энэ нь бүрэн хэмжээний TLS траффик бөгөөд ажиллахын тулд гэрчилгээ шаарддаг (жишээлбэл, Let's encrypt эсвэл self-ээс) - гарын үсэг зурсан).

shadowsocksv2ray-plugin-http: татаж авах - 1404 mbits; 1938 Мбит байршуулах.VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

shadowsocksv2ray-plugin-tls: татаж авах - 1214 мбит; 1898 Мбит байршуулах.VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

shadowsocksv2ray-plugin-quic: татаж авах - 183 Mbits; 384 Мбит байршуулах.VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Би аль хэдийн хэлсэнчлэн v2ray толгойг тохируулах боломжтой бөгөөд ингэснээр та урвуу прокси CDN (жишээ нь Cloudfler) дамжуулан үүнтэй ажиллах боломжтой. Нэг талаас, энэ нь хонгилыг илрүүлэхэд хүндрэл учруулдаг бол нөгөө талаас хоцролтыг бага зэрэг нэмэгдүүлэх (заримдаа багасгах) боломжтой - энэ бүхэн таны болон серверүүдийн байршлаас хамаарна. CF одоогоор quic-тэй ажиллахыг туршиж байгаа боловч энэ горим хараахан боломжгүй байна (ядаж үнэ төлбөргүй дансанд).

shadowsocksv2ray-plugin-http+CF: татаж авах - 1284 мбит; 1785 Мбит байршуулах.VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

shadowsocksv2ray-plugin-tls+CF: татаж авах - 1261 мбит; 1881 Мбит байршуулах.VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Нөмрөг

Энэ хэрчим нь GoQuiet obfuscator-ийн цаашдын хөгжүүлэлтийн үр дүн юм. TLS урсгалыг дуурайж, TCP-ээр ажилладаг. Одоогийн байдлаар зохиогч нь залгаасын хоёр дахь хувилбар болох cloak-2-ыг гаргасан бөгөөд энэ нь анхны нөмрөгөөс эрс ялгаатай юм.

Хөгжүүлэгчийн хэлснээр залгаасын эхний хувилбар нь tls-ийн очих хаягийг хууран мэхлэхийн тулд tls 1.2 resume сессийн механизмыг ашигласан. Шинэ хувилбарыг гаргасны дараа (цаг-2) Github дээрх энэ механизмыг тодорхойлсон бүх вики хуудсууд устсан бөгөөд одоогийн нууцлалын шифрлэлтийн тайлбарт энэ тухай дурдаагүй болно. Зохиогчийн тайлбарын дагуу "криптод чухал эмзэг байдал" байгаа тул жижиглэсэн эхний хувилбарыг ашиглаагүй байна. Туршилтын үед нөмрөгийн зөвхөн анхны хувилбар байсан бөгөөд түүний хоёртын хувилбарууд Github дээр хэвээр байгаа бөгөөд бусад бүхнээс гадна чухал эмзэг байдал нь тийм ч чухал биш юм, учир нь shadowsox нь нөмрөггүйтэй адил траффикийг шифрлэдэг бөгөөд cloac нь shadowsox-ын криптод ямар ч нөлөө үзүүлэхгүй.

shadowsockscloak: татаж авах - 1533; байршуулах - 1970 МбитVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Kcptun

kcptun-ийг тээвэрлэлт болгон ашигладаг KCP протокол зарим онцгой тохиолдолд дамжуулах чадварыг нэмэгдүүлэх боломжийг олгодог. Харамсалтай нь (эсвэл азаар) энэ нь зарим үүрэн холбооны операторууд нь TCP-ийг их хэмжээгээр дарж, UDP-д хүрдэггүй Хятадын хэрэглэгчдэд ихээхэн хамааралтай юм.

Kcptun нь эрчим хүчний өлсгөлөн бөгөөд 100 үйлчлүүлэгчээр туршиж үзэхэд 4 сион цөмийг 1% амархан ачаалдаг. Нэмж дурдахад залгаас нь "удаан" бөгөөд iperf3-ээр ажиллахдаа тестийг эцэс хүртэл дуусгадаггүй. Хөтөч дээрх хурдны тестийг харцгаая.

shadowsockskcptun: татаж авах (хурдны туршилт) - 546 мбит; байршуулах (хурдны туршилт) 854 Мбит.VPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

дүгнэлт

Танд бүх машинаасаа ирж буй урсгалыг зогсоох энгийн, хурдан VPN хэрэгтэй байна уу? Тэгвэл таны сонголт бол дайны хамгаалалт юм. Та прокси (сонгомол туннел хийх эсвэл виртуал хүний ​​урсгалыг салгах) хүсч байна уу эсвэл ноцтой түгжрэлээс траффикийг арилгах нь танд илүү чухал уу? Дараа нь tlshttp будлиантай shadowbox-г хар. Интернэт хэвийн ажиллаж байгаа цагт таны интернет ажиллах болно гэдэгт итгэлтэй баймаар байна уу? Чухал CDN-ээр дамжуулан прокси траффикийг сонгоорой, хаах нь тухайн улсын интернетийн тал хувь нь бүтэлгүйтэхэд хүргэнэ.

Пивот хүснэгтийг татаж авах замаар эрэмбэлсэнVPN блок тойрч гарах хэрэгслүүдийн гүйцэтгэлийн харьцуулалт

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх