我使用 netcat 命令有什么问题?

我使用 netcat 命令有什么问题?

我可以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+ ZCtrl+等)来管理流程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))

相关内容