什么是Linux系统中nc命令?nc命令的用法详解
发布时间 - 2017-05-30 00:00:00 点击率:次这篇文章主要介绍了linux系统中nc命令的基本用法,nc命令非常之强大,这里先简单介绍它用来作端口扫描以及文件传输等的基础使用。
功能说明:功能强大的网络工具,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍,功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。
nc可以提供如下的网络功能:
1) 监听特定端口,这时候nc就可以作为一个服务器,但是我发现这样使用nc生成的服务器仅仅是一个echo服务器而已,没有其他更加强大的功能.
2) 连接特定端口,这时候nc就成为了一个客户端,同样的,也是一个简单的客户端,只能起echo的作用.
3) 扫描端口,这可以作为查询某个机器上是否开启了某个端口.
几个具体的使用例子
例子1:
使用nc打开linux下的特定端口
nc -lp 23 & (即telnet)
netstat -an|grep 23 (查看端口是否正常打开)
例子2:
使用nc进行文件传输,命令
ssh root@www.freetstar.com “( nc -l 10003 > destination 2>/dev/null & )” && cat source | nc www.freetstar.com 10003
&& 前边ssh登录到远程主机www.freetstar.com上,用nc命令打开本地的10003端口,成为后台进程
&&后边,在本地机器上打开source文件,并将其重定向到www.freetstar.com的10003号端口,也就是让远程www.freetstar.com主机10003号端口接收source文件
例子3:
使用nc扫描linux下的特定端口
nc -v -z host.example.com 70-80
扫描端口(70到80),可指定范围。-v输出详细信息。
例子4:
克隆硬盘或分区
类似于例子2,只需要由dd获得硬盘或分区的数据,然后传输即可。
克隆硬盘或分区的操作,不应在已经mount的的系统上进行。所以,需要使用安装光盘引导后,进入拯救模式(或使用Knoppix工 具光盘)启动系统后
server1上执行:# nc -l -p 1234 | dd of=/dev/sda
server1上执行1234号端口监听,将得到的文件保存到/dev/sda上
server2上执行:# dd if=/dev/sda | nc server1 1234
例子5:
保存Web页面
while true; do nc -l -p 80 -q 1
例子6:
模拟HTTP Headers
[root@hatest1 ~]# nc www.huanxiangwu.com 80
GET / HTTP/1.1
Host: ispconfig.org
Referrer: mypage.com
User-Agent: my-browser
在nc命令后,输入红色部分的内容,然后按两次回车,即可从对方获得HTTP Headers内容。
例子7:
聊天
server1上监听1234端口[root@hatest2 tmp]# nc -lp 1234
server2上向server1的1234端口发送消息[root@hatest1 ~]# nc server1 1234
这样,双方就可以相互交流了。使用Ctrl+D正常退出。
更多的使用,查看man手册
nc example.host port 打开与example.host主机的port的一个TCP链接.如果链接失败,不显示任何错误信息,仅仅退出
nc -p 31337 -w 5 example.host 42 打开与example。host主机的42号端口的一个TCP链接。用31337作为源端口,超时链接时间为5秒
nc -u example.host 53 指定协议为udp协议
语 法:nc [-hlnruz][-g][-G][-i][-o][-p][-s][-v...][-w][主机名称][通信端口...]
参 数:
-g 设置路由器跃程通信网关,最多可设置8个。
-G 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
来看下它的基本用法:
1.监听本地端口
root@10.1.1.43:~# nc -l -p 1234 root@10.1.1.43:~# netstat -tunlp | grep 1234
tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 15543/nc
2.端口扫描
root@10.1.1.43:~# nc -v -w 10 10.1.1.180 80
(UNKNOWN) [10.1.1.180] 80 (www) open
root@10.1.1.43:~# nc -v -w 10 10.1.1.180 -z 80-30000
(UNKNOWN) [10.1.1.180] 22000 (?) open
(UNKNOWN) [10.1.1.180] 80 (www) open
3.文件传出
源10.1.1.43 text.txt
目的 10.1.1.180
root@10:~# nc -l -p 1234 > test.txt #开10.1.1.180:1234端口监听,并将socket传输过来的数据重定向到test.txt文件 test 43 nc root@10.1.1.43:~#cat test.txt root@10.1.1.43:~# nc 10.1.1.180 1234 < test.txt #连接远程的10.1.1.180,从test.txt的路径从定向到socket,从而将文件传输到远方。 root@10:~# cat test.txt test 43 nc
4.目录传输
源10.1.1.43 python_program
目的 10.1.1.180
root@10:~# nc -l -p 1234 | tar xzvf - root@10.1.1.43:~# tar czvf - python_program | nc 10.1.1.180 1234
python_program/
python_program/1.py
python_program/4.py
python_program/3.py
5.测试UDP端口
root@172.16.211.34:web# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1111/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 887/dhclient
root@172.16.211.35:~# nc -vuz 172.16.211.34 68
Connection to 172.16.211.34 68 port [udp/bootpc] succeeded!
# linux
# 是一个
# 文件传输
# 因为它
# 就可以
# 客户端
# 重定向
# 这时候
# 几个
# 端口扫描
# 短小精悍
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Android 常见的图片加载框架详细介绍
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
zabbix利用python脚本发送报警邮件的方法
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
MySQL查询结果复制到新表的方法(更新、插入)
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
Python图片处理进阶教程_Pillow滤镜与图像增强
如何在Windows服务器上快速搭建网站?
如何实现javascript表单验证_正则表达式有哪些实用技巧
Laravel怎么实现模型属性的自动加密
如何基于云服务器快速搭建网站及云盘系统?
phpredis提高消息队列的实时性方法(推荐)
如何快速搭建二级域名独立网站?
JavaScript常见的五种数组去重的方式
如何用虚拟主机快速搭建网站?详细步骤解析
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
Laravel怎么导出Excel文件_Laravel Excel插件使用教程
高端建站如何打造兼具美学与转化的品牌官网?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
html5的keygen标签为什么废弃_替代方案说明【解答】
高端云建站费用究竟需要多少预算?
b2c电商网站制作流程,b2c水平综合的电商平台?
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
如何在阿里云香港服务器快速搭建网站?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
利用JavaScript实现拖拽改变元素大小
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
如何为不同团队 ID 动态生成多个“认领值班”按钮
如何确保FTP站点访问权限与数据传输安全?
如何彻底卸载建站之星软件?
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
Laravel如何自定义分页视图?(Pagination示例)
如何用美橙互联一键搭建多站合一网站?
如何在云主机快速搭建网站站点?
javascript中的try catch异常捕获机制用法分析
WordPress 子目录安装中正确处理脚本路径的完整指南
iOS正则表达式验证手机号、邮箱、身份证号等
Android利用动画实现背景逐渐变暗


lp