
Ich habe eine Anwendung in Tomcat auf einer Google Ubuntu-VM bereitgestellt. Die Anwendung läuft einwandfrei und ist per Fernzugriff über Domänennamen und IP-Adresse erreichbar.
Ich möchte diese Anwendung per Fernzugriff mit Eclipse von einem anderen Ubuntu-System aus debuggen. Auf der Google-VM starte ich den Tomcat mit dem Befehl:
catalina.sh jpda start
Im Tomcat-Protokoll kann ich sehen,
Listening for transport dt_socket at address: 8000
Ich vermute, das bedeutet, dass Remote-Debugging auf Port 8000 aktiviert ist. Aber wenn ich versuche, von Eclipse aus eine Verbindung zur Anwendung für Remote-Debugging herzustellen, gibt es'Verbindung abgelehnt'Fehler.
Wenn ich es per Telnet versuche, erhalte ich
ivish@ivish:~$ telnet host_ip 8000
Trying host_ip ...
telnet: Unable to connect to remote host: Connection timed out
Ich habe die tatsächliche IP-Adresse oben durch Host_IP ersetzt.
Die Ausgabe von nmap ist wie folgt:
google@vm:/opt/tomcat8$ nmap localhost
Starting Nmap 5.21 ( http://nmap.org ) at 2016-09-19 05:27 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00015s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3306/tcp open mysql
5432/tcp open postgresql
8000/tcp open http-alt
8009/tcp open ajp13
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
Irgendeine Idee, wie ich die Anwendung erfolgreich remote debuggen kann? Danke.
BEARBEITEN:
Ausgabe des Befehls „sudo iptables -L“ auf der Google VM.
google@vm:/opt/tomcat8$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
sshguard all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain sshguard (1 references)
target prot opt source destination
Ausgabe des Befehls „sudo iptables -L“ auf dem lokalen Ubuntu-System.
ivish@ivish:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Antwort1
Zunächst möchte ich vorschlagen, dass Sie den UFW-Befehlssatz verwenden, um zu sehen, was Sie haben.
Hier ist der Link für ufw;
https://help.ubuntu.com/community/UFW
Wenn der Port nicht aktiviert ist, können Sie den folgenden Befehl ausführen, um den Port zu aktivieren;
Überprüfen Sie, was Sie haben
UFW-Status
Zum Portieren aktivieren
ufw erlauben von jedem bis zu jedem 8000
Und wenden Sie die Änderung an
ufw deaktivieren und ufw aktivieren
Darüber hinaus können Sie die Einstellungen der Sicherheitsgruppen des Ubuntu-Servers überprüfen. In den meisten Fällen erlauben Ubuntu-Server keinen Zugriff auf viele Ports wie 8080. Sie können daher auch die eingehenden Regeln bearbeiten, um Port 8000 zu aktivieren.