Kepiye Spotify bisa mbantu sampeyan sinau daemon, RFC, jaringan lan promosi sumber terbuka. Utawa apa mengkono yen sampeyan ora bisa mbayar, nanging sampeyan pengin tenan sawetara barang premium.
Начало
Ing dina katelu, diweruhi manawa Spotify nampilake pariwara adhedhasar negara alamat IP kasebut. Uga dicathet yen ing sawetara negara iklan ora diimpor. Contone, ing Republik Belarus. Lan banjur rencana "sarwa" ditetepake kanggo mateni pariwara ing akun non-premium.
A sethitik babagan Spotify
Umumé, Spotify duwe kabijakan sing aneh. Sadulur kita kudu cukup bengkong supaya bisa tuku premium: ngganti lokasi ing profil menyang jaban rangkah, goleki kertu hadiah sing cocog sing mung bisa dibayar nganggo PayPal, sing akhir-akhir iki tumindak aneh lan pengin akeh dokumen. Umumé, iki uga petualangan, nanging kanthi urutan sing beda. Senajan akeh wong nindakake iki kanggo versi seluler, Aku ora kasengsem ing. Mulane, kabeh ing ngisor iki mung bakal mbantu ing kasus versi desktop. Kajaba iku, ora bakal ana ekspansi fungsi. Mung ngethok sawetara ekstra.
Kok dadi rumit?
Lan aku panginten nalika ndhaptar data kaos kaki-proksi ing konfigurasi Spotify. Masalah kasebut yaiku otentikasi ing kaos kaki nggunakake login lan sandhi ora bisa digunakake. Kajaba iku, pangembang kanthi rutin nindakake apa wae ing babagan proxy: ngidini, banjur nglarang, utawa nglanggar, sing nyebabake kabeh panel diskusi ing situs web.
Diputusake supaya ora ngandelake fungsi sing ora stabil lan golek sing luwih dipercaya lan menarik.
Nang endi wae kene maca kudu takon: kok ora njupuk ssh
karo kunci -D
lan iku pungkasan? Lan, ing umum, dheweke bakal bener. Nanging, sepisanan, iki isih kudu demonized lan nggawe kanca karo autossh, supaya ora kanggo mikir bab sambungan ambruk. Lan kapindho: iku banget prasaja lan mboseni.
Supados
Kaya biasane, ayo pindhah saka kiwa menyang tengen, ndhuwur mudhun lan njlentrehake kabeh sing dibutuhake kanggo ngetrapake ide "prasaja".
Pisanan sampeyan butuh proxy
Lan ana akeh alternatif sekaligus:
- sampeyan mung bisa pindhah lan njupuk saka dhaptar proxy mbukak. Murah (utawa ora ana apa-apa), nanging pancen ora bisa dipercaya lan umur proksi kasebut cenderung nol. Mulane, perlu kanggo nemokake / nulis parser kanggo dhaptar proxy, nyaring miturut jinis lan negara sing dikarepake, lan pitakonan ngganti proxy sing ditemokake ing Spotify tetep mbukak (uga, bisa uga liwat
HTTP_PROXY
nransfer lan nggawe bungkus khusus kanggo binar supaya kabeh lalu lintas liyane ora dikirim ing kana). - Sampeyan bisa tuku proxy sing padha lan nylametake dhewe saka akeh masalah sing diterangake ing ndhuwur. Nanging kanthi rega proxy, sampeyan bisa langsung tuku premium ing Spotify, lan iki ora praktis kanggo tugas asli.
- Angkat sampeyan. Kaya sing sampeyan duga, iki pilihan kita.
Mesthi wae, sampeyan bisa uga duwe kanca karo server ing Republik Belarus utawa negara cilik liyane. Sampeyan kudu nggunakake iki lan muter metu proxy sing dikarepake ing. Connoisseurs khusus bisa isi karo kanca karo router ing
Dadi, pilihan kita: Cumi - ora menehi inspirasi, lan aku ora pengin proxy HTTP, wis akeh banget protokol iki. Lan ing wilayah SOCKS ora ana sing masuk akal kajaba
Aja ngenteni manual Dante babagan nginstal lan konfigurasi. Dheweke client pass
, socks pass
, ndhaftar antarmuka kanthi bener lan aja lali nambah socksmethod: username
. Ing formulir iki, kanggo otentikasi, logopass bakal dijupuk saka pangguna sistem. Lan bagean babagan keamanan: nglarang akses menyang localhost, mbatesi pangguna, lan liya-liyane - iki murni individu, gumantung saka paranoia pribadi.
Pasang proxy madhep jaringan
Lakon ana rong babak.
Tumindak siji
Kita wis ngurutake proxy, saiki kita kudu ngakses saka web global. Yen sampeyan duwe mesin kanthi IP putih ing negara sing dikarepake, mula sampeyan bisa ngliwati titik iki kanthi aman. Kita ora duwe (kita, kaya kasebut ing ndhuwur, dadi tuan rumah ing omah kanca) lan IP putih sing paling cedhak ana ing ngendi wae ing Jerman, mula kita bakal sinau jaringan.
Dadi ya, maca sing ati-ati bakal takon maneh: kenapa sampeyan ora njupuk layanan sing wis ana
Tugas: ana proxy nang endi wae adoh konco NAT, sampeyan kudu nyumerepi ing salah siji saka port VPS sing duwe IP putih lan dumunung ing pojok donya.
Iku logis kanggo nganggep yen iki bisa ditanggulangi kanthi port forwarding (sing dileksanakake liwat sing kasebut ing ndhuwur. ssh
), utawa kanthi nggabungake hardware menyang jaringan virtual liwat VPN. KARO ssh
kita ngerti carane bisa, autossh
Bosen kanggo njupuk, mula ayo njupuk OpenVPN.
DigitalOcean wis systemd
. Cukup sijine (config) ing /etc/openvpn/client/
lan aja lali kanggo ngganti extension kanggo .conf
. Sawise iku, tarik layanan [email protected]
aja lali nindakake kanggo dheweke enable
lan bungah-bungah manawa kabeh padha mabur.
Mesthi, kita kudu mateni pangalihan lalu lintas menyang VPN sing mentas digawe, amarga kita ora pengin nyuda kacepetan ing mesin klien kanthi ngliwati lalu lintas liwat setengah bal.
Lan ya, kita kudu ndhaptar alamat IP statis ing server VPN kanggo klien kita. Iki bakal dibutuhake sethitik mengko ing crita. Kanggo nindakake iki, sampeyan kudu ngaktifake ifconfig-pool-persist
, nyunting ipp.txt
, klebu karo OpenVPN lan ngaktifake client-config-dir, plus edit config saka klien sing dikarepake kanthi nambah ifconfig-push
nganggo topeng sing bener lan alamat IP sing dikarepake.
Tumindak loro
Saiki kita duwe mesin ing "jaringan" sing ngadhepi Internet lan bisa digunakake kanggo tujuan egois. Yaiku, pangalihan bagean lalu lintas liwat.
Dadi, tugas anyar: sampeyan kudu mateni lalu lintas sing teka ing salah sawijining port VPS kanthi IP putih supaya lalu lintas iki menyang jaringan virtual sing mentas disambungake lan respon bisa bali saka kono.
Solusi: mesthi iptables
! Kapan maneh sampeyan bakal duwe kesempatan sing apik kanggo latihan karo dheweke?
Konfigurasi sing dibutuhake bisa ditemokake kanthi cepet, sajrone telung jam, satus tembung sumpah lan sawetara syaraf sing boros, amarga jaringan debugging minangka prosedur sing spesifik.
Pisanan, sampeyan kudu ngaktifake pangalihan lalu lintas ing kernel. Bab iki diarani ipv4.ip_forward
lan diaktifake rada beda gumantung ing OS lan manager jaringan.
Kapindho, sampeyan kudu milih port ing VPS lan mbungkus kabeh lalu lintas menyang subnet virtual. Iki bisa ditindakake, contone, kaya iki:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 8080 -j DNAT --to-destination 10.8.0.2:8080
Ing kene kita pangalihan kabeh lalu lintas TCP menyang port 8080 antarmuka eksternal menyang mesin kanthi IP 10.8.0.2 lan port 8080 sing padha.
Kanggo sing pengin rincian reged proyek netfilter
, iptables
lan nuntun ing umum, iku pancen perlu kanggo contemplate
Dadi, saiki paket kita mabur menyang subnet virtual lan ... tetep ana. Luwih tepat, respon saka proxy kaos kaki bali liwat gateway standar ing mesin karo Dante lan panampa nyelehake, amarga ing jaringan ora umum ngirim panjalukan menyang siji IP lan nampa respon saka liyane. Mulane, kita kudu terus conjure.
Dadi, saiki sampeyan kudu ngarahake kabeh paket saka proxy bali menyang subnet virtual menyang VPS kanthi IP putih. Ing kene kahanan luwih elek, amarga mung iptables
kita ora bakal cukup, amarga yen kita mbenerake alamat tujuan sadurunge nuntun (PREROUTING
), banjur paket kita ora bakal mabur menyang Internet, lan yen kita ora ndandani iku, paket bakal pindhah menyang default gateway
. Dadi, sampeyan kudu nindakake ing ngisor iki: elinga rantai kasebut mangle
, kanggo menehi tandha paket liwat iptables
lan Lebokake ing meja nuntun adat sing bakal ngirim menyang ngendi padha arep.
Ora let suwe ngandika saka rampung:
iptables -t mangle -A OUTPUT -p tcp --sport 8080 -j MARK --set-mark 0x80
ip rule add fwmark 0x80 table 80
ip route add default via 10.8.0.1 dev tun0 table 80
Kita njupuk lalu lintas metu, tandhani kabeh sing mabur saka port ing ngendi proxy lenggah (8080 ing kasus kita), pangalihan kabeh lalu lintas sing ditandhani menyang meja routing kanthi nomer 80 (umum, nomer kasebut ora gumantung apa-apa, kita mung pengin. kanggo) lan nambah aturan siji , miturut kang kabeh paket klebu ing meja iki mabur menyang subnet VPN.
apik tenan! Saiki paket mabur bali menyang VPS ... lan mati ana. Amarga VPS ora ngerti apa sing kudu ditindakake. Mulane, yen sampeyan ora keganggu, sampeyan mung bisa ngarahake kabeh lalu lintas sing teka saka subnet virtual bali menyang Internet:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 172.42.1.10
Ing kene, kabeh sing teka saka subnet 10.8.0.0 kanthi topeng 255.255.255.000 dibungkus sumber-NAT lan mabur menyang antarmuka standar, sing diuripake menyang Internet. Wigati dicathet yen bab iki mung bakal bisa digunakake yen kita nerusake port kanthi transparan, yaiku, port mlebu ing VPS cocog karo port proxy kita. Yen ora, sampeyan kudu nandhang sangsara luwih sithik.
Nang endi wae saiki kabeh kudu diwiwiti. Lan mung sethitik tetep: aja lali kanggo mesthekake yen kabeh configs iptables
и route
ora diterusake sawise miwiti maneh. Kanggo iptables
ana file khusus kaya /etc/iptables/rules.v4
(ing cilik saka Ubuntu), nanging kanggo rute kabeh iku sethitik liyane rumit. Aku di-push menyang up/down
Skrip OpenVPN, sanajan aku rumangsa bisa ditindakake kanthi luwih sopan.
Bungkus lalu lintas saka aplikasi ing proxy
Dadi, kita duwe proxy kanthi otentikasi ing negara sing dikarepake, bisa diakses liwat alamat IP putih statis. Kabeh sing isih ana yaiku nggunakake lan ngarahake lalu lintas saka Spotify ing kana. Nanging ana nuansa, kaya kasebut ing ndhuwur, login-sandi kanggo proxy ing Spotify ora bisa, supaya kita bakal katon kanggo carane njaluk watara.
Kanggo miwiti, ayo ngelingi babagan
Nanging kabungahan bakal sedhela, amarga sampeyan kudu ngaktifake mode debug lan ekstensi kernel khusus ing MacOS, ngajukake konfigurasi sing gampang lan ngerti manawa alat iki duwe masalah sing padha karo Spotify: ora bisa ngliwati otentikasi nggunakake login-sandi ing socks-proxy.
Nang endi wae watara kene iku wektu kanggo freak metu lan tuku premium ... nanging ora! Coba njaluk didandani, iku open source! Ayo padha nindakake
Kita bakal kesel maneh. Nanging banjur kita bakal ngelingi muda kita lan C, nguripake mode debug ing Dante, digali liwat atusan kilobyte log, pindhah menyang
Otomatis
Sawise Proximac bisa digunakake, iku perlu kanggo demonized lan lali bab. Ana siji sistem initialization kabeh sing cocok kanggo iki, kang ditemokaké ing MacOS, yaiku
Kita nemokake kanthi cepet systemd
lan kene iku meh scoop lan xml
. Ora ana konfigurasi sing apik kanggo sampeyan, ora ana prentah kaya status
, restart
, daemon-reload
. Mung jinis hardcore start-stop
, list-grep
, unload-load
lan akeh keanehan liyane. Ngatasi kabeh iki kita nulis plist
, loading. Ora bisa. Kita sinau cara debugging setan, debug, ngerti apa sing ana ENV
даже PATH
kita ora ngirim sing normal, kita mbantah, kita nggawa (nambah /sbin
и /usr/local/bin
) lan pungkasane kita seneng karo autostart lan operasi stabil.
Ambegan
Apa asile? A minggu ngulandara, zoo kneeling saka layanan sing dear kanggo jantung lan nindakake apa sing dibutuhake. Kawruh cilik ing wilayah teknis sing ragu-ragu, rada mbukak sumber lan eseman saka pikirane "Aku nindakake!"
PS: iki dudu telpon kanggo boikot kapitalis, kanggo nyimpen ing pertandhingan utawa kanggo total licik, nanging mung pratondo saka kemungkinan riset lan pangembangan ngendi, ing umum, sampeyan ora nyana.
Source: www.habr.com