Cara membunuh zombie lebih efisien dengan ZeroTier



Anda memiliki server di bawah tempat tidur, rumah pintar di negara ini, dan kamera IP di garasi. Bagaimana cara menyatukan mereka semua dalam satu jaringan untuk memiliki akses ke semua perangkat? Dalam situasi seperti itu, sudah biasa menggunakan VPN, tetapi ada solusi yang lebih efektif - ZeroTier. Itu menciptakan jaringan peer-to-peer (P2P) antara perangkat, sementara mengkonfigurasi itu jauh lebih sederhana daripada VPN.

Kami telah menerbitkan serangkaian artikel tentang mengatur jaringan P2P untuk dukungan pengguna jarak jauh. Di dalamnya, kami mempertimbangkan opsi untuk membangun jaringan virtual terdesentralisasi menggunakan ZeroTier. Tidak seperti solusi VPN tradisional, ZeroTier tidak memiliki server manajemen pusat dan koneksi dibuat langsung antar perangkat.

Saya sering menggunakan ZeroTier untuk dua kasus: terhubung ke perangkat klien untuk memberikan dukungan dan membunuh zombie di penembak. Menjadi menarik bagi saya untuk membandingkan cara-cara koneksi alternatif pada jaringan lokal.

Jika Anda ingin memahami prinsip ZeroTier, tentang ini kami telah merilis artikel terperinci dengan analisis .

Koneksi RDP untuk dukungan jarak jauh


Hampir setiap hari, saya harus terhubung dengan klien untuk menekan pemberontakan mesin untuk membantu menyelesaikan sesuatu. Dalam pandemi, ini adalah rekan kerja dari rumah. 

Untuk bekerja dengan layanan internal perusahaan, otentikasi diperlukan dari jaringan perusahaan dan VPN telah dinaikkan pada router kantor untuk waktu yang lama jika Anda perlu melakukan sesuatu dari jarak jauh. 

Bagi saya, menghubungkan ke sana dan mendaftarkan beberapa rute dalam sistem tidaklah sulit, tetapi ternyata memakan waktu bagi pengguna rata-rata. Jadi, sekali perlu muncul solusi sederhana yang akan memungkinkan pengguna yang terkena dampak dengan mudah memberikan akses ke komputernya.

Saya bahkan tidak mempertimbangkan Teamviewer atau Radmin karena keterbatasan dan biaya. Selain itu, saya adalah pendukung RDP Orthodox, bukan utilitas pihak ketiga. Saya ingin solusinya sesederhana mungkin dalam implementasi dan orang tersebut membutuhkan tindakan minimal dari pihaknya. Dan karena saya khawatir tidak hanya tentang karyawan asli saya, perusahaan yang saya cintai, dan kadang-kadang mereka membantu karakter pihak ketiga, akan salah jika menggunakan server VPN perusahaan.

Apa yang saya bandingkan dengan ZeroTier


Di jaringan, Anda dapat menemukan beberapa solusi sederhana untuk menerapkan jaringan virtual:

  • Tunngle yang tidak lagi berfungsi;
  • Evolve, yang bergabung dengan Player.me;
  • Hamachi;
  • Radmin VPN
  • Dan ZeroTier, yang kita miliki di pasar .

Saya berencana untuk meminta klien untuk menginstal salah satu perangkat lunak di atas, mengunduh dan menjalankan skrip berikut untuk mengaktifkan RDP:

# Execute with Administrator rights
$path = $MyInvocation.MyCommand.Path
if ($args[0] -ne $null) {
$path = $args[0]
}
$path = Split-Path -Path $path

$windowsID = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$windowsPrincipal = New-Object System.Security.Principal.WindowsPrincipal($windowsID)
$adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator
if ($windowsPrincipal.IsInRole($adminRole)) {
$Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Elevated)"
$Host.UI.RawUI.BackgroundColor = "DarkBlue"
clear-host
}
else {
$newProcess = New-Object System.Diagnostics.ProcessStartInfo "PowerShell";
$newProcess.WorkingDirectory = $path;
$newProcess.Arguments = $myInvocation.MyCommand.Definition;
$newProcess.Verb = "runas";
[System.Diagnostics.Process]::Start($newProcess);
exit
}

# Set RDP enabled
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" –Value 0

