哈喽,大家好,又到周三了,感觉现在状态还没从假期回来,该收心了!但是想想,又快春节了啊,心又跑出去了。。不行!为了解决这种问题,只能强迫自己沉浸代码世界不可自拔!今天说五个nc的例子供大家参考学习,raksmart服务器。
ncat 或者说 nc 是一款功能类似 cat 的工具,但是是用于网络的。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。 它被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。
ncat/nc 既是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至可以做为一个简单的 TCP 代理。 由于有这么多的功能,它被誉为是网络界的瑞士军刀。 这是每个系统管理员都应该知道并且掌握它。
在大多数 Debian 发行版中,nc 是默认可用的,它会在安装系统的过程中自动被安装。 但是在 CentOS 7 / RHEL 7 的最小化安装中,nc 并不会默认被安装。 你需要用下列命令手工安装。
[root@linuxtechi ~]#yum install nmap-ncat -y
系统管理员可以用它来审计系统安全,用它来找出开放的端口然后保护这些端口。 管理员还能用它作为客户端来审计 Web 服务器、telnet 服务器、邮件服务器等, 通过 nc 我们可以控制发送的每个字符,也可以查看对方的回应。
我们还可以用它捕获客户端发送的数据以此来了解这些客户端是做什么的。
在本文中,我们会通过 10 个例子来学习如何使用 nc 命令。
例子: 1) 监听入站连接
通过 -l 选项,ncat 可以进入监听模式,使我们可以在指定端口监听入站连接。 完整的命令是这样的:
$ ncat -l port_number
比如,
$ ncat -l 8080
服务器就会开始在 8080 端口监听入站连接。
例子: 2) 连接远程系统
使用下面命令可以用 nc 来连接远程系统,
$ ncat IP_address port_number
让我们来看个例子,
$ ncat 192.168.1.10080
这会创建一个连接,连接到 IP 为 192.168.1.100 的服务器上的 80 端口,然后我们就可以向服务器发送指令了。 比如我们可以输入下面内容来获取完整的网页内容
GET / HTTP/1.1
或者获取页面名称,
GET / HTTP/1.1
或者我们可以通过以下方式获得操作系统指纹标识,
HEAD / HTTP/1.1
这会告诉我们使用的是什么软件来运行这个 web 服务器的。
例子: 3) 连接 UDP 端口
默认情况下,nc 创建连接时只会连接 TCP 端口。 不过我们可以使用 -u 选项来连接到 UDP 端口,
$ ncat -l -u 1234
现在我们的系统会开始监听 UDP 的 1234 端口,我们可以使用下面的 netstat 命令来验证这一点,
$ netstat-tunlp |grep1234
udp 000.0.0.0:12340.0.0.0:*17341/nc
udp6 00:::1234:::*17341/nc
假设我们想发送或者说测试某个远程主机 UDP 端口的连通性,我们可以使用下面命令,
$ ncat -v -u
比如:
[root@localhost ~]# ncat -v -u 192.168.105.15053
Ncat:Version6.40( http://nmap.org/ncat )
Ncat:Connected to 192.168.105.150:53。
例子: 4) 将 nc 作为聊天工具
nc 也可以作为聊天工具来用,我们可以配置服务器监听某个端口,然后从远程主机上连接到服务器的这个端口,就可以开始发送消息了。 在服务器这端运行:
$ ncat -l 8080
在远程客户端主机上运行:
$ ncat 192.168.1.1008080
之后开始发送消息,这些消息会在服务器终端上显示出来。
例子: 5) 将 nc 作为代理
nc 也可以用来做代理。比如下面这个例子,
$ ncat -l 8080| ncat 192.168.1.20080
所有发往我们服务器 8080 端口的连接都会自动转发到 192.168.1.200 上的 80 端口。 不过由于我们使用了管道,数据只能被单向传输。 要同时能够接受返回的数据,我们需要创建一个双向管道。 使用下面命令可以做到这点:
$ mkfifo2way
$ ncat -l 808002way
现在你可以通过 nc 代理来收发数据了。
好了,五个栗子说完了,今天就到这里,话说,大家春节回去的车票订好了么。。
领取专属 10元无门槛券
私享最新 技术干货