读写是每个系统都可以对数据进行的基本操作。 TCP 缩写为传输控制协议,是一种面向连接的通信协议,使网络上的计算机更容易发送和接收消息。 它是采用互联网协议 (IP) 的网络中使用最广泛的协议; 当联合使用时,它有时被称为 TCP/IP。 UDP,缩写为用户数据报协议,是一种用于在互联网上的应用程序之间构建低延迟和容错连接的通信协议。 在本文中,我们将讨论命令“Netcat”,该命令用于使用 TCP 和 UDP 协议跨网络读写磁盘 Ubuntu 20.04 (Linux 操作系统)。
Netcat 实用程序包括多个用于管理网络和监控系统间数据级别的指令。 TCP 和 UDP 协议是计算机网络(如互联网)的基础。 它被视为网络工具的瑞士军刀,是网络和系统管理员军械库中最有效的工具之一。 Netcat 是一个跨平台程序,运行于 Linux, Windows, Mac OS X 和 BSD。 Netcat 可用于调试和分析连接问题以及扫描开放端口、传输数据和充当代理。
使用 Netcat 跨网络读写数据
在 macOS 和常见的 Linux 分布如 Ubuntu 和 Debian, 预安装了 Netcat 包。 下面提到了一些“Netcat”实用程序。
- 通过 Netcat 执行端口扫描
- 通过 Netcat 发送文件
- 通过 Netcat 创建 Web 服务器
句法:
$ nc [options] host port |
使用“nc”或“netcat” Ubuntu 系统。
默认情况下,Netcat 将建立 TCP 连接以提供主机/主机和端口/端口。 如果要创建 UDP 连接,请使用 -u 选项。
$ nc -u host port |
通过 Netcat 执行端口扫描
最流行的 Netcat 应用程序之一是端口扫描。 您可以选择扫描单个端口或一系列端口。
TCP:
扫描开放端口:
使用Netcat扫描30-60范围内开放的端口,运行如下命令:
$ nc -z -v 10.0.2.15 30-60 |
-z 将指示 NC 仅扫描开放端口而不向它们发送任何数据。
-v 告诉详细信息。
使用 grep 命令过滤结果:
$ nc -z -v 10.0.2.15 2>&1 | grep succeeded |
在此范围内没有连接成功。
网络协议:
只需将 -u 参数添加到脚本中,即可在下面提到的命令中检查 UDP 端口:
$ nc -z -v -u 10.0.2.15 30-60 |
此范围内没有 UDP 端口。
通过 Netcat 发送文件
通过建立基本的客户端或服务器模型,Netcat 可用于将数据从一台主机传输到另一台主机。 这是通过使用接收主机上的 -l 选项将 Netcat 设置为侦听特定端口,然后从多台计算机创建标准 TCP 连接并通过它传输文件来完成的。
在接收端运行下面提到的命令,它为传入连接打开端口 6666,并将输出结果转移到文件中:
$ nc -l 6666 > linux1.txt |
Linux1.txt 是要打开写入的文件名,你可以根据自己的需要更改文件名。
现在接收主机将连接到发送主机并发送文件:
$ nc google.com 6666 < linux2.txt |
通过 Netcat 创建 Web 服务器
首先,使用 nano 命令创建一个简单的 HTML “linux, html” 文件:
$ nano linux.html |
键入下面提到的内容,或者您可以按照 html 文件规则根据您的要求添加内容。
<html> <head> <title> Linux<title> <head> <html> |
按“Ctrl+S”保存,按“Ctrl+X”关闭文件。
$ printf 'HTTP/1.1 200 OKnn%s' "$(cat linux.html)" | netcat -l 8888 |
现在在浏览器中,您可以通过以下链接访问该文件:
https://server-ip:8888 |
结论:
Netcat 是一个基本的 Linux 使用 TCP/UDP 协议跨网络连接读取和写入数据的实用程序。 它旨在成为一个可靠的后端工具,可以直接或简单地由其他应用程序和程序操作。 本文提供有关 Netcat 与 TCP 和 UDP 协议的用法以及一些其他用途(如扫描端口、发送文件和创建 Web 服务器)的信息。