내가 사용하고 있는 netcat의 버전을 어떻게 알 수 있나요?

내가 사용하고 있는 netcat의 버전을 어떻게 알 수 있나요?

두 가지 맛이 있습니다 netcat.netcat-openbsd그리고netcat-전통적인.

내가 사용하고 있는 netcat의 버전을 어떻게 알 수 있나요? 먹어봤는데 man nc무슨 맛인지 모르겠어요.

답변1

우선, 컴퓨터에 여러 버전을 설치할 수 있습니다. 따라서 대답은 설치한 버전 수와 입력한 명령에 따라 달라집니다.

netcat-traditionalUbuntu의 netcat-openbsd패키지 관리자를 통해 설치할 수 있습니다 . apt제 경우에는 소스에서 빌드하여 GNU netcat플레이버를 설치하기도 합니다.이 공식 웹 사이트.

"openbsd" 버전의 경우 <package-name>을 사용하여 위치 바이너리 이름을 알아낼 수 있습니다. ( 패키지 관리자가 아닌 경우 dpkg -L와 동등한 것을 찾기 위해 인터넷 검색 ):dpkg Lapt

$ dpkg -L netcat-openbsd | grep /빈
/큰 상자
/큰 상자/nc.openbsd

그런 다음 type -a바이너리 이름이 nc.openbsd검색 가능 $PATH하고 명령으로 해석되는지 확인하는 데 사용됩니다.

$ type -a nc.openbsd
nc.openbsd is /bin/nc.openbsd
nc.openbsd is /bin/nc.openbsd

"전통적인" 맛은 동일합니다.

$ dpkg -L netcat-traditional | grep /bin
/bin
/bin/nc.traditional
$ type -a nc.traditional
nc.traditional is /bin/nc.traditional
nc.traditional is /bin/nc.traditional

이는 도구를 nc.openbsd실행하는 명령을 실행할 수 netcat-openbsd있고 도구를 nc.traditional실행하는 명령도 실행할 수 있음을 의미합니다 netcat-traditional. (명령에 '.'가 포함되어 있지만 패키지 이름에는 '-'가 포함되어 있어 혼동될 수 있습니다.)

다음을 통해 설치할 3가지 버전이 있는 것 같습니다 apt.

$ apt-cache search netcat --names-only
netcat-openbsd - TCP/IP swiss army knife
netcat - TCP/IP swiss army knife -- transitional package
netcat-traditional - TCP/IP swiss army knife

그러나 실제로 netcat는 더미 패키지일 뿐입니다.

$ apt-cache show netcat | grep Description-en  -A 2
Description-en: TCP/IP swiss army knife -- transitional package
 This is a "dummy" package that depends on lenny's default version of
 netcat, to ease upgrades. It may be safely removed.

따라서 원하는 경우 에만 netcat-openbsdand netcat-traditionalvia를 설치할 수 있습니다 .apt

sudo apt-get install netcat-openbsd
sudo apt-get install netcat-traditional

nc명령 과 는 어떻습니까 netcat? 로 검색 가능한 여러 버전에 연결될 수 있으며 , 또는 를 $PATH입력하면 경로 중 하나가 실행됩니다 . 다시 한 번 확인하는 데 사용할 수 있지만 우선 순위는 첫 번째 줄입니다(예:ncnetcattype -a용감한아래에):

$ 유형 -a NC 
nc는 /usr/local/bin/nc입니다.
nc는 /bin/nc입니다.
nc는 /usr/local/bin/nc입니다.
nc는 /bin/nc입니다.
$ 유형 -a netcat
netcat은 /usr/local/bin/netcat입니다.
netcat은 /bin/netcat입니다.
netcat은 /usr/local/bin/netcat입니다.
netcat은 /bin/netcat입니다.

realpath해결된 경로를 파악하는 데 사용할 수 있습니다 .

$ 실제 경로 /usr/local/bin/netcat 
/usr/local/bin/netcat
$ 실제 경로 /bin/netcat
/bin/nc.openbsd
$ 실제 경로 /usr/local/bin/nc
/usr/local/bin/netcat
$ 실제 경로 /bin/nc
/bin/nc.openbsd

그 중 4개 경로 중 2개만 내 시스템에서 고유합니다. 하나는 "GNU"이고 다른 하나는 "openbsd"입니다.

$ /usr/local/bin/netcat --version | head -1
netcat (The GNU Netcat) 0.7.1
$ /bin/nc.openbsd -h |& head -1
OpenBSD netcat (Debian patchlevel 1.130-3)

즉 , ncOR 을 입력하면 "GNU Netcat"이 netcat실행됩니다 ./usr/local/bin/netcat

update-alternatives확인된 심볼릭 링크 경로를 조정해 볼 수 있습니다 .

$ realpath /bin/nc
/bin/nc.openbsd
$ realpath /bin/netcat
/bin/nc.openbsd
$ sudo update-alternatives --config nc
There are 2 choices for the alternative nc (providing /bin/nc).

  Selection    Path                 Priority   Status
------------------------------------------------------------
  0            /bin/nc.openbsd       50        auto mode
* 1            /bin/nc.openbsd       50        manual mode
  2            /bin/nc.traditional   10        manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /bin/nc.traditional to provide /bin/nc (nc) in manual mode
$ realpath /bin/nc
/bin/nc.traditional
$ realpath /bin/netcat
/bin/nc.traditional

둘 다 변경 /bin/nc하고 /bin/netcat심볼릭 링크 ¹를 로 해결했지만 OR을 입력해도 여전히 내 우선 순위가 높기 때문에 /bin/nc.traditional맛이 변경되지 않습니다 .ncnetcat/usr/local/bin//bin$PATH

$ /bin/nc -h |& head -1
[v1.10-41]
$ nc -h |& head -1
GNU netcat 0.7.1, a rewrite of the famous networking tool.
$ type -a nc | head -1
nc is /usr/local/bin/nc

netcat에는 더 많은 종류가 있습니다. 예:ncat,소캣,sbd,netcat6,pnetcat, 그리고암호 화폐.

¹ 업데이트된 실제 심볼릭 링크는 /etc/alternatives/nc및 였으며 /etc/alternatives/netcat, 은 /bin/nc이미 및 각각 /bin/netcat에 대한 심볼릭 링크였습니다 ./etc/alternatives/nc/etc/alternatives/netcat

답변2

내가 실행하면 nc --version다음을 얻습니다.

netcat (The GNU Netcat) 0.7.1
Copyright (C) 2002 - 2003  Giovanni Giacobbi

This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of this program under the terms of
the GNU General Public License.
For more information about these matters, see the file named COPYING.

Original idea and design by Avian Research <[email protected]>,
Written by Giovanni Giacobbi <[email protected]>.

어쩌면 BSD 버전에서도 구체적으로 말할 것입니다.

답변3

Mac의 경우(GNU 버전으로 표시되지만):

$ nc -h
GNU netcat 0.7.1, a rewrite of the famous networking tool.
[ further output snipped ]

Linux 상자(특히 Ubuntu)의 경우:

$ nc -h
[v1.10-41]
[ further output snipped ]

netcat --version, 다른 답변에서 제안된 '잘못된 옵션' 오류가 에 발생했으므로 잠재적으로 범용 테스트인 것 같습니다 --version.-h

관련 정보