linux nc命令常用用法

原文地址::http://my.oschina.net/davehe/blog/261845



 NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍,功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。

先来看下它的基本用法:

root@10.1.1.43:~# nc -h
[v1.10-38]
connect to somewhere:	nc [-options] hostname port[s] [ports] ... 
listen for inbound:	nc -l -p port [-options] [hostname] [port]
options:
    -c shell commands	as `-e'; use /bin/sh to exec [dangerous!!]
    -e filename		program to exec after connect [dangerous!!]
    -b			allow broadcasts
    -g gateway		source-routing hop point[s], up to 8                          设置路由器跃程通信网关,最高可设置8个。
    -G num			source-routing pointer: 4, 8, 12, ...                         设置来源路由指向器,其数值为4的倍数。
    -h			this cruft 
    -i secs			delay interval for lines sent, ports sca                      延时的间隔
        -k                      set keepalive option on socket
    -l			listen mode, for inbound connects                             监听模式,入站连接
    -n			numeric-only IP addresses, no DNS                             直接使用ip地址,而不用域名服务器
    -o file			hex dump of traffic                                           指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
    -p port			local port number                                             本地端口
    -r			randomize local and remote ports                              随机本地和远程端口 
    -q secs			quit after EOF on stdin and delay of secs
    -s addr			local source address  
    -T tos			set Type Of Service
    -t			answer TELNET negotiation   
    -u			UDP mode                                                      udp  模式
    -v			verbose [use twice to be more verbose]                        显示过程,vv 更多
    -w secs			timeout for connects and final net reads                      等待连接超时
    -z			zero-I/O mode [used for scanning]                             使用输入/输出模式,只在扫描通信端口时使用。


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!


参考:

NetCat 官方地址:http://netcat.sourceforge.net/



<think>好的,我现在要解决用户关于如何在Linux上安装nc(netcat)命令的问题。首先,我需要确认用户可能的需求是什么。通常,用户遇到“nc命令未找到”的错误,说明系统没有安装netcat。我的任务是引导他们正确安装。 首先,我得考虑不同的Linux发行版,因为安装命令可能不同。常见的发行版有Debian/Ubuntu、CentOS/RHEL、Fedora、Arch Linux等。我需要分别列出这些系统的安装方法。 对于基于Debian的系统,比如Ubuntu,应该使用apt-get命令。需要提醒用户更新软件包列表,然后安装netcat-openbsd或者netcat-traditional。这里可能需要解释这两个版本的区别,但用户可能只需要基本的nc功能,所以推荐netcat-openbsd。 接下来是CentOS或RHEL系统,使用yum或dnf。这里需要注意,CentOS 8之后可能使用dnf,而旧版用yum。同时,安装的软件包名称是nmap-ncat,可能需要确认是否正确,因为有时候包名可能不同。 对于Fedora,使用dnf install nc或者nmap-ncat,同样需要确认包名是否正确。Arch Linux用户则使用pacman来安装gnu-netcat。 另外,可能需要提醒用户安装后如何验证,比如运行nc -h或者man nc来查看帮助文档。还有可能需要说明不同版本netcat的功能差异,比如OpenBSD版本和传统版本的不同参数,但用户可能暂时不需要深入这些细节。 还要检查是否有拼写错误,比如包名是否正确,命令是否正确。例如,是否在安装前需要sudo权限,这点要明确写出,避免用户权限不足的问题。同时,提示用户如果遇到问题,可以尝试搜索对应的软件包,比如使用apt search netcat来查找正确的包名。 最后,确保步骤清晰,分点列出,让用户容易跟随。可能还需要在最后给出一个验证安装成功的步骤,比如执行nc -h查看版本信息。如果有常见问题,比如安装后仍然找不到命令,可能需要提示检查路径或者是否存在多个版本冲突,但根据问题复杂度,可能不需要深入,除非用户进一步询问。</think>在Linux系统中安装`nc`(netcat)命令的步骤如下: --- ### 1. **确认系统发行版** 首先确定你的Linux发行版类型,不同发行版的安装命令可能不同: - **Debian/Ubuntu**:使用 `apt` 包管理器 - **CentOS/RHEL**:使用 `yum` 或 `dnf` 包管理器 - **Fedora**:使用 `dnf` - **Arch Linux**:使用 `pacman` --- ### 2. **安装netcat** 根据发行版选择对应的命令: #### **Debian/Ubuntu** ```bash sudo apt update sudo apt install netcat-openbsd # 推荐安装OpenBSD版本(常用) # 或 sudo apt install netcat-traditional # 传统版本(功能更多但语法不同) ``` #### **CentOS/RHEL 7及以下** ```bash sudo yum install nc # 或安装nmap-ncat(功能更全) sudo yum install nmap-ncat ``` #### **CentOS/RHEL 8+ 或 Fedora** ```bash sudo dnf install nc # 或 sudo dnf install nmap-ncat ``` #### **Arch Linux** ```bash sudo pacman -S gnu-netcat ``` --- ### 3. **验证安装** 安装完成后,检查是否成功: ```bash nc -h # 或查看版本 nc -v ``` --- ### 4. **常见问题** - **找不到包名**:尝试搜索软件包: ```bash apt search netcat # Debian/Ubuntu dnf search netcat # CentOS/Fedora ``` - **权限问题**:确保使用 `sudo` 提权。 - **版本差异**:不同发行版的 `nc` 功能可能略有差异,可通过 `man nc` 查看文档。 --- ### 5. **基本使用示例** ```bash # 监听端口(服务端) nc -lvnp 1234 # 连接到服务端(客户端) nc 127.0.0.1 1234 ``` 通过以上步骤即可完成安装并使用 `nc` 命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值