# Create firewall rule
New-NetFirewallRule -DisplayName "Remote Desktop Allow TCP" -Program "%SystemRoot%\system32\svchost.exe" -Action Allow -Protocol TCP -LocalPort 3389 -Direction Inbound -Enabled True
New-NetFirewallRule -DisplayName "Remote Desktop Allow UDP" -Program "%SystemRoot%\system32\svchost.exe" -Action Allow -Protocol UDP -LocalPort 3389 -Direction Inbound -Enabled True

# Add user to RDU group
$User = $env:USERNAME
Add-LocalGroupMember -SID "S-1-5-32-555" -Member $User


Parameter untuk mengevaluasi setiap program


Saya mengevaluasi semua solusi berdasarkan parameter:

  • Kecepatan transfer file melalui jaringan lokal;
  • Mudah dipasang, dikonfigurasi, dan digunakan;
  • Biaya dan batasan;
  • Fungsional;
  • Game (lebih lanjut tentang itu di akhir).

Penilaian saya untuk setiap parameter adalah subyektif dan layak dikritik. Karena itu, saya fokus pada parameter yang dapat diukur melalui tes.

Hamachi


Pada saat penulisan, versi terbaru dari program LogMeIn Hamachi untuk Windows 2.2.0.633 dirilis pada Maret 2019. Versi gratis memiliki batas 5 koneksi simultan ke jaringan yang sama. Biaya versi lengkap mulai dari $ 49 per tahun.

Untuk memulai, Anda perlu:

  • Daftar di layanan;
  • Instal perangkat lunak
  • Buat atau sambungkan ke jaringan yang sudah jadi melalui aplikasi grafis.

Untuk memperkirakan kecepatan transfer file, saya menggunakan CrystalDiskMark, melakukan tes baca / tulis dalam folder yang sebelumnya dibagi untuk jaringan lokal dan penyalinan sederhana file besar.

Mempertimbangkan bahwa semua tes dilakukan pada dua PC dengan konfigurasi yang sama (dalam setiap tes drive yang sama, pengaturan sistem yang sama, dll), hasil CrystalDiskMark harus memberikan gambaran tentang kecepatan transfer data.

Catatan: setelah menulis artikel, saya ragu bahwa saya telah memilih solusi terbaik untuk pengujian. Saya pikir dalam komentar pendekatan yang lebih baik akan disarankan.

Hasil waktu: menyalin file 9 Gb memakan waktu tepat 21 menit.



Hasil CrystalDiskMark.



Ping antar PC tidak melebihi 10 ms.



Radmin VPN


Versi terbaru "Radmin VPN 1.1.3969.3" dirilis pada Desember 2019. Ini adalah aplikasi yang sepenuhnya gratis dengan desain minimalis dan bahkan tidak memerlukan pendaftaran.

Yang kamu butuhkan adalah:

  • Unduh;
  • Install;
  • Hubungkan ke jaringan;
  • Makanlah donat.

Kecepatan transfer file jauh lebih rendah daripada Hamachi. 9Gb ditransfer baik 43 menit.



Hasil CrystalDiskMark juga lebih rendah dari Hamachi.



Ping: 10-11ms.



Mungkin kalau bukan karena donat yang dimakan, hasilnya akan berbeda. Saat terhubung melalui RDP, tidak ada masalah khusus.

ZeroTier


Ini adalah proyek open source yang unik:

  • Ini tersedia sebagai solusi cloud publik;
  • Disediakan oleh model SaaS;
  • Dia memiliki empat paket berlangganan.

Selanjutnya, saya akan mempertimbangkan solusi open source dari pengembang pihak ketiga: antarmuka pengguna pengontrol jaringan ZeroTier .

Kami telah memeriksa secara rinci prinsip kerjanya di artikel ini . Saya hanya akan mencantumkan fitur-fitur utama yang membuatnya sangat menarik:

1. Karena kita berbicara tentang jaringan P2P, lalu lintas tidak melalui simpul yang kami angkat, tetapi langsung dari perangkat ke perangkat. Node diperlukan secara eksklusif untuk koneksi awal. Selanjutnya, dia tidak terlibat dalam pekerjaan. Node dapat sepenuhnya dimatikan, koneksi tidak akan terputus. Ini akan diperlukan hanya jika menghubungkan kembali.

