Applikasjonen på kontorserveren koplar til MySQL på localhost, du kopierer vertsnamnet inn i ein skrivebordsklient, og tilkoplinga feilar anten eller opnar ein annan database. VPN endra ikkje tydinga av ordet: localhost viser framleis til maskina som køyrer klienten. VPN flytta pakkar, ikkje grensesnitt. Avgjer kva endepunkt laptopen skal nå, før du rører ei rute.

Trinn 1: avgjer kva endepunkt laptopen skal nå

Båe designa er legitime og svarar på ulike spørsmål. Direkte tilgang tyder at databasen lyttar på ei privat adresse som tunnelen når, og laptopen koplar til den adressa. Vidaresend tilgang tyder at databasen blir på loopback og ei SSH-økt ber porten til maskina di. Vel eitt medvite, fordi å blande dei gir ei tilkopling som verkar av feil grunn.

For direkte tilgang, skaff vertsmaskina sitt eige private namn eller adresse og porten frå den som driftar henne. Adressa til VPN-gatewayen er ikkje databaseadressa med mindre det er same maskina. Stadfest deretter at lyttaren faktisk er bunden til grensesnittet, fordi ei rute til eit grensesnitt ikkje lagar ein lyttar der.

Trinn 2: vidaresend porten berre viss lyttaren blir lokal

Viss databasen skal bli verande berre på loopback, vidaresend henne over SSH og bind den lokale enden til loopback òg. Bindeadressa til venstre høyrer til laptopen din; målet til høgre blir tolka frå sida til SSH-serveren, slik OpenSSH-referansen skildrar. Å bytte om dei to rollene er den vanlege grunnen til at ei vidaresending ser ut til å verke, men ikkje koplar til noko.

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

Viss SSH landar på ein hoppvert i staden for databaseverten, viser loopbacken til høgre til hoppverten, og målet må endrast til ei adresse den verten når. ExitOnForwardFailure fangar ein feil ved å opprette vidaresendinga, men beviser ikkje at seinare tilkoplingar til målet lukkast. Hald vertsnøkkelkontrollen på, og ikkje tilby vidaresendingsporten til heile LAN-et ditt ved å binde han til alle grensesnitt.

Stopp viss databasen må bli verande berre på loopback og du ikkje kan bruke SSH. Då er direkte tilgang feil design, ikkje ein konfigurasjon som skal tvingast gjennom.

Trinn 3: tving klienten over på TCP

På Unix vel ein MySQL-klient som får localhost ein Unix-socket som standard, så viss du berre endrar porten, kan han bli ståande og leite etter ein socket som ikkje har noko med vidaresendinga di å gjere. Bruk den eksplisitte TCP-protokollen og loopback-adressa for å få klienten til å opne ei tilkopling til vidaresendingsporten din.

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

Passordvalet utan verdi spør i staden for å setje løyndomen på kommandolinja, og det er vanen som er verdt å behalde. Andre verktøy har sin eigen brytar for same skilje, og nokre drivarar handsamar localhost spesielt òg. Sjekk kva klienten din gjer i staden for å anta at flagget vart med. Databasekontoen treng òg eit løyve som svarar til kjelda serveren ser, og det er vidaresendingsverten, ikkje laptopen din.

Stopp viss verktøyet ikkje kan tvingast over på TCP. Bruk då ein annan klient, eller bruk direkte tilgang til den private lyttaren.

Trinn 4: bevis kva endepunkt du faktisk nådde

Spør serveren kva han meiner tilkoplinga er. Variablane for vertsnamn, port og socket fortel om du kom over TCP og kva lyttar som svara, og tilkoplingslista viser kjeldeadressa serveren registrerte. Det beviset er nyttigare enn ei ny ruteendring.

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

Noter kva endepunkt du prøvde: ein lokal Unix-socket, vidaresendingsporten din eller den private lyttaren. Dei tre feila har ulike løysingar, og å endre VPN-ruta medan klienten framleis snakkar med feil localhost er bortkasta arbeid. Hald òg SSH-autentisering og databaseautentisering skilde i notatane, fordi ein feil i den eine ser ut som ein feil i den andre frå ein skrivebordsklient. Fjern deretter vidaresendinga når du er ferdig.

Sjekklista sluttar når du kan namngje endepunktet, klientprotokollen, kjeldeadressa serveren såg og løyvet som gjorde det mogleg. Fire fakta, og det neste tilkoplingsproblemet tek minutt i staden for ein ettermiddag.

Relaterte artiklar