2021-08-04 nc

nc基本使用

  nc(netcat)命令短小精干、功能强大,有着“瑞士军刀”的美誉。它主要被用来快速构建网络连接。我们可以让它以服务器方式运行,监听某个端口并接受客户连接,因此它可用来调试客户端程序。我们也可以使之以客户端方式运行,向服务器发起连接并接受发数据,因此它可以用来调试服务器程序,此时它有点像telnet程序。

  nc命令常用来的选项包括:

  • -i,设置数据包传送的时间间隔。
  • -l,以服务器方式运行,监听指定的端口。nc命令默认以服务器方式运行。
  • -k,重复接受并处理某个端口上的所有连接,必须与-l选项一起使用。
  • -n,使用IP地址表示主机,而不是主机名;使用数字表示端口号,而不是服务名称。
  • -p,当nc命令以客户端方式运行时,强制其使用指定的端口号。
  • -s,设置本地主机发送出的数据包的IP地址。
  • -C,将CR和LF两个字符作为行结束符。
  • -U,使用UNIX本地域协议通信。
  • -u,使用UDP协议。nc命令默认使用传输层协议是TCP。
  • -w,如果nc哭护短在指定的时间内未检测到任何输入,则退出。
  • -x,指定目标代理服务器的IP地址和端口号。
  • -z,扫描目标机器上的某个或某些服务是否开启(端口扫描)。比如,要扫描机器ernest-laptop上端口号在20~50之间的服务,可以使用如下命令:
$ nc -z ernest-laptop 20-50

  举例来说,我们可以使用如下方式来连接websrv服务器并向它发送数据:

$ nc -C 127.0.0.1 13579(服务器监听端口13579)
GET http://localhost/a.html HTTP/1.1(回车)
Host:localhost(回车)
(回车)
HTTP/1.1 404 Not Found
Content-Length: 49
Connection: close

The requested file was not found on this server.

  这里我们使用了-C选项,这样每次我们按下回车键向服务器发送一行数据时,nc客户端程序都会给服务器额外发送一个,而这正是websrv服务器期望的HTTP行结束符。发送完第三行数据之后,我们得到了服务器的响应,内容正是我们期望的:服务器没有找到被请求的资源文件a.html。可见,nc命令是一个很方便的快速测试工具,通过它我们能很快找出服务器的逻辑错误。

  : 注意nc/ncat/netcat之间的区别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值