Korzystam z najnowszej wersji netcat ( v1.10-41.1
), która nie wydaje się mieć opcji dla adresów IPv6 (jak -6
było w starszych wersjach nc
).
Po wpisaniu nc -lvnp 2222
i sprawdzeniu portów nasłuchiwania netstat -punta
serwer wydaje się nasłuchiwać tylko na 2222
adresach 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 -
socat
narzędzia. Najwyraźniej ma znacznie więcej opcji i następujące:socat tcp6-listen:2222
wykonał pracę.socat tcp6-listen:2222,reuseaddr -
(lub prawdopodobniereuseport
zamiast tego), jeśli chcesz go używać dwa razy z rzędu, gdy serwer (polecenie socat) rozłącza się jako pierwszy.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ć
nc6
na konkretnej dystrybucji i uruchomić ją zamiastnc
obsł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
-4
i-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 .
W większości dystrybucji Linuksa najczęściej używa się GNU netcat lub wersja NMAP:
Na przykład w CentOS 7.x:
źródło