3 Stimmen

JProfiler - wie kann man eine entfernte Anwendung profile, wenn eine Firewall vorhanden ist?

Ich habe es erfolgreich geschafft, die JProfiler Remote-Sonde zu installieren und sehe sie in 'catalina.out' (Tomcat) laufen. Das einzige Problem ist, dass alle Ports auf der Remote-Maschine durch eine Firewall blockiert sind (außer 80 und 8080) und egal, welchen Port ich wähle, die JProfiler GUI kann keine Verbindung zur Remote-Sonde herstellen.

Ich habe versucht, PuTTY-Tunneling zu verwenden, bin mir aber nicht sicher, wie ich die Tunneling-Regeln einrichten soll. Außerdem scheint es keine 'Netzwerkeinstellungen' in JProfiler zu geben, in denen ich einen SOCKS-Proxy angeben kann.

Wie kann ich dieses Problem überwinden, ohne die Firewall-Regeln zu beeinträchtigen? Die Remote-Maschine steht nicht direkt unter meiner Kontrolle und es dauert viel Zeit und Bürokratie, zusätzliche Ports zu öffnen.

4voto

Ivan Davidov Punkte 277

Ich habe eine Lösung gefunden, die mehrere Schritte erfordert.

Schritt 1: Erstellen Sie einen ordnungsgemäßen SOCKS-Tunnel:

PuTTY-Proxyeinstellungen für JProfiler beim Profilieren einer Remote-Anwendung mit Firewall.

Vergessen Sie nicht, am Ende auf die Schaltfläche 'Hinzufügen' zu klicken.

Schritt 2: Ändern Sie das Startskript von JProfiler und fügen Sie die SOCKS-Proxyeinstellungen hinzu:

java -Xmx512m -classpath "%LOCALCLASSPATH%" -DsocksProxyHost=localhost -DsocksProxyPort=8849 com.jprofiler.frontend.FrontendApplication

Der obige Code-Schnipsel sollte in jprofiler.bat platziert werden, der sich hier befindet:

\Program Files\jprofiler8\bin\windows

Schritt 3: Öffnen Sie eine remote JProfiler-Sitzung und verwenden Sie den originalen remote host und den originalen remote port. Mit anderen Worten, starten Sie eine normale Remote-Profiling-Sitzung ohne Abweichungen vom ursprünglichen Prozess. Das PuTTY-Tunneling kümmert sich automatisch um das Problem mit der Firewall für Sie.

1voto

wbdarby Punkte 1079

Ich mache dasselbe mit SSH (verwende Cygwin unter Windows):

ssh -L 8849:localhost:8849 @

Da es sich um keinen privilegierten Port handelt, können Sie sich als Standardbenutzer anmelden.

Dann kann ich die JProfiler-GUI mit dem Port 8849 auf dem lokalen Windows-Rechner verbinden.

Übrigens verwende ich auch jpenable auf dem Ziel, um den Profiling-Agenten freizugeben, ohne die Start-/Konfigurationsdateien des Anwendungsservers zu ändern:

jpenable --pid= --noinput --gui --port=8849

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X