두 가지 맛이 있습니다 netcat
.netcat-openbsd그리고netcat-전통적인.
내가 사용하고 있는 netcat의 버전을 어떻게 알 수 있나요? 먹어봤는데 man nc
무슨 맛인지 모르겠어요.
답변1
우선, 컴퓨터에 여러 버전을 설치할 수 있습니다. 따라서 대답은 설치한 버전 수와 입력한 명령에 따라 달라집니다.
netcat-traditional
Ubuntu의 netcat-openbsd
패키지 관리자를 통해 설치할 수 있습니다 . apt
제 경우에는 소스에서 빌드하여 GNU netcat
플레이버를 설치하기도 합니다.이 공식 웹 사이트.
"openbsd" 버전의 경우 <package-name>을 사용하여 위치 바이너리 이름을 알아낼 수 있습니다. ( 패키지 관리자가 아닌 경우 dpkg -L
와 동등한 것을 찾기 위해 인터넷 검색 ):dpkg L
apt
$ 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-openbsd
and netcat-traditional
via를 설치할 수 있습니다 .apt
sudo apt-get install netcat-openbsd
sudo apt-get install netcat-traditional
nc
명령 과 는 어떻습니까 netcat
? 로 검색 가능한 여러 버전에 연결될 수 있으며 , 또는 를 $PATH
입력하면 경로 중 하나가 실행됩니다 . 다시 한 번 확인하는 데 사용할 수 있지만 우선 순위는 첫 번째 줄입니다(예:nc
netcat
type -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)
즉 , nc
OR 을 입력하면 "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
맛이 변경되지 않습니다 .nc
netcat
/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