10.13 nc:多功能网络工具

nc命令

  是一个简单、可靠、强大的网络工具,它可以建立TCP连接,发送UDP数据包,监听任意的TCP和UDP端口,进行端口扫描,处理IPv4和IPv6数据包。

如果系统没有nc命令,那么可以手动安装,安装命令为yum -y install nc。

nc命令的参数选项及说明

-l    指定监听端口,然后一直等待网络连接

-z    表示zero,表示扫描时不发送任何数据

-v    显示详细输出

-w    设置超时时间,对-l选项失效

-p    指定nc命令使用的端口,不能和-l选项一起使用,可能引起错误

-u    使用UDP连接,默认是TCP连接

-s    指定发送数据的源IP地址,适用于多网卡主机

[[email protected] ~]# /etc/init.d/iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

[[email protected] ~]# /etc/init.d/iptables stop
iptables:将链设置为政策 ACCEPT:filter                    [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定]
[[email protected] ~]# setenforce 0
[[email protected] ~]# getenforce
Permissive
 

模拟 TCP 连接并传输文本内容(远程复制文件

[[email protected] ~]# nc -l 12345 > lewen.nc  #<=监听12345端口,将数据写入oldboy.nc
#<=执行完上面的命令后,当前窗口挂起。
#<=新开一个窗口执行命令。
[[email protected] ~]# cat lewen.nc  #<=首先查看12345端口。
[[email protected] ~]# netstat -lntup|grep 12345
tcp        0      0 0.0.0.0:12345               0.0.0.0:*                   LISTEN      2612/nc
[[email protected] ~]# cat lewen.log #<=待用的文件。
6.8.0  #<=文件中的内容
[[email protected] ~]# nc 10.0.0.100 12345 < lewen.log  #<=使用nc命令向10.0.0.100 主机12345 端口传输lewen.log文件
[[email protected] ~]# netstat -lntup|grep 12345  #<==nc命令传输完数据后自动终止。
[[email protected] ~]# cat lewen.nc  #检查结果
6.8.0 

用Shell 模拟一个简单的Web 服务器效果案例

[[email protected] ~]# echo "I love linux www.wenyule.top" >test.txt
[[email protected] ~]# vim web.sh
#!/bin/bash
while true
  do
    nc -l 80 < test.txt # 一直监听80端口,test.txt是发送给用户的内容。
done

[[email protected] ~]# sh web.sh &>/dev/null &
[1] 2685
[[email protected] ~]#

[[email protected] ~]# netstat -lntup|grep 80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      2686/nc
[[email protected] ~]# curl 127.0.0.1
I love linux www.wenyule.top 

手动与HTTP服务器建立连接的例子。

[[email protected] ~]# nc blog.oldboyedu.com 80
GET /about-us/ HTTP/1.1  <=粘贴这两行语句,速度要快,如果慢了程序就会超时自动退出。
host:blog.oldboyedu.com   <==HTTP/1.1的要求必须写明hosto
#<==敲两次回车确认发送请求报文,下面就是响应报文的内容。
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Tue, 07 May 2019 13:40:50 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: https://blog.oldboyedu.com/about-us/

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

利用nc 进行端口扫描

[[email protected] ~]# nc -z 10.0.0.100 20-30
Connection to 10.0.0.100 22 port [tcp/ssh] succeeded!
[[email protected] ~]# nc -z 10.0.0.100 22
Connection to 10.0.0.100 22 port [tcp/ssh] succeeded!
[[email protected] ~]# nc -zv 10.0.0.100 20-30  #<=使用-v选项详细显示扫描过程
nc: connect to 10.0.0.100 port 20 (tcp) failed: Connection refused
nc: connect to 10.0.0.100 port 21 (tcp) failed: Connection refused
Connection to 10.0.0.100 22 port [tcp/ssh] succeeded!
nc: connect to 10.0.0.100 port 23 (tcp) failed: Connection refused
nc: connect to 10.0.0.100 port 24 (tcp) failed: Connection refused
nc: connect to 10.0.0.100 port 25 (tcp) failed: Connection refused
nc: connect to 10.0.0.100 port 26 (tcp) failed: Connection refused
nc: connect to 10.0.0.100 port 27 (tcp) failed: Connection refused
nc: connect to 10.0.0.100 port 28 (tcp) failed: Connection refused
nc: connect to 10.0.0.100 port 29 (tcp) failed: Connection refused
nc: connect to 10.0.0.100 port 30 (tcp) failed: Connection refused 

使用nc命令,模拟QQ聊天工具聊天

打开两个命令行窗口,模拟两个人聊天的场景。

首先在第一个窗口执行如下命令,执行完会hang住等待输入状态:

[[email protected] ~]# nc -l 12345

然后在第2个窗口执行如下命令,执行完也会hang住等待输入状态:

[[email protected] ~]# nc 127.0.0.1 12345

此时两个窗口都等待输入内容。我们先新建第3个窗口,查看他们建立的网络连接:

[[email protected] ~]# netstat -ntp|grep nc #<=12345端口是nc指定开放的,52978端口是系统为了和12345就口通信随机开放的,当然也可以使用-p选项指定开放端口。

tcp        0      0 127.0.0.1:12345             127.0.0.1:37060             ESTABLISHED 2748/nc

tcp        0      0 127.0.0.1:37060             127.0.0.1:12345             ESTABLISHED 2749/nc

怎么聊天呢?很简单,你在第一个窗口中输入想要说的话,然后敲回车键,悄悄话就会自动发送到对方(第二个窗口),和QQ的效果一样:

[[email protected] ~]# nc -l 12345

hi,I am lewen

对方(第二个窗口)也只需要输入回复的话然后敲回车键,消息就能发送给你:

[[email protected] ~]# nc 127.0.0.1 12345

hi,I am lewen

hello,lewen

原文地址:https://www.cnblogs.com/fadewalk/p/10840523.html

时间: 2024-08-14 10:13:21

10.13 nc:多功能网络工具的相关文章

10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法

10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法 扩展(selinux了解即可) selinux教程 http://os.51cto.com/art/201209/355490.htm selinux pdf电子书 http://pan.baidu.com/s/1jGGdExK 10.11 linux网络相关 -ifconfig 命令在centos7 是没有的,需要安装yum inst

10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 ne

七周三次课 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法 10.11 Linux网络相关 Linux网络相关 10.12 firewalld和netfilter netfilter为centos6的防火墙 关闭filter 开启netfilter并查看默认规则 10.13 netfilter5表5链介绍 小结:如果经过本机,PREROUTING----->INPUT---->OU

Linux 网络工具netcat(nc)的应用

NETCAT netcat是Linux常用的网络工具之一,它能通过TCP和UDP在网络中读写数据,通过与其他工具结合和重定向,可以在脚本中以多种方式使用它. netcat所做的就是在两台电脑之间建立链接并返回两个数据流,我们可以建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端. 准备工作: 1)首先我们先打开两台Linux虚拟机(位于同一局域网,vmware虚拟机网络均选择桥接模式即可) 当然netcat在windows中也有应用 现在我们只考虑Linux情况 2

