如何在 Ubuntu 中打开已关闭的端口?

如何在 Ubuntu 中打开已关闭的端口?

我试图终止在端口 8080 上运行的进程并将其用于远程调试目的。

我的源代码在主机上,而编译后的 jar 在另一台 Ubuntu 服务器上。因此,我尝试在端口 8080 上进行远程调试,我更改了IntelliJ配置中必要的参数以继续进行远程调试,并尝试从该服务器机器运行 jar,如下所示:

java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8080 hdfstohive-1.0-SNAPSHOT-jar-with-dependencies.jar

nmap serverip由于我终止了服务器机器上运行的进程,所以现在我无法看到打开的端口netstat -atun

所以我尝试将其添加到防火墙 ( sudo ufw allow 8080/tcp) 规则和 iptable ( sudo iptables -I INPUT -p tcp -s 0.0.0.0/0 --dport 8080 -j ACCEPT) 中,但仍然看不到打开的端口。我也尝试过禁用防火墙,但仍然没有成功。

因此我需要打开该端口,以便我可以从主机进行远程调试。我确信我已经遗漏了一些关键的东西。

我是不是要走向衰落了?任何帮助我都会感激不尽。

答案1

在 Ubuntu 上,所有端口都是开放的,除非有防火墙或应用程序阻止它。在正常情况下,在端口上运行的应用程序用于聆听.以便它可以从端口接收。

阻塞或者结束语端口正在使用对防火墙块的引用。

因此,如果您的防火墙没有阻止该端口,则该端口处于打开状态。

当某个程序正在运行并且聆听在端口上。您可以使用以下命令(以及许多其他命令)判断哪些端口有程序正在运行(侦听):

$ netstat -tulnp | grep "LISTEN"

您可以使用此命令来识别哪个应用程序正在使用该端口(在本例中检查端口 80):

$ sudo lsof -i tcp:80

端口已打开

你提到你终止了服务器上正在运行的进程,现在无法看到正在打开的端口。您看不到它被打开,因为上面没有运行任何程序。

您可以通过运行来测试有问题的端口网猫就可以了。Netcat 是一个用于 TCP 和 UDP 连接和监听的实用程序。

在你的端口上运行这个:

$ netcat -l 1234

然后从另一台计算机运行以下命令:

$ telnet serverIP 1234
Trying 192.168.15.81...
Connected to ubunzeus.apollo3.com.
Escape character is '^]'.
this is a test

您会注意到服务器控制台上会出现“这是一个测试”文本。这是测试端口的一种方法。测试结束后,您可以在服务器上按Ctrl+取消应用程序。C

希望这有助于澄清您的端口上发生的情况。

相关内容