Linux 팁: 파일 전송에 NC 사용

계속 만들고 성장을 가속화하십시오! "너겟 데일리 뉴플랜 · 6월 업데이트 챌린지" 참여 2일차 입니다 . 이벤트 상세보기 클릭

이전에 서버에 파일을 복사할 때 scp를 사용하거나 ftp 서버에 업로드한 다음 사용해야 하는 서버에 다시 다운로드합니다.이 두 가지 방법은 문제가 없지만 결함도 더 분명합니다.

  • scp: 인증 확인 요청
  • ftp: 타사 저장 시스템이 필요하며 사용 후 삭제하지 않으면 파일이 항상 존재합니다.

다음으로 ncat(예: nc)을 사용하여 파일 복사를 수행하는 방법을 소개합니다.

NC 지식 포인트

1. 기본 사용법 및 설치

ncat/nc는 네트워크 읽기, 쓰기 및 리디렉션에 일반적으로 사용되는 cat과 유사한 네트워크 명령으로 매우 강력한 기능을 제공합니다.

먼저 시스템이 설치되어 있는지 확인합니다.

  • Ubuntu에는 기본적으로 이 명령이 있습니다.
  • centos는 자체적으로 설치해야 합니다.
# 判断是否有安装 ncat命令
which ncat
# which nc 也可以判断是否安装有这个命令
复制代码

설치되어 있지 않으면 다음 명령을 실행하십시오.

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

2. 포트 링크 듣기

머신의 포트를 수신 대기하는 것은 네트워크 서비스를 시작하는 것과 동일합니다.

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

알아채다

  • 위의 기본 수신은 tcp 포트입니다.
  • udp를 지정하려면 다음을 전달할 수 있습니다.nc -l -u 9999

3. 원격 서버에 연결

# nc ip 端口号
nc 127.0.0.1 9999

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

연결 후 정보를 보낼 수 있습니다(서버는 Enter 키를 누른 후 클라이언트에서 전송 데이터를 수신합니다).

3. nc 파일 복사

위의 경우를 기반으로 nc를 사용하여 파일 복사를 수행할 수 있습니다.

대상 서버, 포트 수신 시작

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

파일이 속한 서버, 파일 업로드에 사용

nc 127.0.0.1 9999 < data.txt
复制代码

설명하다

  • 위의 파일 전송을 위해 udp 포트를 사용할 수도 있으며 추가 -u할 수 있습니다.
  • 역순으로 파일이 속한 서버의 포트에서 수신 대기하고 대상 서버를 사용하여 파일을 다운로드할 수도 있습니다(위의 방법은 파일이 속한 서버가 액세스를 제한하는 시나리오에 적용 가능) 포트, 다음은 대상 서버의 IP가 불확실한 경우에 해당)
# 文件所属服务器
nc -l 9999 < data.txt

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

4. 프록시로서의 nc

nc를 단순 전달로 사용

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

위의 명령은 단방향 포워딩을 구현하고 로컬 8080에 연결된 연결을 다음으로 포워딩합니다.192.168.0.2:80

양방향 파이프라인을 구현하려면 다음과 같이 하면 됩니다.

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

위의 프록시 방법 외에도 -c명령

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

5. 요약

nc는 서버간 네트워크 데이터 전송에 많이 사용되며 기본 파라미터는 다음과 같다 nc -h.

-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> 代理身份验证
复制代码

일반적으로 사용되는 명령 -ludp 포트가 모니터링됨을 나타내는 -v연결 세부 정보를 표시하는 데 사용되는 포트 번호를 모니터링하는 데 사용됩니다.-u

이 문서에서는 두 가지 간단한 예를 제공합니다.

  • 파일 전송
  • 요청 전달

회색 접점

책이 없는 것보다는 없는 것이 낫다. 위의 내용은 순전히 한 가족의 것입니다. 개인의 능력이 제한되어 있기 때문에 필연적으로 누락과 실수가 있을 수 있습니다. 버그를 발견하거나 더 나은 제안이 있으면 비판하고 수정하는 것이 좋습니다. . 고맙습니다

추천

출처juejin.im/post/7102376741728944164