명령줄을 사용하여 Netcat으로 네트워크로 연결된 컴퓨터 간에 데이터 전송

Anonim

Netcat은 TCP/IP를 사용하여 네트워크 연결을 통해 데이터를 읽고 쓸 수 있는 강력한 명령줄 도구이며 무엇보다도 릴레이, 파일 전송, 포트 스캔에 일반적으로 사용됩니다. netcat의 기원은 유닉스와 리눅스 세계에서 나왔지만 netcat은 Mac OS X에도 내장되어 있으며 네트워크로 연결된 두 대의 컴퓨터에서 데이터와 기타 텍스트를 쉽게 보낼 수 있는 방법으로 nc 유틸리티를 사용할 것입니다.상당히 단순한 클라이언트 및 서버 관계로 데이터를 전송하기 위해 netcat을 사용함으로써 사용자가 데이터를 전송 및 수신하는 동안 명령줄에 머물고 싶어하고 SSH 또는 SFTP를 통한 연결이 불가능한 경우 기존 파일 공유에 대한 잠재적으로 더 빠른 대안을 제공합니다. 실용적입니다.

netcat은 로그인이나 인증이 필요하지 않으며, 유일한 요구 사항은 클라이언트가 서버 IP 주소와 수신 포트 번호를 알고 있다는 것입니다. 이는 분명히 보안 오용 가능성을 높입니다. 따라서 netcat을 사용하여 데이터와 텍스트를 전송하는 것은 일반적으로 고급 사용자나 위험이 거의 없는 보호된 로컬 네트워크 뒤에서 독점적으로 사용하는 것이 가장 좋습니다. 보안이 중요한 상황에서는 SSH를 사용하는 것이 좋습니다.

편의를 위해 netcat을 수신하는 컴퓨터 1을 "서버"라고 하고 컴퓨터 2가 컴퓨터 1에 데이터를 보내는 것을 "클라이언트"라고 합니다.

서버(컴퓨터 1) 및 포트에서 수신 대기하도록 Netcat 설정

netcat을 시작하고 포트 2999에서 수신하도록 한 다음 수신된 데이터를 다음 명령 문자열을 사용하여 "received.txt"라는 파일로 리디렉션합니다.

nc -l 2999 > received.txt

클라이언트로 이동하기 전에 로컬 네트워크에 Mac의 IP 주소가 있어야 합니다. 네트워크 제어판에서 가져오거나 이미 터미널에 있으므로 다음 구문을 사용하여 명령줄을 통해 가져올 수 있습니다.

ipconfig getifaddr en0

Wi-Fi만 있는 최신 Mac은 en0을 사용하고 이더넷 및 Wi-Fi가 있는 Mac은 en1을 사용할 수 있습니다. 아무 것도 나타나지 않으면 다른 인터페이스를 사용하여 LAN IP를 얻으십시오. 이 Mac의 IP가 "192.168.1.101"로 보고된다고 가정해 보겠습니다. 물론 귀하의 IP는 다를 수 있습니다. 데이터를 보내려면 클라이언트 컴퓨터에 이것이 필요합니다. 다음에 다룰 것입니다.

클라이언트(컴퓨터 2)에서 수신 서버로 데이터 파이프

이제 데이터를 보내려는 클라이언트에서 다음과 같은 명령을 사용할 수 있습니다. 우리는 cat을 사용하여 네트워크를 통해 청취하는 netcat 서버로 텍스트 파일을 덤프하지만 원하는 거의 모든 것을 파이프할 수 있습니다.

cat sendthisdataover.txt | nc 192.168.1.101 2999

이 기능이 제대로 작동하려면 서버에서 자신의 IP 주소를 입력하고 전송하려는 적절한 파일이나 텍스트를 cat해야 합니다.

로컬 네트워크가 조금이라도 빠르다고 가정하면 데이터가 즉시 도착하지는 않더라도 상당히 빠르게 도착해야 합니다. 데이터 전송이 완료되면 양쪽 연결이 중단되고 서버가 수신을 중지한 다음 포트를 닫습니다. 이렇게 하면 로그 파일이나 큰 텍스트 문서와 같은 데이터를 일회성으로 보내는 데 효과적이지만 많은 파일을 이동하는 데 반드시 실용적이지는 않습니다.

이미 언급했듯이 거의 모든 데이터를 파이프할 수 있으므로 다른 앱, tail, cat의 출력이든 pbcopy 및 pbpaste를 사용하여 클립보드에서 직접 덤프한 출력이든 관계없이 다음을 통해 전송됩니다. 넷캣.

Mac 간에 또는 Mac과 Linux 또는 Windows 시스템 간에 클립보드를 공유하는 더 편리한 방법이 있으며 이러한 상황에서는 Mac용 Teleport와 같은 무료 도구를 사용하는 것이 좋습니다. to-Mac 입력 공유 또는 무료 Synergy 유틸리티(Mac과 PC 간에 교차 플랫폼으로 이동하는 경우). 둘 다 사용자가 마우스 및 키보드와 같은 입력 장치뿐만 아니라 클립보드 데이터를 공유할 수 있도록 합니다.

기록을 위해 이 데모는 OS X이 설치된 두 대의 Mac에서 표시되지만 netcat을 사용하여 Mac과 Linux 시스템 간에 또는 그 반대로 데이터를 전송하지 못할 이유가 없습니다.

netcat을 위한 다른 훌륭한 용도가 많이 있습니다. 좋아하는 것이 있으면 댓글로 알려주십시오!

명령줄을 사용하여 Netcat으로 네트워크로 연결된 컴퓨터 간에 데이터 전송