Netcat이 청취 모드에서 시작되지 않습니다


13

CentOS 6.7 (최종) 시스템을 사용하고 nc있는데 청취 모드에서 실행하려고 하면 다음이 인쇄됩니다.

# nc -l 1234
nc: Protocol not available

포트가 바인드되지 않았습니다. 다른 포트 번호도 시도했습니다. 이 버그는 이미보고 된 것 같다 : https://access.redhat.com/solutions/1753753를 . 불행히도 그것은 상세하지 않습니다.

패키지 정보 :

Name        : nc
Arch        : x86_64
Version     : 1.84
Release     : 24.el6

시험 해봐야 할 것이 있습니까?


어떤 버전의 nc를 사용하고 있습니까?
Jenny D

@JennyD 게시물을 업데이트했습니다. 확인하시기 바랍니다
Ilya I

1
불행히도 유일한 수정은 아래에 설명 된대로 다운 그레이드입니다. 나는 또한 시스템 관리에 관한 것이 아니기 때문에이 질문을 Unix & Linux 로 옮기기로 투표하고 있습니다. 이 사이트는 저를 놀라게하는 전문가들과 함께하는 좋은 사이트이므로 귀하의 질문이 나쁘거나 다른 것이기 때문에 가까운 투표라고 생각하지 마십시오.
Jenny D

답변:


17

나는 같은 문제에 부딪쳤다. 이 방법으로 해결할 수 있습니다.

# Removes the old package
yum erase nc

# Manually downloads the working package from the Official Repository
wget http://vault.centos.org/6.6/os/x86_64/Packages/nc-1.84-22.el6.x86_64.rpm

# Installs the package
rpm -iUv nc-1.84-22.el6.x86_64.rpm

패키지는 x86_6464 비트 용입니다. i386(32 비트) 가 필요한 경우 올바른 것은 다음과 같습니다.

wget http://vault.centos.org/6.6/os/i386/Packages/nc-1.84-22.el6.i686.rpm

-i 및 -U 플래그와 함께 rpm을 동시에 사용하면 이상하게 보입니다 (그러나 작동합니다). 보다 표준적인 호출은 -ivh 또는 -Uvh입니다.
dmourati

1
매력처럼 작동하십시오!
Shawn Guo

이 경로는 더 이상 작동하지 않습니다
BradLaney

@BradLaney 왜 안 그래?
Eddie C.

@EddieC. 댓글을 달았을 때 URL이 404였습니다. 지금 작동하는 것 같습니다. 신경 쓰지 마.
BradLaney

9

이 넷캣 버전에는 버그가 있습니다. 문제가 해결 될 때까지 이전 버전으로 다운 그레이드하는 것이 유일한 방법 sudo yum remove nc-1.84-24.el6.x86_64; sudo yum install nc-1.84-22.el6.x86_64입니다.


1
하지 않습니다 yum먼저 제거하지 않고 패키지의 특정 버전으로 다운 그레이드 할 수 있습니다 인수가?
kasperd

훌륭하지만 다운 그레이드 할 수 없었습니다. Yum은 사용할 수있는 패키지가 없다고 말합니다 ( install특정 버전 및 downgrade명령 포함). 또한 해당 rpm 파일을 검색했지만 아직 찾지 못했습니다.
Ilya I

4

질문에 답하기 :

  1. 예, nc가들을 수 있도록 다운 그레이드가 필요합니다. 다른 의견에 관해서는 :

a) 청취 모드에서는 -p를 사용하지 않아야합니다. nc 맨 페이지에서 :

-l nc가 원격 호스트에 대한 연결을 시작하지 않고 들어오는 연결을 수신하도록 지정하는 데 사용됩니다. 이 옵션을 -p, -s 또는 -z 옵션과 함께 사용하면 오류가 발생합니다.

b) 다운 그레이드는 한 단계로 수행 될 수 있으며, yum 다운 그레이드 명령은 패키지의 url과 함께 작동합니다.

$ rpm -q nc
nc-1.84-24.el6.x86_64
$ nc -l 12345 #Although the syntax is correct, the command fails
nc: Protocol not available
$ nc -l -p 12345 #attempt to run with incorrect syntax
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
          [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
          [-x proxy_address[:port]] [hostname] [port[s]]
$ sudo yum downgrade http://vault.centos.org/6.6/os/x86_64/Packages/nc-1.84-22.el6.x86_64.rpm  #shortcut to downgrade
...
Setting up Downgrade Process
nc-1.84-22.el6.x86_64.rpm                                                              |  57 kB     00:00
Examining /var/tmp/yum-root-Iq4yc7/nc-1.84-22.el6.x86_64.rpm: nc-1.84-22.el6.x86_64
Resolving Dependencies
--> Running transaction check
---> Package nc.x86_64 0:1.84-22.el6 will be a downgrade
---> Package nc.x86_64 0:1.84-24.el6 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================
 Package          Arch                 Version                     Repository                            Size
==============================================================================================================
Downgrading:
 nc               x86_64               1.84-22.el6                 /nc-1.84-22.el6.x86_64               109 k

Transaction Summary
==============================================================================================================
Downgrade     1 Package(s)

Total size: 109 k
Is this ok [y/N]: y
...
Removed:
  nc.x86_64 0:1.84-24.el6

Installed:
  nc.x86_64 0:1.84-22.el6

Complete!
$ nc -l -p 12345 #attempt to run with incorrect syntax
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
          [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
          [-x proxy_address[:port]] [hostname] [port[s]]
$ nc -l 12345 # try to listen again
^C
$#nc successully opens a socket on 12345. had to stop it with ctrl+C

0
# nc -l -p 1234

-p플래그 를 명시 적으로 사용하여 해당 포트에서 청취 할 수 있습니다 .

-p source_port
         Specifies the source port nc should use, subject to privilege restrictions and availability.

문제는 nc1234를 대상 포트로 인식하고 (리스닝 모드에서 실행 되더라도) 포트 0에서 수신하려고 시도하는 것입니다 (이상한 메시지 생성). 명시 적으로 전달 -p하면 해결됩니다.


나는 centos 6에서 이것을 시도했지만 버전 nc-1.84-24를 사용하여 작동하지 않았습니다. 수정은 받아 들인 대답에 따라 버전 nc-1.84-22로 다운 그레이드했습니다.
Criggie

해당 버전에서는 -p와 함께 -p를 사용할 수 없습니다.
andrej

-3

nmap을 설치하십시오.

m 설치 nmap

시험:

ncat -l 1234


특정 상황에서 답변이 충분하지 않은 이유를 알아 보려면 질문과 이미 제공된 답변을 읽으십시오.
Sven
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.