当前位置: 首页 > ai >正文

Linux 网络通信瑞士军刀 nc 命令使用

Linux 网络通信瑞士军刀 nc 命令使用

简介

netcat也就是nc被称为TCP/IP的瑞士军刀。以体积小,功能灵活著称。在各个发行版有默认安装,可以用来做很多网络相关的工作。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。 它被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。甚至还可以作为简单的 TCP 代理。

我简单的列一下我使用过的常用的命令。

命令选项:

-g<网关>:设置路由器跃程通信网关,最多设置 8 个;
-G<指向器数目>:设置来源路由指向器,其数值为 4 的倍数;
-h:在线帮助;
-i<延迟秒数>:设置时间间隔,以便传送信息及扫描通信端口;
-l:使用监听模式,监控传入的资料;
-n:直接使用 ip 地址,而不通过域名服务器;
-o<输出文件>:指定文件名称,把往来传输的数据以 16 进制字码倾倒成该文件保存;
-p<通信端口>:设置本地主机使用的通信端口;
-r:指定源端口和目的端口都进行随机的选择;
-s<来源位址>:设置本地主机送出数据包的 IP 地址;
-u:使用 UDP 传输协议;
-v:显示指令执行过程;
-w<超时秒数>:设置等待连线的时间;
-z:使用 0 输入/输出模式,只在扫描通信端口时使用。

常用命令

传输测试

nc -l 8080

这个命令会监听本机 8080 端口,直到有 http 请求过来,然后显示出相关信息。

在主机 A 执行了这个命令之后,如果访问方式不是浏览器通过 HTTP 进行的,可以在主机 B 上面使用命令nc ip port连接过去,这样两台主机就可以通信了,随便输点什么,对方就会显示。

测试 UDP 会话

测试两台主机 UDP 连接是否可以通信时,在主机 A 上:

nc -u -l -p 8080

在主机 B 上面,连上去:

nc -u IP 8080

可以向之前 tcp 一样的方法进行检测。

端口测试

比如你在远程服务器 A 的某个端口启动了一个服务,但是你怎么测试这个服务通不通呢,这时你可以用本地机器 B 使用 nc 命令来测试。

nc -zv IP 8080

这个命令会告诉你,远端服务器的 8080 端口是否可以正常连接。nc 后面的端口也可以变成一个范围进行扫描。

nc -v -v -w3 -z IP 8080-8083

两次 -v 是让它报告更详细的内容,-w3 是设置扫描超时时间为 3 秒。

网络代理&端口转发

某些时候,我们可能需要一个网络代理来进行一些事情。在条件有限的情况下,可以做一个简单的代理。

现在假设有 A B C 三个主机。

在主机 A 上运行。

nc -l 8080 | nc B 8081

代表主机 A 监听自己的 8080 端口,并且把收到的请求都传送到主机 B 上。看命令可以知道把第一个命令的输出作为第二个命令的输入。但是此时代理是单向的,我们修改一下就可以变成双向。

mkfifo riba
nc -l 8080 0<riba | nc B 8081 1>riba

稍微解释一下这个命令,首先用 mkfifo 创建了一个双向管道,<> 是用来重定向的符号,0 在 linux 中代表标准输入,1 代标准输出,2 代表标准错误输出。那么这个命令就首先在 A 机器监听 8080 端口,把标准输入定向为管道,发送给 B, 然后 B 把自己接收的信息写进管道,标准输出到了管道,这样可以实现双向通信。

总结

暂时就用到这么多,先更到这。netcat 就是可以在命令行直接的方式操作 TCP 或者 UDP 进行原始的:监听,连接,数据传输等工作。然后搭配管道,实现灵活多样的功能。

http://www.xdnf.cn/news/10942.html

相关文章:

  • rails + devise 用户注册登录及权限判断
  • 解析网页的request header
  • A站、B站、C站、D站、E站、F站、G站、H站、I站、J站、K站、L站、M站、N站、O站、P站、Q站、R站、S站、T站、U站、V站、W站、X站、Y站、Z站都是什么网站?Q站是什么?
  • Quality Center介绍
  • centos7安装dzzoffice和OnlyOffice 安装过程和踩坑出坑!
  • c语言中 5.1lf什么意思,期货股指lf_中金所期货指数IF、IH、IC分别是什么英文单词的缩写_期货攻略网...
  • awk从放弃到入门(9):awk数组详解
  • C#获取文件路径或者文件夹路径的方法
  • 谷歌离线地图FTP下载
  • IIS配置问题 Directory Listing Denied
  • MSDTC不可用解决办法
  • 个人博客搭建指南
  • 网吧游戏服务器虚拟机,用虚拟机亲自体验网咖无盘系统,终于知道网咖系统快的原因了...
  • 什么是J2EE?
  • 技巧-盗号怎么盗啊手机qq软件-小白攻防教学
  • nod32 linux升级方法,打造全自动的NOD32升级服务器
  • 【云计算学习教程】云计算虚拟化技术和容器技术详解
  • UNIX系统常用命令
  • 图片轮显效果大全
  • u-boot编译流程简要分析
  • OC内存管理
  • 实战 DeviceIoControl 之五:列举已安装的存储设备
  • Android jetpack最佳总结和实践
  • Windows CE 模拟器和远程调试工具
  • 按钮提交表单
  • 关于MySQL的文献M_什么是参考文献?文献类型标识码有,M、J、C、N、D、P、S、DB/OL、J/OL、N/OL等它们都代表什么意思?(提...
  • 中标麒麟服务器系统安装教程,安装国产Linux中标麒麟操作系统教程
  • 提升交际能力:8个技巧避免尬聊,寻找话题轻松聊天
  • 怎么完全卸载赛门铁克_赛门铁克(sep)卸载方法
  • 技术人如何搭建自己的技术博客