我想通过 SSL、HTTPS 和其他基于 SSL/TLS 的安全基于文本的 Internet 协议测试客户端与 IMAP 的连接,就像我使用 telnet 或 netcat 如果它们没有通过安全协议进行隧道连接一样。有没有办法让 telnet 或 netcat 通过 SSL/TLS,例如使用管道或备用程序?
是否还有其他人无法nc -lp 8888
在 Mac OS X 上工作?有没有另一种方法可以让它发挥作用?
如何强制 netcat 立即发送我的输入,而不仅仅是换行?我想手动测试一个 HTTP 解析器,并检查它在标题行分布在多个数据包中时的行为。
我正在使用这样的东西将文件从一台计算机发送到另一台:
提供文件(在计算机 A 上):
cat something.zip | nc -l -p 1234
Run Code Online (Sandbox Code Playgroud)
接收文件(在计算机 B 上):
netcat server.ip.here. 1234 > something.zip
Run Code Online (Sandbox Code Playgroud)
我的问题是……我可以反其道而行之吗?假设我在计算机 B 上有文件,我想将它发送到 A,但不是按照我上面写的方式,而是通过使应该接收文件 (A) 的计算机成为“侦听”服务器并连接正在“发送”文件的计算机( B)到服务器并发送文件?是否可以?我认为可能是,但我不知道如何做到这一点。
万一我上面的解释搞砸了:如何将文件发送到“服务器”,而不是在服务器上提供文件,然后从中取出它(就像我上面所做的那样)?
echo command | netcat host port
Run Code Online (Sandbox Code Playgroud)
这导致命令被发送到远程主机并且一些数据被读回。但几秒钟后,连接关闭。-w 参数没有改变任何东西。我在 SuSE 10.1 上使用 netcat v1.10。
我经常将 VM 映像从管理程序传输到存档服务器以进行长期存储。
我使用 netcat 进行传输,因为它比 scp、rsync 等更快。
hypervisor$ cat foo.box | nc <archive IP> 1234
archive$ nc -l -p 1234 > foo.box
Run Code Online (Sandbox Code Playgroud)
文件传输完成后,我通过md5sum
在目标和源上运行来验证没有损坏。
不幸的是,对大文件运行 md5sum 可能需要很长时间。如何更快地比较两个大文件的完整性?
更新:
-k
在 OS X (BSD) 版本的 netcat 中有选项可以在当前连接完成后继续监听。但是在 Debian (GNU?) 版本中,这个选项是缺失的。
有-q -1
选择永远听EOF出现在标准输入后,但这并不做的伎俩和连接紧密反正。
有没有办法强制 Debian 的 netcat 无限期地继续收听?
我找了一个解释在哪里可以找到之间的差异telnet
和netcat
。在哪些情况下我应该使用telnet
and netcat
?telnet
能做什么netcat
不能做什么,反之亦然?
我试图从互联网上得到答案,但它并没有帮助我理解。我能找到的只是不同的 cmds。我正在寻找有差异的用例示例。
有人可以解释解释的区别吗?
我想这很接近linux - Netcat 停止监听 UDP 流量 - 超级用户,但我想我最好还是问一下
至于netcat 的版本,我使用的是 Ubuntu 11.04 和netcat
它的默认版本,我猜是这样的openbsd
:
$ nc
This is nc from the netcat-openbsd package. An alternative nc is available
in the netcat-traditional package.
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-P proxy_username] [-p source_port]
[-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol]
[-x proxy_address[:port]] [hostname] [port[s]]
Run Code Online (Sandbox Code Playgroud)
这就是我觉得奇怪的地方:第一种情况按预期工作 - 我在一个终端中打开了一个 UDP 服务器:
$ sudo nc -ul 5000
Run Code Online (Sandbox Code Playgroud)
...在另一个终端中,我启动了一个新的 UDP 客户端连接 - 我输入了hello
3 次,每次都按 …
$ nc example.com 80
GET / HTTP/1.1
Host: example.com
HTTP/1.1 200 OK
...
Run Code Online (Sandbox Code Playgroud)
它有效,行分隔符就0A
在这里而不是 required 0D0A
。
如何0D0A
在 netcat 中键入分隔查询?
通过每次printf
手动输入\r\n
或实现一些todos
类似于 Perl oneliner 并将其通过管道传输到nc
,很容易做一次性的事情,但也许有一些我想念的简单方法?