Netcat(通常称为 nc)是一个简单但功能强大的网络工具,能用来监听TCP和UDP端口,发送和接收数据,以及作为代理或端口转发器使用。在linux中用于TCP、UDP或UNIX域套接字相关的操作。可以用来扫描端口、端口重定向、作为端口监听器、打开远程连接等。
Linux中安装netcat:
$ yum install nc [在 CentOS/RHEL 上]
$ dnf install nc [在 Fedora 22+ 和 RHEL 8 上]
$ sudo apt-get install Netcat [在 Debian/Ubuntu 上]
监听指定端口:
nc -l -p 8080
这个命令将监听本地8080端口,等待连接。
连接到远程服务器的特定端口:
nc example.com 80
这个命令将连接到 example.com 的80端口,通常用于HTTP服务。
使用TCP进行加密连接:
nc -v example.com 443
这个命令将尝试使用TCP连接到 example.com 的443端口,通常用于HTTPS服务。
使用UDP协议:
nc -u -l -p 53
这个命令将监听本地53端口上的UDP流量。
发送文件到远程服务器:
nc -l -p 8080 < file.txt
这个命令将监听8080端口,并从连接的客户端发送 file.txt 的内容。
从远程服务器接收文件,前提是两个聊天室都安装nc,在其中一个系统上运行以下命令来创建监听端口5000的聊天服务器:
$ nc -l -vv -p 5000
另外一个系统上运行下面命令来同正在运行消息传递服务器的机器启动聊天会话:
$ nc 192.168.56.1 5000
nc example.com 8080 > file.txt
这个命令将连接到 example.com 的8080端口,并接收数据保存到 file.txt。
创建命令行消息服务器
端口扫描:
nc -zv example.com 1-100
这个命令将扫描 example.com 的1到100端口,检查哪些端口是开放的。
创建代理服务器:
nc -l -p 8080 < nc -l -p 80
这个命令将创建一个简单的代理服务器,将8080端口的流量转发到80端口。
创建反向Shell:
nc -lvvp 4444
这个命令将监听4444端口,并等待连接,当连接建立时,它将提供一个反向Shell。
使用SSL/TLS加密连接:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodesnc -l -p 443 -k -c 'exec openssl s_server -quiet -key key.pem -cert cert.pem'
首先创建自签名证书和密钥,然后使用 nc 和 openssl 创建一个简单的HTTPS服务器。
请注意,nc 命令的选项和功能可能会因不同版本的Netcat而有所不同。在使用 nc 命令时,应确保了解其在特定系统上的行为,并始终遵守合法和道德的使用原则。