10 个例子教你学会 ncat 命令

ncat 或者说 nc 是一款功能类似 cat 的工具,但是是用于网络的。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。

-- Pradeep Kumar

本文导航

◈ 例子: 1) 监听入站连接

18%

◈ 例子: 2) 连接远程系统

23%

◈ 例子: 3) 连接 UDP 端口

34%

◈ 例子: 4) 将 nc 作为聊天工具

46%

◈ 例子: 5) 将 nc 作为代理

53%

◈ 例子: 6) 使用 nc 拷贝文件

61%

◈ 例子: 7) 通过 nc 创建后门

72%

◈ 例子: 8) 通过 nc 进行端口转发

80%

◈ 例子: 9) 设置连接超时

84%

◈ 例子: 10) 使用 -k 选项强制 nc 待命

88%

编译自 | https://www.linuxtechi.com/nc-ncat-command-examples-linux-systems/

作者 | Pradeep Kumar

译者 | lujun9972

或者说 是一款功能类似 的工具,但是是用于网络的。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。 它被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。

/ 既是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至可以做为一个简单的 TCP 代理。 由于有这么多的功能,它被誉为是网络界的瑞士军刀。 这是每个系统管理员都应该知道并且掌握它。

在大多数 Debian 发行版中, 是默认可用的,它会在安装系统的过程中自动被安装。 但是在 CentOS 7 / RHEL 7 的最小化安装中, 并不会默认被安装。 你需要用下列命令手工安装。

系统管理员可以用它来审计系统安全,用它来找出开放的端口然后保护这些端口。 管理员还能用它作为客户端来审计 Web 服务器、telnet 服务器、邮件服务器等, 通过 我们可以控制发送的每个字符,也可以查看对方的回应。

我们还可以用它捕获客户端发送的数据以此来了解这些客户端是做什么的。

在本文中,我们会通过 10 个例子来学习如何使用 命令。

例子: 1) 监听入站连接

通过 选项, 可以进入监听模式,使我们可以在指定端口监听入站连接。 完整的命令是这样的:

比如,

服务器就会开始在 8080 端口监听入站连接。

例子: 2) 连接远程系统

使用下面命令可以用 来连接远程系统,

让我们来看个例子,

这会创建一个连接,连接到 IP 为 192.168.1.100 的服务器上的 80 端口,然后我们就可以向服务器发送指令了。 比如我们可以输入下面内容来获取完整的网页内容

或者获取页面名称,

或者我们可以通过以下方式获得操作系统指纹标识,

这会告诉我们使用的是什么软件来运行这个 web 服务器的。

例子: 3) 连接 UDP 端口

默认情况下, 创建连接时只会连接 TCP 端口。 不过我们可以使用 选项来连接到 UDP 端口,

现在我们的系统会开始监听 UDP 的 1234 端口,我们可以使用下面的 命令来验证这一点,

假设我们想发送或者说测试某个远程主机 UDP 端口的连通性,我们可以使用下面命令,

比如:

例子: 4) 将 作为聊天工具

也可以作为聊天工具来用,我们可以配置服务器监听某个端口,然后从远程主机上连接到服务器的这个端口,就可以开始发送消息了。 在服务器这端运行:

在远程客户端主机上运行:

之后开始发送消息,这些消息会在服务器终端上显示出来。

例子: 5) 将 作为代理

也可以用来做代理。比如下面这个例子,

所有发往我们服务器 8080 端口的连接都会自动转发到 192.168.1.200 上的 80 端口。 不过由于我们使用了管道,数据只能被单向传输。 要同时能够接受返回的数据,我们需要创建一个双向管道。 使用下面命令可以做到这点:

现在你可以通过 代理来收发数据了。

例子: 6) 使用 拷贝文件

还能用来在系统间拷贝文件,虽然这么做并不推荐,因为绝大多数系统默认都安装了 /。 不过如果你恰好遇见个没有 / 的系统的话, 你可以用 来作最后的努力。

在要接受数据的机器上启动 并让它进入监听模式:

现在去要被拷贝数据的机器上运行下面命令:

这里, 是要发送的文件。 选项会在文件拷贝完后立即关闭连接。 如果不加该选项, 我们需要手工按下 来关闭连接。

