
我在 google Ubuntu VM 上的 tomcat 中部署了一個應用程式。應用程式運作良好,可透過網域名稱和 IP 位址遠端存取。
我想使用另一個 Ubuntu 系統中的 Eclipse 遠端偵錯該應用程式。在 google VM 上,我使用指令啟動 tomcat,
catalina.sh jpda start
在tomcat日誌中我可以看到,
Listening for transport dt_socket at address: 8000
我猜這意味著在 8000 連接埠上啟用了遠端調試。但是當我嘗試從 Eclipse 連接到應用程式進行遠端偵錯時,它給出了'連線被拒絕'錯誤。
當我遠端嘗試 telnet 時,它給出了,
ivish@ivish:~$ telnet host_ip 8000
Trying host_ip ...
telnet: Unable to connect to remote host: Connection timed out
我已經用上面的host_ip替換了實際的IP位址。
nmap的輸出如下,
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
知道如何成功遠端調試應用程式嗎?謝謝。
編輯:
Google VM 上「sudo iptables -L」指令的輸出。
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
本地 Ubuntu 系統上「sudo iptables -L」指令的輸出。
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
答案1
首先,我建議您可以使用 ufw 命令集來查看您擁有的內容。
這是 ufw 的連結;
https://help.ubuntu.com/community/UFW
如果連接埠沒有啟用,您可以執行以下命令來啟用連接埠;
檢查你有什麼
UFW 狀態
啟用連接埠
ufw 允許從任意到任意 8000
並應用更改
ufw 停用 && ufw 啟用
除此之外,您還可以檢查 ubuntu 伺服器安全性群組設定。大多數情況下,ubuntu伺服器不允許存取8080等連接埠。