Ubuntu 18.20为什么无法打开端口

Ubuntu需要打开8080端口,先netstat -aptn看了一下没有打开,然后用命令sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT打开后再看依然还是没有打开,telnet localhost 8080 提示telnet: Unable to connect to remote host: Connection refused,用netstat -at 查看其他端口后telnet其他端口能通

img

img

img

没有进程监听在8080端口,所以连接被拒绝。在iptables中打开端口只是防火墙的一部分,还要你自己在计算机上运行一个应用程序来监听该端口。你试试在8080端口上运行一个服务器,当该服务器正在监听该端口时,才能连接该端口。

解决方案来自 梦想橡皮擦 狂飙组基于 GPT 编写的问答软件

这个问题可能是由于 Ubuntu 防火墙没有正确配置导致的。
使用 sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT 命令添加的规则并不是永久生效的,需要保存配置才能使防火墙规则永久生效。

要永久生效,可以使用如下命令:

sudo iptables-save > /etc/iptables.rules

在重启后,可以使用如下命令加载配置:

sudo iptables-restore < /etc/iptables.rules

如果你使用的是 ufw 防火墙,可以使用如下命令开放端口:

sudo ufw allow 8080/tcp

检查防火墙规则:使用命令sudo iptables -L查看防火墙规则,确认8080端口是否被允许。

检查防火墙服务:使用命令sudo service iptables status检查防火墙服务是否正常运行。

检查端口使用情况:使用命令sudo netstat -tulpn检查8080端口是否被其他程序占用。

重启防火墙服务:如果防火墙服务存在问题,可以尝试重启服务:sudo service iptables restart。

如果还是不能解决问题,请检查相关服务是否正常运行,或者尝试在安全模式下重启系统以解决问题。