nc网络工具的使用

ops/2024/11/23 20:16:50/

        nc是一个功能强大的网络工具,它可以用于端口扫描,模拟TCP/UDP数据传输,代理端口等。ubuntu14.04默认自带nc工具,windows下需自行下载,一般防病毒软件会认为它有害。下面主要介绍它在linux下的用法。

一.nc扫描某台主机监听的端口

        下面是扫描主机39.156.66.10监听的端口,对端可能设置了防火墙,扫描时通过timeout方式验证端口是否监听,比较慢且对端一般有超时机制长时间扫描会拒绝该连接的访问最好配合timeout和脚本一个个轮询遍历,对于开放的端口如80,可以快速验证,如下截图所示。

nc -zv 39.156.66.10 1-80

二.nc做tcp client端

        使用命令连接39.156.66.10服务器,连接后,服务器会有一个交互超时机制,如果没有数据交互,一段时间后,就退出。因为一直39.156.66.10是一个HTTP服务器,发送数据"GET / HTTP/1.1"去获取一个网页,返回结果400的应答,请求错误,可以通过浏览器配合Wireshark抓包,查看具体要发什么指令才能获取正确的网页。

nc -v 39.156.66.10 80

三.nc做udp client端

        下面我们通过自建的UDP服务器模拟测试,主机192.168.1.153监听UDP:3333端口,如下图1所示,使用nc连接UDP:3333主机,并发送接收数据数据。

nc -u 192.168.1.153 3333

四.nc做简单的代理

4.1 nc创建简单的UDP代理

UDP的代理,将主机192.168.1.153上UDP:3333代理到本机的8080端口,指令如下

nc -u -l -p 8080 | nc -u 192.168.1.153 3333

下图1是服务器及其代理的主机情况,下图2是对应的测试端

测试端通过连接nc所在主机192.168.1.15代理的8080端口,访问实际的数据192.168.1.153:3333.但是这个无法接收3333主机发送的数据。

4.2 nc创建简单的tcp代理做简单的代理服务器

TCP代理,将主机192.168.1.153的TCP:3333通过nc代理到tcp:8080端口,指令如下:

nc -l -p 8080 | nc 192.168.1.153 3333

执行指令后,nc对应主机与TCP服务器建立了一个连接,客户通过nc主机192.168.1.15的TCP:8080端口访问,发送数据3333服务器可以收到,但是3333发送的数据只能到nc主机。

4.3 基于TCP的双向代理

        在开发过程中可能可以用到,这里我们一台云端服务器代理到nc主机的8080端口,用户通过"nc主机:8080"访问云端的服务器,从而隐藏云端服务器的信息。

指令如下:

mkfifo /tmp/fifo
nc -vv -l -p 8899 < /tmp/fifo | nc -vv 47.121.220.84 11022 > /tmp/fifo

测试:

云端模拟的tcp服务器,监听端口为11022。这里使用nc工具模拟服务器,指令如下:

nc -vv -l -p 11022

-vv 输出更多连接和数据传输信息

-l  处于监听模式

-p 后面接监听的端口号

nc代理的指令

本地客户端的访问,本地客户端并不知道是与云端服务器在交互数据:

UDP服务器,加-u参数,同理。


http://www.ppmy.cn/ops/136129.html

相关文章

微软 Ignite 2024 大会

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

时序论文23|ICML24谷歌开源零样本时序大模型TimesFM

论文标题&#xff1a;A DECODER - ONLY FOUNDATION MODEL FOR TIME - SERIES FORECASTING 论文链接&#xff1a;https://arxiv.org/abs/2310.10688 论文链接&#xff1a;https://github.com/google-research/timesfm 前言 谷歌这篇时间序列大模型很早之前就在关注&#xff…

【解决】Unity TMPro字体中文显示错误/不全问题

问题描述&#xff1a;字体变成方块 原因&#xff1a;字体资源所承载的长度有限 1.找一个中文字体放入Assets中 2.选中字体创建为TMPro 字体资源 3.选中创建好的字体资源&#xff08;蓝色的大F&#xff09; 在右边的属性中找到Atlas Width h和 Atlas Heigth,修改的大一点&…

失落的Apache JDBM(Java Database Management)

简介 Apache JDBM&#xff08;Java Database Management&#xff09;是一个轻量级的、基于 Java 的嵌入式数据库管理系统。它主要用于在 Java 应用程序中存储和管理数据。这个项目已经过时了&#xff0c;只是发表一下以示纪念&#xff0c;现在已经大多数被SQLite和Derby代替。…

如何在MATLAB中实现图像自动分割

图像自动分割是指针对给定的图像&#xff0c;将其自动分离成多个有意义的部分。这个过程可以对图像分析、图像识别、图像处理等方面提供帮助&#xff0c;让人们更好地理解、处理和利用图像信息。本文将介绍在MATLAB平台上如何实现图像自动分割。 1.图像读取和显示 在进行图像…

GitLab使用操作v1.0

1.前置条件 Gitlab 项目地址&#xff1a;http://******/req Gitlab账户信息&#xff1a;例如 001/******自己的分支名称&#xff1a;例如 001-master&#xff08;注&#xff1a;master只有项目创建者有权限更新&#xff0c;我们只能更新自己分支&#xff0c;然后创建合并请求&…

webrtc音频模块介绍(一) ADM

不同操作系统管理音频设备及提供的音频接口方式各不同&#xff0c;ADM用于屏蔽音频设备管理及接口的差异&#xff0c;抽象统一接口。它的全称是Adio Device Module。 设备管理模块(ADM) 类结构图 首先它肯定是个接口类&#xff0c;不同平台的实现都继承于它&#xff0c;实现…

LeetCode 每日一题 2024/11/18-2024/11/24

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 11/18 661. 图片平滑器11/19 3243. 新增道路查询后的最短距离 I11/20 3244. 新增道路查询后的最短距离 II11/21 3248. 矩阵中的蛇11/22 3233. 统计不是特殊数字的数字数量1…