如何在 Linux 上使用 nc (netcat) 命令通过网络传输数据

nc( netcat ) 命令可用于通过网络传输任意数据。
它代表了 Linux 管理员无需另外数据传输服务(如 FTP、HTTP、SCP 等)即可快速传输数据的方法。
此配置将向我们展示如何在网络主机之间传输数据的示例。
我们会将数据“myfile.txt”文件从本地主机传输到 IP 地址为“10.1.1.2”的目标主机。

故障排除

问题

Ncat: Connection refused.

检查我们是否在源主机上指定了正确的端口号。
此外,请确保该端口可访问且未被防火墙阻止:

$ nmap -p 7555 10.1.1.2
Starting Nmap 6.45 ( http://nmap.org ) at 2014-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

源主机

要接收 myfile.txt文件,我们需要使用 IP 地址(例如 10.1.1.2 )或者目标主机的主机名和给定端口发起数据传输请求:

$ nc 10.1.1.2 7555 < myfile.txt

目标主机

nc命令首先需要在我们需要传输数据的网络主机上启动。
我们将指示 nc侦听用户定义的端口号上的传入请求,一旦客户端请求来接收所需的数据。
选择我们选择的端口号,以确保它不会被防火墙阻止并且可以从源主机访问。

$ nc -l -p 7555 > myfile.txt

上面的命令指示 nc继续监听 7555 端口,直到它收到请求。
获得请求后,它将收到“myfile.txt”文件的传输。

日期:2020-07-07 20:54:45 来源:oir作者:oir