面试题整理3----nc命令的常见用法

面试题整理3----nc命令的常见用法

    • [1. NC是什么](#1. NC是什么)
    • [2. NC的常用参数](#2. NC的常用参数)
      • [2.1 开启指定端口TCP监听(-l小写的L)](#2.1 开启指定端口TCP监听(-l小写的L))
      • [2.2 测试端口是否能访问(-v)](#2.2 测试端口是否能访问(-v))
      • [2.3 开启指定端口UDP监听(-u)](#2.3 开启指定端口UDP监听(-u))
      • [2.4 端口扫描(-z)](#2.4 端口扫描(-z))
      • [2.5 指定超时时间(-w)](#2.5 指定超时时间(-w))
      • [2.6 指定本地端口号连接(-p)](#2.6 指定本地端口号连接(-p))
      • [2.7 指定的命令(-e)](#2.7 指定的命令(-e))

1. NC是什么

nc(NetworkCat)命令是一个非常强大的网络工具,通常被称为"网络调试工具"或"网络连通工具"。它最早由Hobbit(RobertT.Morris)于1996年编写,并且在许多Unix和类Unix系统(如Linux)中默认安装。nc命令可以用于读取和写入网络连接中的数据,支持TCP和UDP协议,因此广泛用于测试网络连接、调试网络服务和进行端口扫描等操作。

nc命令的功能非常强大,它支持网络连接、数据传输、端口监听、代理等多种功能。因其简洁和高效,nc被广泛应用于网络管理员、开发人员、渗透测试人员等多种场景。

2. NC的常用参数

2.1 开启指定端口TCP监听(-l小写的L)

作用:

启动指定端口的TCP监听,等待来自远程主机的连接。
用法:

bash 复制代码
nc -l 8448

示例:

先在服务器A上添加防火墙配置,并开启8448/tcp监听

2.2 测试端口是否能访问(-v)

作用:

测试端口是否可以访问
用法:

带参数-v或者不带任何参数,带v会明确显示是否成功

bash 复制代码
# nc -v 目的ip       目的端口
nc -v 192.168.126.30 8448
# 成功则有successed!的返回
# 失败则返回 Connection refuse

示例:

2.3 开启指定端口UDP监听(-u)

作用:

启动指定端口的UDP监听,等待来自远程主机的连接。
用法:

bash 复制代码
nc -u -l 8449

示例:

先在服务器A上添加防火墙配置,并开启8449/udp监听

测试:

bash 复制代码
nc -u -v 192.168.126.30 8449

2.4 端口扫描(-z)

作用:

扫描指定主机上的开放的端口,常用于端口扫描。
用法:

bash 复制代码
#        目标ip      目标端口范围
nc -zv 192.168.126.30 1-9999

示例:

此命令和nmap -p的功能类似

2.5 指定超时时间(-w)

作用:

设置连接的超时值,单位为秒。
用法:

bash 复制代码
nc -vw 5 192.168.126.30 8448

示例:

使用-w后会在连接创建完5秒后自动断开.之前我们没有配置-w的时候是需要手动按ctrl+c进行断开连接

2.6 指定本地端口号连接(-p)

作用:

指定本地端口号连接远程端口。
用法:

bash 复制代码
#   客户端端口  服务端ip      服务端端口
nc -p 4479 192.168.126.30 8448

示例:

默认情况下会用随机端口进行连接

指定端口后,在服务端看到客户端连接过来的端口就是我们所指定的4479

2.7 指定的命令(-e)

作用:

在连接建立后执行指定的命令。

如果是-e /bin/bash 就相当于开了个不要密码的连接,生产中慎用.
用法:

bash 复制代码
#   客户端端口  服务端ip      服务端端口
nc -l -p 8448 -e /bin/bash

示例:

##5.总结

nc命令是一个功能丰富且灵活的网络调试工具。它不仅能测试端口和连接,还能进行文件传输、端口扫描、反向Shell等操作。虽然nc的功能非常强大,但它的简洁性和灵活性也是它受到用户喜爱的原因之一。在实际使用中,nc可以作为一个快速、轻量级的网络测试工具,适用于各种网络调试和渗透测试场景。

该文档介绍了nc命令的历史、基本语法、常用参数以及几种实际的使用场景

相关推荐
Two_brushes.2 小时前
【Linux】线程机制深度实践:创建、等待、互斥与同步
linux·运维·服务器·多线程
设计师小聂!4 小时前
Linux系统中部署Redis详解
linux·运维·数据库·redis
kfepiza4 小时前
Debian-10编译安装Mysql-5.7.44 笔记250706
linux·数据库·笔记·mysql·debian·bash
努力做小白5 小时前
Linux驱动11 --- buildroot&杂项驱动开发方法
linux·运维·驱动开发·单片机·嵌入式硬件
帽儿山的枪手6 小时前
追踪网络流量就这么简单 | 进阶篇 | conntrack
linux·windows·网络协议
哈哈浩丶6 小时前
Linux驱动开发1:设备驱动模块加载与卸载
linux·运维·驱动开发
Bulestar_xx6 小时前
20250711_Sudo 靶机复盘
linux·安全·web安全
一位搞嵌入式的 genius6 小时前
暑期自学嵌入式——Day01(C语言阶段)
linux·嵌入式c语言
胡耀超8 小时前
Umi-OCR 的 Docker安装(win制作镜像,Linux(Ubuntu Server 22.04)离线部署)
linux·深度学习·ubuntu·docker·容器·nlp·ocr
诗人不说梦^8 小时前
[BUUCTF 2018]Online Tool
linux·运维·服务器