web-dev-qa-db-ja.com

Netcat-IPv6アドレスを使用してTCPポートでリッスンする方法?

IPv6アドレスのオプションがないように見える最新バージョンのnetcat(v1.10-41.1)を使用しています(-6ncの古いバージョンにあったため)。

nc -lvnp 2222と入力し、netstat -puntaを使用してリスニングポートを確認すると、サーバーはIPv4アドレスの場合のみポート2222でリスニングしているように見えます。

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

たとえば、私のApache2サーバーのようにtcp6がアクティブではありません。

tcp6       0      0 :::80                   :::*                    LISTEN      -
13
bashbin

Debianで見られるように、少なくとも3つまたは4つの異なるnetcatの実装があります。

  • netcat-traditional 1.10-41 IPv6をサポートしないオリジナル:おそらくインストールしたもの。
  • netcat6 これは、IPv6を提供するために作成されました(旧安定、代替)。
  • netcat-openbsd 1.130-3。 IPv6をサポートしていますか。
  • ncat 7.70 + dfsg1-3 nmap が提供するDebianの安定版ではないため、IPv6をサポートしています。

私はopenbsdを使います。バージョンごとに微妙に異なる構文を使用できるため、注意してください。

ちなみに socat は、netcatよりもはるかに多くのことができる優れたツールです。あなたはそれを試すべきです!

17
A.B

Ipv4とipv6の機能は、実際には複数の実装(フォーク)や完全に異なるバージョンがあるという混乱の結果だと思います。検索すると、nc6の言及に遭遇します。この実装は、BSDベースのディストリビューションにあるようです。

特定のディストリビューションにnc6をインストールし、ncの代わりにそれを実行して、ipv6をサポートしてみます。

さらなる研究

私はこれを見つけることができました commit dated 2018-01-11- add IPv6 patch これは、明らかにnewernetcatのバージョン。

注:私は自分のシステムでnc 7.50にのみアクセスでき、あなたが説明するように、-4-6の両方をサポートしています。

あなたがnetcatの新しいバージョンであると思うものは、実際にははるかに古いバージョンであると思います http://nc110.sourceforge.net/

さまざまな実装の完全なリストが必要な場合、これは Netpediaに関するWikipediaの質問 で入手できます。

Netcatの元のバージョンはUnixプログラムでした。最後のバージョン(1.10)は1996年3月にリリースされました。 1

ほとんどのLinuxディストリビューションでは、GNU netcatまたはNMAPバージョンが、ほとんどが使用しているように見えます:

[〜#〜] posix [〜#〜] システムにはいくつかの実装があり、これには [〜#〜] gnu [〜#〜] netcat- [5] または OpenBSD netcat、 6 後者はIPv6および [〜#〜] tls [〜#〜]をサポートします 。 OpenBSDバージョンは FreeBSD base 7 およびWindows/Cygwinに移植されています。 8 Mac OS Xには、OSX 10.13以降にインストールされたnetcatが付属しています。ユーザーはMacPortsを使用してバリアントをインストールできます。[9]利用可能なnetcatのMicrosoft Windowsバージョンもあります。[10]

たとえば、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
4
slm