Ühendu tunneliga registri pordiga, vaata, kuidas käepigistus algab, ja siis vaata, kuidas JConsole ikkagi aegub. See juhtub seetõttu, et esimene TCP-ühendus ei ole haldusühendus: see on otsing. RMI register vastab viitega, mis nimetab hosti ja teist porti, ja JConsole läheb seejärel sinna, kuhu talle öeldi. Kui tunnel jõuab ainult serveri esimese pordini või viide nimetab aadressi, mis eksisteerib ainult serveri enda lokaalvõrgus, jääb klient pärast näilist õnnestumist kinni.

Müüt: üks avatud port on üks ühendus

Kaug-JMX üle RMI hõlmab vähemalt kahte lõpp-punkti ja neid valivad süsteemi erinevad osad. Registri port on see, mille sisestad kliendis, ja see on mõeldud stubi väljaandmiseks, mis kirjeldab tegelikku konnektorit. Kui võtad esimese õnnestunud socketi tõendiks, et haldustee on avatud, muutub kaheminutiline diagnoos terveks pärastlõunaks tulemüüri piletiteks.

Vaata kliendi enda viga, mitte serveri kuulajate nimekirja. Käepigistuse alguse järgne viga ütleb sulle, et teine ühendus, mitte esimene, ei lõppenud.

Mida register tagastab

Stub sisaldab aadressi ja porti, mis serialiseeriti hetkel, kui konnektor loodi. Mitme liidesega serveris võis stack valida aadressi, mis on lokaalvõrgust kättesaadav ja sinu omast mitte. Klient ei tea erinevust; see valib lihtsalt saadud väärtuse ja pakett järgib marsruuti, mis selle aadressi jaoks olemas on, VPN-kliendis sageli mitte ühtegi. See on hetk, mil proovitakse teist ühendust.

Seetõttu esinebki viga keskkondade vahel juhuslikult: sama server võib käituda erinevalt lokaalvõrgu kasutajale ja tunnelis olevale kasutajale, ilma et JMX konfiguratsioonis midagi muutuks.

Kaks porti ja kaks omadust, mis neid fikseerivad

Registri port tuleb com.sun.management.jmxremote.port-st ja konnektori saab fikseerida com.sun.management.jmxremote.rmi.port-ga, selle asemel et jätta see stacki määrata. Määra mõlemad selgesõnaliselt, kui kliendi ja serveri vahel on tulemüür või turvagrupp, sest ettearvamatut teist porti ei saa ette lubada ja selle jaoks avatud lai vahemik on hullem kui üks fikseeritud port.

Seejärel kinnita serveris ss -ltn või netstat -an abil, et mõlemad pordid kuulavad ja millistel aadressitel. Loopbacki külge seotud kuulaja on õige ainult kohalikuks juurutuseks ja selle jaoks kasutu.

Kui väljakuulutatud nimi on vale

Kaughostnime viites oleva hosti nime määrab java.rmi.server.hostname. See mõjutab seda, mida stub välja kuulutab; iseenesest ei ole see korraldus siduda iga kuulaja ühe liidesega, mistõttu selle seadistamine ei anna alati oodatud ühe pordi käitumist. Sea see, taaskäivita protsess ja seejärel kontrolli, mida stub tegelikult sisaldab. Vali nimi või aadress, mille klient suudab lahendada ja tunnelist kätte saada, ning taaskäivita protsess, et stub uuesti üles ehitataks.

Konteinerivõrgud muudavad selle hullemaks, sest protsessi nähtav aadress võib olla sisemine ja konteinerist väljastpoolt marsruutimatu. Avalda kavandatud hostinimi selgesõnaliselt, selle asemel et lasta platvormil valida.

Kui teed tunnelit SSH-ga, mitte VPN-iga, ilmneb sama probleem teises kuues: ainult registri pordi edasisaatmine jätab teise lõpp-punkti osutama aadressile, mida sinu klient ei saa kätte. Saada edasi mõlemad pordid ja tee nii, et väljakuulutatud nimi laheneks millekski, mille klient saab kohapeal kätte.

Ära lülita haldusturvet välja, et seda lihtsustada

Katkendid, mis lülitavad välja autentimise ja TLS-i, on kergesti leitavad ja panevad ühenduse tööle viisil, mille pead hiljem tagasi pöörama. Kaug-JMX on haldusliides, millel on samad õigused kui protsessil, mida see kontrollib; hoia selle juurdepääsukontrollid alles ja kui klient ei suuda esitada mandaate, paranda just seda.

Kui lõpp-punktid on õiged, hoia alles järgmine viga, mida näed. Usaldushoidla või konto tagasilükkamine on hilisem etapp kui kättesaamatu konnektor ja tähendab, et võrgutöö on lõpetatud.

Seotud artiklid