监听多个端口?

14

你不能使用netcat监听一个端口范围吗?你可以扫描端口范围,但好像不能监听。所以唯一的解决方案是编写脚本吗?


另请参见 https://dev59.com/iV0a5IYBdhLWcg3w-8_a - scai
4个回答

10

我知道这篇文章有点老,但我最近找到了一个不错的解决方案,它采用了一行简洁的代码,适用于bash shell和Redhat 7操作系统。

for j in 202{0..5}; do nc -lvnp $j & done

这应该会打开一系列监听端口,从2020到2025,或者你想要的任何范围。

如果你不是root用户而是sudoer,并且必须监听低于1024的端口,在nc命令之前添加sudo

for j in 101{0..5}; do sudo nc -lvnp $j & done

编辑:n/c:缺少本地端口参数。{-p}

(说明:未找到本地端口参数)


done 语句之前需要加上分号吗? - RonJohn

3

我认为它不支持该功能。如果您满意任何老旧的解决方案,可以使用netcat的ncat版本,并为每个端口设置转发。您可以为除第一个端口外的所有端口生成一个转发器,然后侦听第一个端口:

first_port=2999
last_port=3004

for (( i = first_port+1; i <= last_port; i++ )) do
    ncat -l -k -p $i -c "nc localhost $last_port" &
done

ncat -l -k -p $first_port

我承认,这有点陈旧。


Ncat比Netcat更好。Ncat被认为比Netcat更安全,并由nmap积极维护。 - FilBot3
而要检查端口是否开放,nc可以接受端口范围。 $ nc -zv 192.168.56.10 2999-3004 - EsmaeelE

2
如果你想通过多个本地端口扫描目标,可以使用-p <PORT>选项[1]。这告诉netcat查看该本地端口,类似于告诉它在该端口上设置后门侦听器。如果这些端口被分开,你也可以将它们串起来。以下是我刚刚使用的一个示例。
$ nc -vvz -p 80 -p 8080 -p 443 testserver.mycompany.com 3066

这是我的解决方法。当然,你也可以列举多个目标端口来扫描这些端口,并通过每个本地端口进行扫描。

[1] http://www.instructables.com/id/More-Fun-with-netcat/step2/Basic-Netcat-commands/


0

或者iptables,

iptables -t nat -A INPUT -p tcp --dport 8080 -j REDIRECT --to-port 80

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接