我可以netcat
仅在列出单个端口时运行此命令来监听端口,例如:
sudo ncat -lp 80 -w 10
但是,当我尝试输入多个端口号时,它说端口号无效:
<user>@<pcname>:~$ sudo ncat -lp 22,80,8080 -w 10
Ncat: Invalid source port number "22,80,8080". QUITTING.
当我用谷歌搜索时,我发现你可以输入多个端口,它们之间用逗号隔开。
那么我该如何修改命令以一次检查多个端口?还是我必须多次输入该命令?
答案1
ncat
不支持监听(或连接)多个端口。你从哪里读到的?永远不要相信 Copilot。使用man ncat
。
我不会排除许多 Netcat 实现中的一个/一些会默认允许这样做,但是在这种情况下,编写脚本打开多个端口相当容易(我选择了更合理的非特权端口):
for port in 10001 10002 10003; do ncat -l $port & done
或者简而言之,如果你打开一个范围:
for port in {10001..10003}; do ncat -l $port & done
user@[REDACTED] ~ % for port in {10001..10003}; do ncat -l $port & done
[2] 55126
[3] 55127
[4] 55128
fg
然后,您可以使用作业控制( 、Ctrl+ Z、Ctrl+等)来管理流程C。
user@[REDACTED] ~ % ss -lp | grep ncat
tcp LISTEN 0 10 0.0.0.0:10001 0.0.0.0:* users:(("ncat",pid=55261,fd=4))
tcp LISTEN 0 10 0.0.0.0:10003 0.0.0.0:* users:(("ncat",pid=55263,fd=4))
tcp LISTEN 0 10 0.0.0.0:10002 0.0.0.0:* users:(("ncat",pid=55262,fd=4))
tcp LISTEN 0 10 [::]:10001 [::]:* users:(("ncat",pid=55261,fd=3))
tcp LISTEN 0 10 [::]:10003 [::]:* users:(("ncat",pid=55263,fd=3))
tcp LISTEN 0 10 [::]:10002 [::]:* users:(("ncat",pid=55262,fd=3))