Consejos de Linux: uso de NC para la transferencia de archivos

¡Continúe creando, acelere el crecimiento! Este es el segundo día de mi participación en el "Nuggets Daily New Plan · June Update Challenge", haz clic para ver los detalles del evento

Cuando copie archivos en el servidor antes, use scp o cárguelo en el servidor ftp y luego descárguelo nuevamente en el servidor que debe usarse. Aunque no hay nada de malo con estos dos métodos, los defectos también son más obvios.

  • scp: solicitar verificación de autorización
  • ftp: Se requiere un sistema de almacenamiento de terceros, si no lo elimina después de usarlo, el archivo siempre estará allí.

A continuación, presentaremos el uso de ncat (es decir, nc) para lograr la copia de archivos

puntos de conocimiento nc

1. Instrucciones básicas e instalación

ncat/nc es un comando de red similar a cat, comúnmente utilizado en la lectura, escritura y redirección de redes; proporciona funciones muy poderosas, este artículo presentará la postura de uso básica y los escenarios de aplicación

Primero determine si el sistema está instalado

  • Ubuntu tiene este comando por defecto
  • centos necesita ser instalado por sí mismo
# 判断是否有安装 ncat命令
which ncat
# which nc 也可以判断是否安装有这个命令
复制代码

Si no está instalado, ejecute el siguiente comando

sudo yum install nc -y
#  yum install nmap-ncat -y
复制代码

2. Escuche el enlace del puerto

Escuchar un puerto en la máquina es equivalente a iniciar un servicio de red

# nc -l 端口号
nc -l 9999
复制代码

Aviso

  • La escucha por defecto arriba es el puerto tcp
  • Para especificar UDP, puede pasarnc -l -u 9999

3. Conéctese al servidor remoto

# nc ip 端口号
nc 127.0.0.1 9999

# 如果需要链接的是udp端口,可以加一个 -u
复制代码

Después de conectarse, puede enviar información (el servidor recibirá los datos de transmisión del cliente después de presionar Enter)

3. copia de archivo nc

Basado en el caso anterior, nc se puede usar para lograr la copia de archivos

servidor de destino, inicie un puerto escuchando

nc -l 9999 > save.txt
复制代码

El servidor al que pertenece el archivo, utilizado para cargar el archivo

nc 127.0.0.1 9999 < data.txt
复制代码

ilustrar

  • Lo anterior también puede tomar el puerto udp para la transferencia de archivos, y -upuede agregarlo
  • El proceso también se puede revertir, escuchar en el puerto del servidor al que pertenece el archivo y el servidor de destino se usa para descargar el archivo (el método anterior es aplicable al escenario donde el servidor al que pertenece el archivo restringe el acceso puerto; lo siguiente es aplicable al caso en el que la IP del servidor de destino es incierta)
# 文件所属服务器
nc -l 9999 < data.txt

# 下载文件的服务器
nc 127.0.0.1 9999 > save.txt
复制代码

4. nc como proxy

Use nc como un reenvío simple

ncat -l 8080 | ncat 192.168.0.2 80
复制代码

El comando anterior implementa el reenvío unidireccional y reenvía la conexión vinculada al 8080 local a192.168.0.2:80

Si desea implementar una tubería bidireccional, puede hacer lo siguiente

mkfifo 2way
ncat -l 8080 0<2way | ncat 192.168.0.2 80 1>2way
复制代码

Además del método de proxy anterior, también puede usar nc para lograr el reenvío de puertos, con la ayuda del -ccomando

ncat -u -l  80 -c  'ncat -u -l 8080'
复制代码

5. Resumen

nc se usa a menudo para la transmisión de datos de red entre servidores, y sus parámetros básicos son los siguientes ( nc -hobteniendo)

-4 使用IPV4
-6 使用IPV6
-c, --sh-exec <command> 接收到的命令通过command(例如/bin/bash)执行
-e, --exec <command> 和-c差不多
--lua-exec <filename> 接收到的数据通过脚本filename执行
-m, --max-conns <n> 最大并发连接数(单独开启不生效,需配合--keep-open/--broker使用)
-d, --delay <time> 读写收发间隔时间
-o, --output <filename> 将会话数据转储到文件
-i, --idle-timeout <time> 读写超时时间
-p, --source-port port 指定连接使用的源端口号(client端使用)
-s, --source addr 客户端指定连接服务器使用的ip(client端使用)
-l, --listen 绑定和监听接入连接(server端使用)
-k, --keep-open 在监听模式中接受多个连接(配合-m使用)
-n, --nodns 不使用DNS解析主机名
-t, --telnet 响应telnet连接
-u, --udp 使用udp协议,默认tcp
-v, --verbose 显示详细信息
-w, --wait <time> 连接超时时间
--allow 允许指定主机连接
--allowfile 允许指定文件内的主机连接
--deny 拒绝指定主机连接
--denyfile 拒绝指定文件内的主机连接
--broker 启用代理模式
--proxy <addr[:port]> 指定代理主机ip和port
--proxy-type <type> 指定代理类型("http" or "socks4")
--proxy-auth <auth> 代理身份验证
复制代码

Los comandos comúnmente utilizados -lse usan para monitorear un número de puerto, -vse usan para mostrar los detalles de la conexión, -ulo que indica que el puerto udp está monitoreado

Este documento da dos ejemplos simples

  • transferencia de archivos
  • solicitud de reenvío

un contacto gris

Es mejor no tener libros que no tener libros. El contenido anterior es puramente de una familia. Debido a la capacidad personal limitada, inevitablemente hay omisiones y errores. Si encuentra errores o tiene mejores sugerencias, puede criticarlas y corregirlas. . Gracias

Supongo que te gusta

Origin juejin.im/post/7102376741728944164
Recomendado
Clasificación