虚拟主机域名注册-常见问题服务器知识 → 操作系统

Linux基础教程:netcat的基本使用方法

  一、如何安装netcat

  它是一个跨平台工具,可用于Linux,macOS,Windows和BSD。我们将使用apt install或从源代码编译在Ubuntu 18.04服务器上安装netcat 。

  使用apt进行安装非常简单,您只需要在终端中键入以下命令即可:

  sudo apt install netcat

  在CentOS 8服务器上

  ncat可以与nmap软件包一起安装在RHEL 8 / CentOS 8上。使用dnf命令,如下所示

  sudo dnf install nmap

  二、如何从源代码安装netcat

  从源代码编译netcat并不像通过via进行安装那样容易apt install,但是如果您按照以下步骤操作,则可以轻松进行安装。

  使用以下命令从netcat网站下载源代码

  wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz

  提取新下载的存档。为此,您可以运行:

  tar -xzvf netcat-0.7.1.tar.gz

  cd到包含软件包源代码的目录,然后键入./configure以为您的系统配置软件包。

  cd netcat-0.7.1

  ./configure

  如果在运行./configure命令时收到这样的错误消息-“在$ PATH中找不到可接受的C编译器”,请确保已安装gcc编译器。要安装它,请键入以下命令:

  apt-get install build-essential

  运行configure需要一段时间。

  成功完成配置后,运行:

  sudo make

  和

  sudo make install

  您可以通过键入从源代码目录中删除程序二进制文件和目标文件make clean。要还删除configure创建的文件,请运行make distclean命令。

  三、Netcat示例

  在开始分析一些netcat命令之前,重要的是要知道,如果要使用nc绑定到知名端口(0-1023),则需要root特权。否则,您可以以普通用户身份运行nc。

  1、测试远程主机的特定TCP端口是否打开

  nc -vn 192.168.40.146 2424

  如果远程服务器上的2424端口已关闭,则输出

  nc: connect to 192.168.40.146 port 2424 (tcp) failed: Connection refused

  如果打开了远程服务器上的端口(例如22端口),则输出

  Connection to 192.168.40.146 22 port [tcp/*] succeeded!

  SSH-2.0-OpenSSH_7.6p1 Ubuntu-4

  2、对远程主机执行TCP端口扫描

  下面的命令将检查远程主机上20到25之间的端口并打印结果。

  nc -vnz -w 1 192.168.40.146 20-25

  输出将如下所示

  nc: connect to 192.168.40.146 port 20 (tcp) failed: Connection refused

  nc: connect to 192.168.40.146 port 21 (tcp) failed: Connection refused

  Connection to 192.168.40.146 22 port [tcp/*] succeeded!

  nc: connect to 192.168.40.146 port 23 (tcp) failed: Connection refused

  nc: connect to 192.168.40.146 port 24 (tcp) failed: Connection refused

  nc: connect to 192.168.40.146 port 25 (tcp) failed: Connection refused

  3、对远程主机执行UDP端口扫描

  nc -vnzu 192.168.40.146 1-65535

  输出将仅显示允许udp连接的端口。

  Connection to 192.168.40.146 2424 port [udp/*] succeeded!

  Connection to 192.168.40.146 12354 port [udp/*] succeeded!

  4、将测试UDP数据包发送到远程主机

  echo -n "udp test" | nc -u -w1 192.168.40.146 2424

  上面的命令将以1秒超时将测试UDP数据包发送到端口2424处的远程主机

  5、将文件(例如,test.txt)从一个主机复制到另一个

  在接收方主机(本例中为192.168.40.146)上运行:

  nc -lp 2424 > test.txt

  在发送方主机(192.168.40.144)上,运行以下命令:

  nc 192.168.40.146 2424 < test.txt

  这将通过2424端口将test.txt文件从发送方主机复制到接收方主机。确保在接收器主机的2424端口上允许传入连接。

  6、将整个目录(包括其内容)从一台主机转移到另一台主机

  在接收方主机上运行:

  nc -l 2424 | tar xvf -

  在发送方主机上,运行以下命令:

  tar cvf - /path/to/dir | nc 192.168.40.146 2424

  7、在远程主机上创建硬盘驱动器(例如,/ dev / sdc)的压缩备份

  在远程主机上运行:

  nc -lp 2424 | sudo dd of=/path/to/image.img.gz

  在本地主机上,运行以下命令:

  dd if=/dev/sdc | gzip -c | nc 192.168.40.146 2424

  8、从存储在远程主机中的压缩磁盘映像中还原硬盘驱动器(例如/ dev / sdc)

  在本地主机上运行:

  nc -lp 2424 | gunzip -c | sudo dd of=/dev/sdc

  在远程主机上,运行以下命令:

  cat /path/to/image.img.gz | nc 192.168.40.144 2424

  9、在两个主机之间运行全的在线聊天

  在一个主机(例如192.168.40.144)上运行以下命令:

  nc -lp 2424

  在另一台主机(例如192.168.40.146)上,运行以下命令:

  nc 192.168.40.144 2424

  运行这些命令后,在两个主机上都可以看到在两个终端中键入的任何内容。

  10、运行带有静态网页的Web服务器

  在本地主机(例如192.168.40.144)上运行以下命令以启动在端口80上提供test.html的Web服务器。请注意,您必须使用sudo特权运行,因为80在知名端口(1-1023)的范围内

  while true; do sudo nc -lp 80 < test.html; done

  现在http://192.168.40.144/test.html从另一台主机打开以访问它。

  11、使用IPv6地址侦听TCP端口

  您可以使用以下命令在侦听TCP端口时允许nc使用IPv6地址。

  nc -6 -l 2424

  检查它是否与下面的命令一起使用

  sudo netstat -nap | grep 2424

  输出将如下所示

  tcp6 0 0 :::2424 :::* LISTEN 15665/nc

  12、从服务器流式传输视频文件,以供客户端使用视频播放器(例如mplayer)观看流式视频

  在视频服务器(192.168.40.144)上:

  cat sample_video.avi | nc -l 2424

  在客户端主机(192.168.40.146)上:

  nc 192.168.40.144 2424 | mplayer -vo x11 -cache 3000-




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:Centos 配置磁盘加密(crypt-disk)过程
下一篇:怎样设置SSH长时保持连接不断开
  >> 相关文章
没有相关文章。
0

在线
客服

在线客服服务时间:9:00-18:00

客服
热线

19899115815
7*24小时客服服务热线

关注
微信

关注官方微信
顶部