Netcat - Jak nasłuchiwać na porcie TCP za pomocą adresu IPv6?


13

Korzystam z najnowszej wersji netcat ( v1.10-41.1), która nie wydaje się mieć opcji dla adresów IPv6 (jak -6było w starszych wersjach nc).

Po wpisaniu nc -lvnp 2222i sprawdzeniu portów nasłuchiwania netstat -puntaserwer wydaje się nasłuchiwać tylko na 2222adresach IPv4:

tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      2839/nc  

tcp6 nie jest aktywny, jak na przykład mój serwer apache2:

tcp6       0      0 :::80                   :::*                    LISTEN      -

Odpowiedzi:


17

Istnieją co najmniej 3 lub 4 różne implementacje netcat, jak widać na Debianie:

  • netcat-tradycyjny 1.10-41 oryginał, który nie obsługuje IPv6: prawdopodobnie to, co zainstalowałeś.
  • netcat6, który został stworzony, aby oferować IPv6 (oldstable, zastępowane).
  • netcat-openbsd 1.130-3. Obsługuje IPv6.
  • ncat 7.70 + dfsg1-3 prawdopodobnie nieco nowszy, ponieważ nie jest stabilny w Debianie, dostarczany przez nmap , obsługuje IPv6.

Wybrałbym ten openbsd. Każda wersja może mieć subtelnie inną składnię, więc uważaj.

Nawiasem mówiąc: socat jest znacznie lepszym narzędziem, które jest w stanie zrobić znacznie więcej niż netcat. Powinieneś spróbować!


2
Niesamowite. Dziękujemy za sugestię socatnarzędzia. Najwyraźniej ma znacznie więcej opcji i następujące: socat tcp6-listen:2222wykonał pracę.
bashbin

2
@bashbin, ale nieco bardziej szczegółowy w swojej składni. byłoby to socat tcp6-listen:2222,reuseaddr -(lub prawdopodobnie reuseportzamiast tego), jeśli chcesz go używać dwa razy z rzędu, gdy serwer (polecenie socat) rozłącza się jako pierwszy.
AB

4

Wierzę, że funkcjonalność ipv4 i ipv6 jest w rzeczywistości wynikiem zamieszania wokół wielu implementacji (widelców) lub zupełnie różnych wersji. Jeśli będziesz szukać, natkniesz się na wzmianki o nc6. Ta implementacja wydaje się znajdować w dystrybucjach opartych na BSD.

Spróbuję zainstalować nc6na konkretnej dystrybucji i uruchomić ją zamiast ncobsługi IPv6.

Dalsze badania

Udało mi się znaleźć to zatwierdzenie datowane na 01.01.2018 - dodaj łatkę IPv6, która wyraźnie dodaje funkcjonalność IPv6 z powrotem do tego, co nazywasz nowszą wersją netcat.

UWAGA: Mam dostęp tylko do nc 7.50 na moich systemach i, jak to opisujesz, obsługuje zarówno -4i -6.

Podejrzewam, że to, co uważasz za nowszą wersję netcat, jest w rzeczywistości znacznie starszą wersją: http://nc110.sourceforge.net/ .

Jeśli potrzebujesz wyczerpującej listy różnych implementacji, jest ona dostępna w pytaniu Wikipedii na temat Netcat .

Oryginalna wersja netcat była programem uniksowym. Ostatnia wersja (1.10) została wydana w marcu 1996 roku. 1

W większości dystrybucji Linuksa najczęściej używa się GNU netcat lub wersja NMAP:

Istnieje kilka implementacji w systemach POSIX , w tym przepisywanie od zera, takie jak GNU netcat [5] lub OpenBSD netcat, 6 z których ta ostatnia obsługuje IPv6 i TLS . Wersja OpenBSD została przeniesiona do FreeBSD base 7 i Windows / Cygwin. 8 Mac OS X jest dostarczany z NetCatem zainstalowanym od OSX 10.13 lub użytkownicy mogą korzystać z MacPorts, aby zainstalować wariant. [9] Dostępna jest również wersja netcat Microsoft Windows. [10]

Na przykład w CentOS 7.x:

$ nc --version
Ncat: Version 7.50 ( https://nmap.org/ncat )

$ rpm -qf /bin/nc
nmap-ncat-6.40-13.el7.x86_64
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.