2. Node tidak menuntut sumber daya. Ini berjalan diam-diam di VPS termurah kamiuntuk 130 p. per bulan (atau 30 rubel, jika Anda berhasil mengambil tarif yang sama).

3. Tidak ada batasan pada jumlah pengguna dan jaringan: Anda dapat menghubungkan seluruh aliran universitas Anda dan mengatur pertemuan teman sekelas dalam Counter-strike.

Untuk membuat simpul, kita perlu menaikkan VPS dengan sisi server aplikasi. Prosesnya juga sudah dijelaskan sebelumnya .

Bagian klien dari ZeroTier One memiliki desain minimalis dan serangkaian parameter yang sangat sederhana. Kami hanya perlu mengirim ID node kepada pengguna dan mengesahkannya.



9Gb terbang selama 20 menit. Sedikit lebih cepat dari Hamachi.



CrystalDiskMark juga menunjukkan nilai yang sedikit lebih tinggi.



Ping, seperti di tempat lain, melompat sekitar 10 ms.



Kasus Dua: Cara Manjakan Santai Kultural di PC yang Lemah Kantor


ZeroTier memberikan kesempatan lain - cara yang sekarang populer untuk mengalirkan game ke perangkat lain (ala GeForce Sekarang). Ada tiga alternatif untuk ZeroTier untuk ini: RDP, Parsec dan Moonlighrt. Mari kita coba.

▍ RDP


Sayangnya, tidak diadaptasi untuk ini. Sebagian besar game yang saya uji menolak untuk bekerja secara normal. Entah jatuh karena ketidakcocokan driver video, atau hanya tidak menanggapi kontrol.

▍ Parsec


Ini adalah perangkat lunak gratis khusus yang dirancang untuk mentransfer video antara PC dengan penekanan pada latensi sangat rendah. Tidak seperti Teamviewer atau Radmin, Parsec mampu mentransmisikan stabil 60 FPS dalam gambar FullHD dalam kenyamanan relatif (agar tidak mendapatkan drakeface lagi dan lagi).



Untuk penggunaan yang nyaman, disarankan bahwa host memiliki koneksi kabel dengan kecepatan minimal 30 Mbps.

Pada sebagian besar permainan, Anda dapat bermain dengan nyaman tanpa mengalami lag input yang tinggi, tetapi, sayangnya, kualitas gambarnya menderita. Karena metode kompresi, gambar dibagi menjadi piksel pada elemen yang kontras dan sangat menyakitkan mata. Game yang bergantung pada FPS, seperti penembak, tidak dapat dimainkan dengan tingkat kenyamanan yang tepat. Input lag, meskipun rendah, tetapi dari waktu ke waktu beberapa kedutan gambar terlihat, yang, meskipun tidak mengganggu keahlian menembak, sangat mengganggu.

Apa yang Parsec benar-benar melampaui solusi lain adalah koperasi lokal. Karena fakta bahwa Parsec memungkinkan Anda untuk berbagi gambar monitor, dimungkinkan untuk memainkan game co-op di lokasi mana pun tanpa masalah. Apalagi jarak antara Anda tidak masalah. Saya menikmati bermain Cuphead dengan seorang teman dari Novosibirsk dan tidak mengalami masalah dengan reaksinya.

Parsec juga bagus dalam pekerjaan sehari-hari. Lebih cepat, mentransfer gambar yang lebih baik dibandingkan dengan Teamviewer dan tidak memiliki batasan pada jumlah desktop jarak jauh. Namun, untuk tujuan seperti itu saya selalu menggunakan RDP, klise untuk OS bawaan dan kemampuan untuk meneruskan drive lokal.

▍ Cahaya bulan


Ini adalah Open source, solusi yang sepenuhnya gratis untuk permainan jarak jauh.
Saya akan mengutip situs mereka:
Moonlight (sebelumnya Limelight) adalah implementasi open source dari protokol NVIDIA GameStream. Kami menerapkan protokol yang digunakan oleh NVIDIA Shield dan menulis satu set klien pihak ketiga.

Pencapaian yang paling jelas dan utama dari Moonlight adalah kemampuan untuk menyiarkan video 4K pada 120 atau lebih FPS dengan tidak adanya penundaan sama sekali.

