我正在尝试让 netcat 侦听端口 4444,但它似乎不起作用。我正在使用 nmap 检查端口是否打开,但它没有选择它,我不知道为什么。我尝试了各种端口,但没有任何乐趣。
这是我的终端的副本,因此您可以看到我在做什么以及我尝试了什么:
#iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
# nmap localhost -p 4444
Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-07-31 16:37 BST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00019s latency).
Other addresses for localhost (not scanned): 127.0.0.1
PORT STATE SERVICE
4444/tcp closed krb524
Nmap done: 1 IP address …Run Code Online (Sandbox Code Playgroud) 为什么包装中-e缺少该选项netcat-openbsd?有一个netcat-traditional包,但它缺少 OpenBSD 包中的许多功能。我正在运行 Linux Mint 16。
有谁知道为什么缺少这个?它删除了netcat的一个很大的特性。
我使用 netcat 运行一个简单的服务器,如下所示:
while true; do nc -l -p 2468 -e ./my_exe; done
这样,任何人都可以通过端口 2468 连接到我的主机并与“my_exe”对话。
不幸的是,如果其他人想在打开的会话期间连接,它会收到“连接被拒绝”错误,因为 netcat 在下一个“while”循环之前不再处于监听状态。
有没有办法让 netcat 表现得像一个多线程服务器,即总是监听传入的连接?如果没有,是否有一些解决方法?
有一个守护进程在侦听端口 5144,我无法修改。
我想使用 netcat 将文本文件的内容发送到服务器,但这会导致netcat终端挂起,直到我按下Ctrl+ C:
cat file.txt | nc -u 127.0.0.1 5144
Run Code Online (Sandbox Code Playgroud)
我能够让它工作的唯一方法是nc -u 127.0.0.1 5144手动运行和复制/粘贴文件的内容。
有任何想法吗?
另请注意:
cat file.txt | ...导致bash: ...: command not found我可以继续使用终端nc -u 127.0.0.1 5144 < file.txt导致与 using | 相同的行为 以上我正在使用 tcpdump 来捕获多播数据包,并且必须编写一个自定义程序来加入多播源,以便 tcpdump 将“看到”数据包。只是想知道 netcat 或任何其他应用程序是否可以执行此功能?
是否可以通过 netcat 对控制台应用程序的实例进行“管道化”,因此 netcat 正在侦听新连接stdin并stdout通过网络连接重定向和重定向。
我使用此命令侦听端口并将数据转储到文件:
while : ; do nc -l 0.0.0.0 10000 > log.txt & done
Run Code Online (Sandbox Code Playgroud)
第一个请求完美无缺,它被转储到 log.txt 中,但是在第一次请求之后,nc 不再监听而是停止了。
有人可以指出我做错了什么吗?
我只是希望它在后台连续运行并将来自该端口的任何请求记录到 log.txt 文件中...
我可以执行以下操作以在 netcat 中发送二进制数据:
echo -e '\x80' | nc host port
Run Code Online (Sandbox Code Playgroud)
但我不想这样做,我想要的是连接到服务器:
nc 192.168.1.115 12345
Run Code Online (Sandbox Code Playgroud)
然后发送一些文本:
aaaaaaaaaabbbbbbbbbbccccccccccc
Run Code Online (Sandbox Code Playgroud)
然后发送一些二进制数据:
0x80 0xF4 0x12
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我在某些 Linux 机器上使用 netcat(请参阅其他问题),但看到了一些意外行为。
与已接受答案中的指南不同,我没有使用 UDP 隧道进行 DNS 查询。我有一个可以登录但不能安装软件的远程服务器,我正在尝试将 UDP 流量从我的计算机传输到服务器,然后设置一个单独的隧道将 UDP 响应从服务器发送回我的机器.
从我的机器到服务器的隧道工作正常,但是在服务器端,侦听来自 UDP 服务器的响应的 netcat 实例将在收到第一个响应后关闭侦听器。所以我可以发送一个请求并得到 1 个响应,但任何后续请求都可以正常发送到服务器,但没有收到响应。使用 netstat 我可以看到在收到响应之前 netcat 正在侦听,但是在收到响应后端口被关闭。
我机器上的 netcat 实例似乎可以很好地处理一切。两台机器都运行 netcat v1.10-38。任何想法发生了什么?
我已经尝试过 netcat 的两个主要版本:GNU 和 BSD。(我的是 BSD 版本)。
在 GNU 版本上,命令 $ nc -l -p 12345 可以正常工作,但是对于 BSD,选项 -l(listen)不能与 -p(本地端口)结合使用。
我不明白为什么这两个版本之间有这么大的区别?在 BSD 版本中,当我使用选项 -p 时,它会自动调用 -l (listen) ?
谢谢 ;-)
Ps:https : //bugs.launchpad.net/ubuntu/+source/netcat-openbsd/+bug/590925/comments/3 -p 两者不同。OpenBSD 版本使用它来设置远程连接的源端口,而传统的 nc 使用它来指定在侦听模式下将侦听的本地端口。