![允许在 Ubuntu 上的 8000 端口上进行远程 tomcat 调试](https://linux22.com/image/1507289/%E5%85%81%E8%AE%B8%E5%9C%A8%20Ubuntu%20%E4%B8%8A%E7%9A%84%208000%20%E7%AB%AF%E5%8F%A3%E4%B8%8A%E8%BF%9B%E8%A1%8C%E8%BF%9C%E7%A8%8B%20tomcat%20%E8%B0%83%E8%AF%95.png)
我在 Google Ubuntu VM 上的 tomcat 中部署了一个应用程序。应用程序运行良好,可通过域名和 IP 地址远程访问。
我想使用 Eclipse 从另一个 Ubuntu 系统远程调试此应用程序。在 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。因此,您也可以编辑入站规则以启用 8000 端口。