Cahaya bulan hanya berfungsi jika mesin host memasang kartu Nvidia. Ini disebabkan oleh fakta bahwa proyek tersebut mengemulasi NVIDIA Shield dan bekerja langsung dengan pengemudi. Inilah yang memungkinkan Anda untuk menyiarkan 4K 120FPS tanpa penundaan di jaringan lokal.

Selain itu, kelemahan kedua Moonlight adalah ketidakmampuan untuk bermain di Internet tanpa tambahan menari dengan rebana.

▍ Cahaya Bulan + Hamachi


Sayangnya, saya tidak memiliki kartu penangkap, dan saya tidak bisa melepas monitor di ponsel ... Oleh karena itu, Anda harus memercayai kata-kata saya atau menguji setiap solusi secara independen. Bandwidth Hamachi sudah cukup untuk game yang nyaman dalam 2K 60-120FPS. Dengan meningkatnya resolusi, mikrofreeze menjadi lebih kuat secara signifikan.

Dimungkinkan untuk memainkan game yang bergantung pada FPS, tetapi di sana-sini gim tersebut dapat membeku selama seperempat detik. Parsec masih melakukan yang lebih baik dalam hal meminimalkan penundaan. Namun, ia kehilangan kualitas gambar. Di sini terserah Anda untuk memutuskan mana yang lebih penting: input lag minimum dan artefak gambar atau gambar yang sempurna, tetapi jalur mikro?

▍ Sinar Bulan + Radmin VPN


Radmin VPN berperilaku sama seperti pada sintetis. Relatif nyaman untuk dimainkan, ternyata hanya dalam FullHD dan 60FPS. Resolusi tepat di atas menyebabkan tayangan slide yang tak tertahankan. Dan dari waktu ke waktu, gambar benar-benar membeku selama 2 detik, sayangnya kelompok ini terbukti menjadi yang terburuk.

▍ Cahaya Bulan + ZeroTier


Dan sekarang kita sampai pada pasangan yang lezat. Tak perlu dikatakan, repositori Moonlight resmi menyarankan ZeroTier khusus untuk membangun koneksi P2P. Saya benar-benar gagal membedakan gameplay dari game yang diluncurkan dari jarak jauh dari peluncuran di PC lokal. Semua fitur Moonlight yang dideklarasikan berfungsi. Sangat disayangkan bahwa teman saya dari Novosibirsk memiliki kartu AMD dan harus menguji di kota yang sama, memanggil saudaranya (ini adalah utara dan selatan Moskow).

Gambar resolusi mulus hingga 4K dan berjalan tanpa rem. Respons terhadap pengepresan instan, Anda dapat memainkan penembak seperti ini. Mungkin bundel ini adalah opsi terbaik untuk cloud gaming.

temuan


ZeroTier mungkin merupakan solusi terbaik yang terjangkau untuk membangun jaringan peer-to-peer dengan cepat. Ya, fungsinya tidak akan memungkinkan Anda untuk membangun jaringan yang kompleks dan tidak akan memberikan akses ke seluruh variasi pengaturan L2TP / IPsec klasik. Tetapi ini tidak selalu diperlukan untuk tugas-tugas sederhana.

Parsec mungkin satu-satunya pilihan untuk bermain game dari jarak jauh yang mendukung koperasi lokal atau layar terbelah (saya langsung ingat Pecinta dalam ruangwaktu Berbahaya). Itu tidak terikat dengan teknologi spesifik peralatan fisik dan tidak memerlukan pengaturan jaringan tambahan. Namun, ini dapat sangat menjepit kualitas gambar. Dengan tidak adanya kemampuan untuk terhubung ke PC jarak jauh menggunakan metode biasa, sangat cocok untuk bantuan komputer cepat.

Sinar bulan- Jika kartu Nvidia Anda diinstal pada PC gaming Anda, maka Moonlight + ZeroTier adalah pasangan yang ideal untuk gaming jarak jauh. ZeroTier memecahkan masalah pengaturan jaringan virtual secara sederhana dan elegan. Cahaya bulan, berkat emulasi Nvidia Shield, memungkinkan Anda untuk mentransfer gambar yang menakjubkan tanpa penundaan. Itu tidak memungkinkan konfigurasi PC jarak jauh, tapi saya jelaskan solusi lain di atas.


All Articles