前言
服务器安装宝塔后我的docker里面的minio服务突然不能用了,但是minio容器是正常的,经过各种排查发现我的linux 防火墙被打开了(本来是没有打开的,具体不知道原因,我怀疑是宝塔搞得鬼。。。。)。而且相关的端口并没有开放。排查花费了一点时间 所以记录一下。
在Linux操作系统中,防火墙是一项重要的安全措施,用于保护计算机免受未经授权的访问和恶意攻击。有时候,为了满足特定的网络需求或进行网络测试,我们可能需要关闭或者防火墙或特定的防火墙端口,防火墙工具有多种,如iptables和firewalld。下面将介绍如何使用防火墙。
一、 关闭iptables防火墙端口?
sudo iptables -A INPUT -p tcp --dport [端口号] -j DROP
上述命令将会向iptables防火墙添加一个规则,使得TCP协议、指定端口号的进入流量被丢弃。这样,该端口将会被关闭,并且无法访问。
如果您希望在重启系统后仍然保持该端口关闭状态,您可以保存iptables规则:
sudo service iptables save
二、关闭firewalld防火墙端口
sudo firewall-cmd --zone=public --remove-port=[端口号]/tcp --permanent
sudo firewall-cmd --reload
第一条命令将会从firewalld防火墙中移除指定的TCP端口号,第二条命令将使更改生效
三、检查防火墙状态
systemctl status firewalld
三、查看已经开放的端口
firewall-cmd --list-ports
sudo iptables -L-n| grep 端口号
四、检测已经开放的特定端口
sudo firewall-cmd --zone=public --query-port=80/tcp
sudo iptables -L -n | grep 80
测试:
五、开放端口
如果发现没有我们需要的的端口 开启端口,例如此时需要8080端口
firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload # 重新载入firewalld配置
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 开放80端口
sudo service iptables save # 保存iptables配置
sudo service iptables restart # 重启iptables服务
在这里,--zone=public 表示添加到公共区域,--add-port=80/tcp 表示添加TCP协议的80端口,
--permanent 表示将该规则持久化保存。
六、检测Linux端口是否开放
使用ss或grep命令组合:
ss -tuln | grep 80 或者 netstat -tuln | grep 80
这些命令会列出所有开放的TCP和UDP端口,并通过grep筛选出端口80。如果端口开放,您会看到包含该端口的输出行。
使用netcat(nc)工具:
nc -zv 127.0.0.1 80
如果端口开放,您会看到类似于“succeeded”的输出。如果端口关闭或者不可达,则会显示错误信息。