我使用了以下命令
sudo iptables -A INPUT -p tcp --dport 14000 -j ACCEPT
or
sudo iptables -I INPUT -p tcp -m tcp --dport 14000 -j ACCEPT
sudo service iptables save
sudo iptables -L -n
and
sudo firewall-cmd --zone=public --add-port=14000/tcp --permanent
sudo firewall-cmd --reload
但端口号 14000 没有显示在
netstat -plunt
答案1
首先,你应该使用任何一个 iptables
或者 firewall-cmd
, 不是都。如果firewalld
正在运行,您应该使用firewall-cmd
,因为firewalld
这将覆盖您可能使用该命令所做的任何更改iptables
。
并且您的firewall-cmd
行指定端口 80,而不是 14000。
其次,如果没有实际使用端口,则无法打开端口。如果您使用软件防火墙(firewalld
或者 raw iptables
),您可能会将所有传入端口视为被阻止:你的iptables
或firewall-cmd
命令会解锁已使用的端口,但尚未实际使用打开它。
要打开端口,您需要启动一些实际使用该端口的进程。为了进行测试,您可以使用 netcat 监听端口 14000:
nc -l 14000
当该命令运行时,您会看到端口在“LISTEN”状态下打开,但是如果您随后尝试启动配置为使用端口 14000 的 jBoss 服务器,它将返回一个错误,告诉您端口 14000 已打开已在使用(通过 netcat 命令)。您必须停止 netcat 命令(导致端口再次关闭),然后才能成功重新启动端口 14000 中的 jBoss 服务器:然后 jBoss 服务器将能够打开该端口供其自己使用。
一般来说,当端口被阻止通过软件防火墙,它完全忽略任何传入的连接尝试:如果您尝试远程登录到被阻止的 TCP 端口,连接尝试将挂起并最终在大约一分钟后超时。
当 TCP 端口畅通但关闭,尝试 telnet 到它会立即返回“连接被拒绝”错误消息。
另一方面,UDP 端口没有任何标准响应:要测试与 UDP 端口的连接,您必须发送针对特定的基于 UDP 的服务正确格式化的请求,并查看是否获得有效响应。可能存在根本不响应的“单向”UDP 服务:对于这些服务,您必须检查接收端的日志以验证连接测试是否已成功接收。