Kopla til registry-porten gjennom tunnelen, sjå handtrykket byrja, og sjå deretter JConsole få tidsavbrot likevel. Det skjer fordi den første TCP-tilkoplinga ikkje er administrasjonstilkoplinga: ho er eit oppslag. RMI-registret svarar med ein referanse som nemner ein vert og ein andre port, og JConsole går deretter dit han blir send. Viss tunnelen berre når den første porten til tenaren, eller referansen nemner ei adresse som berre finst på tenaren sitt eige LAN, stoppar klienten etter tilsynelatande å ha lukkast.

Myten: éin open port er éi tilkopling

Ekstern JMX over RMI involverer minst to endepunkt, og dei blir valde av ulike delar av systemet. Registry-porten er den du skriv inn i klienten, og han finst for å dela ut stubben som skildrar den faktiske connectoren. Å ta den første vellukka socketen som prov på at administrasjonsvegen er open, gjer ein tominuttsdiagnose om til ein ettermiddag med brannmur-saker.

Sjå på feilen til klienten sjølv i staden for lyttarlista til tenaren. Ein feil etter at handtrykket har byrja, fortel deg at den andre tilkoplinga, ikkje den første, ikkje vart fullført.

Kva registret gir tilbake

Stubben inneheld ei adresse og ein port, serialisert i det augneblinken connectoren vart oppretta. På ein tenar med fleire grensesnitt kan stakken ha valt ei adresse som er nåbar frå det lokale nettverket og ikkje frå ditt. Klienten kjenner ikkje skilnaden; han ringjer rett og slett verdien han fekk, og pakken følgjer den ruta som finst for adressa, som på ein VPN-klient ofte er inga. Det er i det augneblinken den andre tilkoplinga blir forsøkt.

Det er også grunnen til at feilen er periodisk mellom miljø: den same tenaren kan oppføre seg annleis for ein brukar på LAN og ein brukar på tunnelen, utan at JMX-konfigurasjonen blir endra i det heile.

To portar og to eigenskapar som låser dei

Registry-porten kjem frå com.sun.management.jmxremote.port, og connectoren kan låsast med com.sun.management.jmxremote.rmi.port i staden for å overlatast til det stakken tildeler. Angi begge eksplisitt når det er ein brannmur eller sikkerheitsgruppe mellom klienten og tenaren, for ein uføreseieleg andre port kan ikkje tillatast på førehand, og eit breitt område opna for å romme han er verre enn å låse éin verdi.

Stadfest deretter med ss -ltn eller netstat -an på tenaren at begge portane lyttar, og på kva adresser. Ein lyttar bunden til loopback er riktig for ein heilt lokal utrulling og ubrukeleg for denne.

Når det annonserte namnet er feil

Vertsnamnet som visest i fjernreferansen, blir sett av java.rmi.server.hostname. Det påverkar kva stubben annonserer; det er ikkje i seg sjølv ein instruks om å binde kvar lyttar til eitt grensesnitt, og difor gir det ikkje alltid den venta åtferda med éin port. Set det, start prosessen på nytt, og kontroller deretter kva stubben faktisk inneheld. Vel eit namn eller ei adresse som klienten kan slå opp og nå gjennom tunnelen, og start prosessen på nytt slik at stubben blir bygd på nytt.

Containarnettverk gjer dette verre, fordi adressa prosessen ser, kan vere ei intern ei som ingen utanfor containaren kan rute. Publiser det tiltenkte vertsnamnet eksplisitt i staden for å la plattforma velje.

Viss du tunnelerer med SSH i staden for ein VPN, dukkar same problemet opp i ei anna drakt: å videresende berre registry-porten lèt det andre endepunktet peike på ei adresse klienten din ikkje kan nå. Videresend begge portane og sjå til at det annonserte namnet slår opp til noko klienten kan nå lokalt.

Ikkje slå av administrasjonssikkerheita for å forenkle det

Snippets som slår av autentisering og TLS er lette å finne og får tilkoplinga til å verke på ein måte du må angre seinare. Ekstern JMX er eit administrasjonsgrensesnitt med same privilegia som prosessen det inspiserer; hald på tilgangskontrollane, og viss klienten ikkje kan vise legitimasjon, fiks det i staden.

Når endepunkta er riktige, ta vare på den neste feilen du ser. Ei avvising frå eit truststore eller ein konto er eit seinare trinn enn ein utilgjengeleg connector og betyr at nettverksarbeidet er ferdig.

Relaterte artiklar