我们也可以用这种方法拷贝整个磁盘分区,不过请一定要小心。

例子: 7) 通过 创建后门

命令还可以用来在系统中创建后门,并且这种技术也确实被黑客大量使用。 为了保护我们的系统,我们需要知道它是怎么做的。 创建后门的命令为:

标志将一个 bash 与端口 10000 相连。现在客户端只要连接到服务器上的 10000 端口就能通过 bash 获取我们系统的完整访问权限:

例子: 8) 通过 进行端口转发

我们通过选项 来用 进行端口转发,实现端口转发的语法为:

这样,所有连接到 80 端口的连接都会转发到 8080 端口。

例子: 9) 设置连接超时

的监听模式会一直运行,直到手工终止。 不过我们可以通过选项 设置超时时间:

这回导致连接 10 秒后终止,不过这个选项只能用于客户端而不是服务端。

例子: 10) 使用 选项强制 待命

当客户端从服务端断开连接后,过一段时间服务端也会停止监听。 但通过选项 我们可以强制服务器保持连接并继续监听端口。 命令如下:

现在即使来自客户端的连接断了也依然会处于待命状态。

自此我们的教程就完了,如有疑问,请在下方留言。

via:https://www.linuxtechi.com/nc-ncat-command-examples-linux-systems/

作者:Pradeep Kumar

[2]

译者:lujun9972校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出

LCTT 译者

lujun9972

共计翻译:42篇

贡献时间:34 天

本文来自企鹅号 - Linux中国媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏zaking's

走进webpack(1)--环境拆分及模块化

  初级的文章和demo已经基本完成了,代码也已经上传到了我的github上,如果你对webpack的使用并不是十分了解,那么建议你回头看下走近系列,里面包括了...

28160
来自专栏佳爷的后花媛

SVN命令解析以及问题解决(update...)

1.Repo-browser(浏览版本库) 通过“浏览版本库”可以直接查看服务器上指定目录下的所有目录结构(需要有相关权限),包括特定版本的作者,提交时间等,...

94630
来自专栏散尽浮华

Nginx+upstream针对后端服务器容错的运维笔记

熟练掌握Nginx负载均衡的使用对运维人员来说是极其重要的!下面针对Nignx负载均衡upstream容错机制的使用做一梳理性说明: 一、nginx的upstr...

1.3K90
来自专栏程序员互动联盟

【记忆卡片】linux网络命令

Linux网络命令是我们比较常用的命令,重要性和使用频度都很高。Linux下网卡命名规律:eth0,eth1。第一块以太网卡,第二块。lo为环回接口,它的IP地...

36240
来自专栏小狼的世界

Gearman的问题分析与深入研究

Gearman作为一个优秀的分布式解决方案,已经被众多的公司或者团队所采用,我在之前的一篇文章中也有过介绍。但是目前对于woker的执行状态和结果监控,特别是放...

12120
来自专栏数据和云

浅谈TimesTen内存数据库的结构

作者介绍 ? 朱亮 云和恩墨技术专家,6年专职oracle dba生涯先后服务于保险、金融、电信、百货等客户 Oracle TimesTen In-Memor...

41580
来自专栏散尽浮华

Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理

通过我们会用Nginx的upstream做基于http/https端口的7层负载均衡,由于Nginx老版本不支持tcp协议,所以基于tcp/udp端口的四层负载...

98330
来自专栏北京马哥教育

Linux运维常见故障排查和处理的33个技巧汇总

作为linux运维,多多少少会碰见这样那样的问题或故障,从中总结经验,查找问题,汇总并分析故障的原因,这是一个Linux运维工程师良好的习惯。每一次技术的突破,...

50060
来自专栏云计算教程系列

# 如何在Ubuntu 16.04上配置绑定为缓存或转发DNS服务器 ###

在学习如何配置网站和服务器时,DNS或域名系统通常是一个难以实现的组件。虽然大多数人可能会选择使用其托管公司或其域名注册商提供的DNS服务器,但创建自己的DNS...

44100
来自专栏金蝶云平台的专栏

Grunt :初次使用及前端构建经验

这是我们部门前端同学cobish的学习笔记,笔者编辑了一下并分享给大家。

45000

扫码关注云+社区

领取腾讯云代金券