如何在Linux上使用nc(netcat)命令通过网络传输数据
nc ( netcat ) 命令可用于通过网络传输任意数据。它为 Linux 管理员提供了一种快速传输数据的方法,无需额外的数据传输服务,例如 FTP、HTTP、SCP 等。此配置将向您展示如何在网络主机之间传输数据的示例。我们将把数据 myfile.txt 文件从本地主机传输到 IP 地址为 10.1.1.2 的目标主机。
目的主机
首先需要在我们需要向其传输数据的网络主机上启动 nc 命令。我们将指示 nc 侦听用户定义的端口号上的传入请求,并在客户端请求到来后接收所需的数据。选择您选择的端口号,以确保它不被防火墙阻止并且可以从源主机访问。
$ nc -l -p 7555 > myfile.txt
上面的命令指示 nc 继续侦听端口 7555,直到收到请求。获得请求后,它将收到 myfile.txt 文件的传输。
源主机
要接收 myfile.txt 文件,我们需要使用目标主机的 IP 地址(例如 10.1.1.2 )或主机名和给定端口发起数据传输请求:
$ nc 10.1.1.2 7555 < myfile.txt
故障排除
症状:
Ncat: Connection refused.
检查源主机上指定的端口号是否正确。此外,请确保端口可访问且未被防火墙阻止:
$ nmap -p 7555 10.1.1.2
Starting Nmap 6.45 ( http://nmap.org ) at 2015-03-28 09:25 AEDT
Nmap scan report for thebeast (10.1.1.2)
Host is up (0.00097s latency).
PORT STATE SERVICE
7555/tcp open unknown
最后,确保 nc 正在侦听目标主机:
# netstat -ant | grep 7555
tcp 0 0 0.0.0.0:7555 0.0.0.0:* LISTEN
