Aplikacija na pisarniškem strežniku se poveže z MySQL na localhost, to ime gostitelja kopirate v namiznega odjemalca, in povezava bodisi ne uspe bodisi odpre drugo zbirko podatkov. VPN ni spremenil ničesar v pomenu besede: localhost se še vedno nanaša na stroj, na katerem teče odjemalec. VPN je premaknil pakete, ne vmesnikov. Odločite se, do katere končne točke mora priti prenosnik, preden se dotaknete poti.

Korak 1: odločite se, do katere končne točke mora priti prenosnik

Obliki sta obe legitimni in odgovarjata na različna vprašanja. Neposreden dostop pomeni, da zbirka podatkov posluša na zasebnem naslovu, ki ga tunel doseže, in prenosnik se poveže na ta naslov. Preusmerjen dostop pomeni, da zbirka ostane na loopbacku in seja SSH prinese vrata na vaš stroj. Izberite eno zavestno, ker njuno mešanje da povezavo, ki deluje iz napačnega razloga.

Za neposreden dostop pridobite lastno zasebno ime ali naslov gostitelja zbirke in njegova vrata pri tistem, ki jo upravlja. Naslov prehoda VPN ni naslov zbirke, razen če gre za isti stroj. Nato potrdite, da je poslušalec res vezan na ta vmesnik, ker pot do vmesnika na njem ne ustvari poslušalca.

Korak 2: preusmerite vrata le, če poslušalec ostane lokalen

Če mora zbirka ostati samo na loopbacku, jo preusmerite prek SSH in tudi lokalni konec vežite na loopback. Naslov vezave na levi pripada vašemu prenosniku; cilj na desni se razlaga s strani strežnika SSH, kot opisuje referenca OpenSSH. Zamenjava teh dveh vlog je običajen razlog, da preusmeritev deluje na videz, a se ne poveže z ničimer.

ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:13306:127.0.0.1:3306 [email protected]
ss -ltn 'sport = :13306'

Če SSH pristane na preskočnem gostitelju namesto na gostitelju zbirke, se loopback na desni nanaša na preskočnega gostitelja, cilj pa je treba spremeniti na naslov, ki ga ta gostitelj doseže. ExitOnForwardFailure ujame neuspeh pri vzpostavitvi preusmeritve, ne dokazuje pa, da bodo poznejše povezave do cilja uspele. Pustite preverjanje ključa gostitelja vklopljeno in ne ponujajte vrat preusmeritve celotnemu svojemu omrežju LAN tako, da jih vežete na vse vmesnike.

Ustavite se, če mora zbirka ostati samo na loopbacku in ne morete uporabiti SSH. Takrat je neposreden dostop napačna zasnova, ne konfiguracija, ki bi jo bilo treba vsiliti.

Korak 3: prisilite odjemalca na TCP

V Unixu odjemalec MySQL, ki dobi localhost, privzeto izbere Unixovo vtičnico, zato lahko sprememba samo vrat pusti, da išče vtičnico, ki nima nič skupnega z vašo preusmeritvijo. Uporabite izrecni protokol TCP in naslov loopback, da odjemalec odpre povezavo do vaših vrat preusmeritve.

mysql --protocol=TCP --host=127.0.0.1 --port=13306 --user=DB_USER --password

Možnost gesla brez vrednosti vpraša, namesto da bi skrivnost postavila v ukazno vrstico, in to je navada, ki jo velja obdržati. Druga orodja imajo za isto razlikovanje svoje stikalo, nekateri gonilniki pa tudi localhost obravnavajo posebej. Preverite, kaj počne vaš odjemalec, namesto da bi domnevali, da se je zastavica prenesla. Račun zbirke potrebuje tudi dovoljenje, ki ustreza viru, kot ga vidi strežnik, to pa je gostitelj preusmeritve, ne vaš prenosnik.

Ustavite se, če orodja ni mogoče prisiliti na TCP. Takrat uporabite drugega odjemalca ali neposreden dostop do zasebnega poslušalca.

Korak 4: dokažite, do katere končne točke ste dejansko prišli

Vprašajte strežnik, kaj meni, da je povezava. Spremenljivke imena gostitelja, vrat in vtičnice povedo, ali ste prišli prek TCP in kateri poslušalec je odgovoril, seznam povezav pa pokaže izvorni naslov, ki ga je strežnik zabeležil. Ta dokaz je koristnejši od še ene spremembe poti.

mysql --protocol=TCP -h 127.0.0.1 -P 13306 -u DB_USER -p -e "SELECT @@hostname, @@port, @@socket"

Zabeležite, katero končno točko ste poskusili: lokalno Unixovo vtičnico, svoja vrata preusmeritve ali zasebni poslušalec. Ti trije neuspehi imajo različne popravke, spreminjanje poti VPN, medtem ko se odjemalec še pogovarja z napačnim localhostom, pa je izgubljeno delo. V zapiskih imejte ločeno tudi preverjanje pristnosti SSH in preverjanje pristnosti zbirke, ker neuspeh v enem iz namiznega odjemalca izgleda kot neuspeh v drugem. Nato po končanem delu odstranite preusmeritev.

Seznam se konča, ko lahko poimenujete končno točko, protokol odjemalca, izvorni naslov, ki ga je videl strežnik, in dovoljenje, ki je to omogočilo. Štiri dejstva, in naslednja težava s povezavo traja minute namesto popoldneva.

Sorodni članki