使用 ss 检查打开的端口

Checking open ports using ss

我需要在指定的地址范围 192.168.1(例如 100-105)中检查 linux tcp :80tcp :443 上的开放端口,并打印可用的端口hosts 和 ports ,我想我已经使用 nmap 实现了它,它看起来像这样:

nmap -sT -p 80, 443 192.168.0.-255

但是,我需要使用内置工具,因此我决定使用 ss 命令来实现。 到目前为止我写的是这样的:

for i in {0..255}
do
  echo '$i'
  ss -ant '( src 192.168.1.$i or dst 192.168.1.$i ) and ( ( dport = :80 or dport = :443 ) or ( sport = :443 or sport = :80 ) )'
done

但它不起作用,因为 $i 变量放在引号内。我不确定我是否做对了,但这是我到目前为止所做的。(我只是网络的初学者)

我现在无法访问 linux shell,但请尝试使用双引号,如下所示:

#!/bin/bash

for i in {0..255}
do
  echo "$i"
  ss -ant "( src 192.168.1.$i or dst 192.168.1.$i ) and ( ( dport = :80 or dport = :443 ) or ( sport = :443 or sport = :80 ) )"
done