聊城app制作网站,乐山网站开发公司电话,网上国网推广方案,wordpress 存档过多1、准备
我们可以使用下面命令关闭一个端口
sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP我关闭的是22端口#xff0c;各位可以关其它的或者打开其它端口测试#xff0c;谨慎关闭22端口#xff01;不然就会像我下面一样握手超时#x1f62d;#x1f62d;…1、准备
我们可以使用下面命令关闭一个端口
sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP我关闭的是22端口各位可以关其它的或者打开其它端口测试谨慎关闭22端口不然就会像我下面一样握手超时 打开端口
sudo iptables -I INPUT -p tcp --dport 端口号 -j ACCEPT注意 这些更改在当前会话中有效重启后可能会丢失。要保存规则可以使用iptables-save命令将规则导出到文件并在系统启动时重新加载。 然后可以通过命令行的方式检查一下机器打开端口的状态
nc -zvw5 1.1.1.12 22其中
-z表示扫描模式只扫描端口而不发送任何数据。 -v表示详细模式会显示更多的扫描信息。-w5设置超时时间wait timeout后面的数字在这个例子中是5表示等待响应的最大秒数。如果在这个时间内没有收到响应则认为连接失败。hostname_or_IP192.168.1.1目标主机的主机名或IP地址。port22要检查的端口号。
另外如果你想要一个更详细的端口扫描报告包括操作系统检测和服务版本检测你可能需要使用更高级的端口扫描工具如Nmap。
创建测试文件
cat EOF host.txt
1.1.1.12
1.1.1.13
1.1.1.14
EOF2、编写代码
使用vim编写check_prot.sh文件
vim check_prot.sh然后话不多说直接上代码 下面是一键批量检查主机端口的脚本完整代码,都写了注释
#!/bin/bash
#auther:黑子哥呢
#desc:一键批量检查端口# 要检查的主机列表文件格式主机名或IP
HOST_FILEhost.txt# 要检查的端口号
PORT$1 # 例如检查SSH端口通常为22# 临时文件用于存储打开端口的主机
OPEN_PORTS_FILE$(mktemp)# 临时文件用于存储没有打开端口的主机
CLOSED_PORTS_FILE$(mktemp)# 检查主机列表文件是否存在
if [ ! -f $HOST_FILE ]; thenecho 主机列表文件 $HOST_FILE 不存在。exit 1
fi# 检查端口是否打开的函数
check_port() {local host$1local port$2# 尝试使用nc检查端口如果nc不可用可以尝试其他方法if nc -zw5 $host $port /dev/null; thenecho $host $OPEN_PORTS_FILEelseecho $host $CLOSED_PORTS_FILEfi
}# 读取主机列表并检查端口
while IFS read -r host; do# 跳过空行if [ -z $host ]; thencontinueficheck_port $host $PORT
done $HOST_FILE# 输出打开端口的主机列表
if [ -s $OPEN_PORTS_FILE ]; thenecho 以下主机的 $PORT 端口是打开的cat $OPEN_PORTS_FILE
fi# 输出没有打开端口的主机列表
if [ -s $CLOSED_PORTS_FILE ]; thenecho 以下主机的 $PORT 端口是没有打开的cat $CLOSED_PORTS_FILE
fi# 清理临时文件
rm -f $OPEN_PORTS_FILE $CLOSED_PORTS_FILE上面代码除了使用nc也可以使用其它工具比如nmap使用nmap可以参考这篇文章nmap命令详细教程 比如下面的例子我们只需要把nc那一行的命令替换成nmap即可 例子 上面脚本中的代码 nc -zw5 $host $port /dev/null上面内容替换成下面的 nmap -sT -p 22 --open -oN /dev/null 1.1.1.12 |grep -q open注意 使用nmap之前请确保自己的机器上安装了nmap如果没有请先安装 安装命令 yum -y install nmap运行脚本命令
sh check_prot.sh 22等待一会就可以看见下面脚本运行结果