Android高效率编码-细节,控件,架包,功能,工具,开源汇总,你想要的这里都有

Android高效率编码-细节,控件.架包,功能.工具,开源汇总 事实上写博客的初衷也并非说什么分享技术,毕竟咱还仅仅是个小程序猿.最大的目的就是对自我的知识积累.以后万一编码的时候断片了,也能够翻出来看看,这样子对自己也有优点,所以今天就汇总一下一些须要的东西.多图来了,加油! 一.游戏 小熊打字,我刚接触电脑练习打字的时候用到的 下载地址:http://download.csdn.net/detail/qq_26787115/9365721 二.色彩 这张颜色表上的颜色都太赞了 三.控件 1

Linux Netcat 命令——网络工具中的瑞士军刀

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据.通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它.使用netcat命令所能完成的事情令人惊讶. netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了.你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端. 下面是一些使用netcat的例子. [A(172.31.100.7) B(172.31.100.23)] Linux netcat

玩转 Linux 之:网络工具中的瑞士军刀 Netcat

netcat号称网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据.通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它.使用netcat命令所能完成的事情令人惊讶. netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了.你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端. 下面是一些使用netcat的例子. A (172.31.100.7) B (172.31.100.23) Linux netcat

黑帽大会2014:10个酷炫的黑客工具

http://www.csdn.net/article/2014-08-21/2821304 用于恶意软件分析的Maltrieve 安全研究人员使用Maltrieve工具收集服务器上的恶意软件.通过这个开源工具,恶意软件分析人员可以通过分析URL链表和已知的托管地址获得最新鲜的样本. Kyle Maxwell是VeriSign的一名威胁情报分析员,也对Maltrieve项目有着重要贡献,他在黑帽Arsenal demo区域展示了Maltrieve.这个工具统计恶意软件的URL黑名单,支持Cuck

Linux下基本的网络工具

Linux下基本的网络工具 Table of Contents ifconfig route ip dns 其他配置文件 ifconfig ifconfig eth0 up ifconfig eth0 down ifconfig eth0 192.168.10.111 永久 IP /etc/sysconfig/network-scripts/ifcfg-eth0 IPADDR=xxxx NETMASK=xxx GATEWAY=xxxxx PEERDNS={yes|no}: 表示是否接受 dhcp

Linux常用网络工具:批量主机服务扫描之netcat

netcat又叫做瑞士军刀,是黑客和系统管理员常用的网络工具,最初开发的目的是文件传输,后来发展出很多强大的功能,比如也可以完成批量主机服务扫描. 之前介绍了另一个更常用的批量主机服务扫描工具:nmap. netcat的安装也非常简单,直接yum安装: yum install nc 一般不建议在生产环境安装nc,因为nc除了可以批量主机服务扫描外,还支持端口代理.文件传输,容易造成安全隐患. netcat之批量主机服务扫描 netcat在扫描时常用的参数: -w 设置超时时间 -z 输入输出模式