JConsole verbënnt sech mat der Registry, an dann schéckt RMI se soss wouhin
Datt de Registry-Port äntwert ass nëmmen den éischte Sprong. En entfernte JMX-Server kann en aneren Host an en aneren Connector-Port annoncéieren, an den Tunnel muss béid erreechen.
Verbonn dech iwwer den Tunnel mat dem Registry-Port, kuck wéi den Handshake ufänkt an dann kuck wéi JConsole trotzdeem an en Timeout leeft. Dat geschitt well déi éischt TCP-Verbindung net d'Management-Verbindung ass: et ass eng Lookup. D'RMI-Registry äntwert mat enger Referenz déi en Host an en zweeten Port nennt, an JConsole geet dann dohinner wou se hi geschéckt gouf. Wann den Tunnel nëmmen den éischten Port vum Server erreecht, oder wann d'Referenz eng Adress nennt déi et nëmmen am eegene LAN vum Server gëtt, bleift de Client hänken nodeems e schéngbar erfollegräich war.
De Mythos: een oppene Port ass eng Verbindung
Remote-JMX iwwer RMI ëmfaasst op d'mannst zwee Endpunkten, an déi ginn vun ënnerschiddlechen Deeler vum System ausgewielt. De Registry-Port ass deen deen s du am Client agëss, an en existéiert fir de Stub auszeginn deen de richtegen Connector beschreift. Den éischten erfollegräichen Socket als Beweis ze huelen datt de Management-Wee op ass, verwandelt eng Zwei-Minutten-Diagnos an en Nomëtteg voller Firewall-Ticketen.
Kuck op de Feeler vum Client selwer amplaz op d'Lauschterlëscht vum Server. E Feeler nodeems den Handshake ugefaangen huet, seet dech datt déi zweet Verbindung, net déi éischt, net fäerdeg ginn ass.
Wat d'Registry zréckgëtt
De Stub enthält eng Adress an e Port, serialiséiert am Moment wou de Connector erstallt gouf. Op engem Server mat méi Interface huet de Stack vläicht eng Adress gewielt déi aus dem lokalen Netz erreechbar ass an aus dengem net. De Client kennt den Ënnerscheed net; en hëlt einfach de Wäert deen en krut, an de Paket follegt der Route déi et fir déi Adress gëtt, déi op engem VPN-Client dacks keng ass. Dat ass de Moment wou déi zweet Verbindung probéiert gëtt.
Dat ass och de Grond firwat de Feeler tëschend Ëmgeeungen intermittéierend ass: dee selweschen Server kann sech anescht behuelen fir e Benotzer am LAN an e Benotzer am Tunnel, ouni datt sech eppes un der JMX-Konfiguratioun ännert.
Zwee Porten an zwou Eegenschaften déi se festhalen
De Registry-Port kënnt vun com.sun.management.jmxremote.port, an de Connector ka mat com.sun.management.jmxremote.rmi.port festgehal ginn amplaz en dem Stack ze iwwerloossen. Setz béid ausdrécklech wann eng Firewall oder eng Security Group tëschent Client a Server läit, well en onberechenbaren zweeten Port net viraus erlaabt ka ginn, an e breede Beräich deen dofir opgemaach gëtt ass méi schlëmm wéi ee Wäert festzehalen.
Bestäteg dann mat ss -ltn oder netstat -an um Server datt béid Porten lauschteren a op wéi engen Adressen. E Lauschterer dee op Loopback gebonnen ass ass richteg fir eng reng lokal Deployement a notzlos fir dës.
Wann den annoncéierten Numm falsch ass
Den Hostname deen an der ferner Referenz erschéngt gëtt vun java.rmi.server.hostname gesat. En beaflosst wat de Stub annoncéiert; et ass fir sech selwer keng Instruktioun all Lauschterer op eng Interface ze bannen, dofir gëtt et net ëmmer dat erwaart Een-Port-Verhalen. Setz en, start de Prozess nei an iwwerpréif dann wat de Stub tatsächlech enthält. Wielt en Numm oder eng Adress déi de Client kann opléisen an duerch den Tunnel erreechen, an start de Prozess nei sou datt de Stub nei opgebaut gëtt.
Container-Netzwierker maachen dat méi schlëmm, well d'Adress déi de Prozess gesäit eng intern ka sinn déi näischt baussent dem Container route kann. Publizéier den intendéierten Hostname ausdrécklech amplaz datt d'Plattform wielt.
Wann s de mat SSH tunneleréiers amplaz engem VPN, erschéngt dee selwechte Problem an engem aneren Kleed: nëmmen de Registry-Port virun ze leeden léisst den zweeten Endpunkt op eng Adress weisen déi däi Client net erreeche kann. Leet béid Porten weider a maach datt den annoncéierten Numm sech op eppes opléist wat de Client lokal erreeche kann.
Schalt d'Management-Sécherheet net aus fir et ze vereinfachen
Snippets déi Authentifikatioun an TLS ausschalten si liicht ze fannen a bréngen d'Verbindung op eng Manéier zum Lafen déi s du méi spéit muss réckgängeg maachen. Remote-JMX ass eng Management-Interface mat deene selwechte Privilegien wéi de Prozess deen se iwwerpréift; behalt seng Zougangskontrollen, a wann de Client keng Umeldungsdaten presentéiere kann, behiew dat amplaz.
Wann d'Endpunkten richteg sinn, behal de nächste Feeler deen s de gesäis. Eng Oflehnung vun engem Truststore oder Konto kënnt méi spéit wéi en onerreechbare Connector a bedeit datt d'Netzwierkaarbecht fäerdeg ass.