Netcatがリスニングモードで起動に失敗する


13

CentOS 6.7(Final)システムを使用ncしています。リスニングモードで実行しようとすると、次のように出力されます。

# nc -l 1234
nc: Protocol not available

ポートはバインドされていません。他のポート番号も試しました。このバグは既に報告されているようです:https : //access.redhat.com/solutions/1753753。残念ながら、あまり詳細ではありません。

パッケージ情報:

Name        : nc
Arch        : x86_64
Version     : 1.84
Release     : 24.el6

他に試してみる必要があるものはありますか?


どのバージョンのncを使用していますか?
ジェニーD

@JennyD投稿を更新しました、チェックしてください
イリヤI

1
残念ながら、以下で説明するように、唯一の修正はダウングレードです。また、システム管理に関するものではないため、この質問をUnixとLinuxに移動することも投票しています。それは私をa敬の念を抱かせる専門家がいる良いサイトですので、あなたの質問が悪いか何かであるからといって投票をしないでください。
ジェニーD

回答:


17

私は同じ問題に遭遇しました。この方法で解決できます:

# Removes the old package
yum erase nc

# Manually downloads the working package from the Official Repository
wget http://vault.centos.org/6.6/os/x86_64/Packages/nc-1.84-22.el6.x86_64.rpm

# Installs the package
rpm -iUv nc-1.84-22.el6.x86_64.rpm

パッケージはx86_64(64ビット)用であることに注意してください。必要な場合i386(32ビット)、正しいものは次のとおりです。

wget http://vault.centos.org/6.6/os/i386/Packages/nc-1.84-22.el6.i686.rpm

-iフラグと-Uフラグを同時に指定してrpmを使用すると、奇妙に見えます(ただし機能します)。より標準的な呼び出しは、-ivhまたは-Uvhです。
-dmourati

1
魅力のように働く!
ショーン郭

このパスは機能しなくなりました
BradLaney

@BradLaneyなぜそうなのですか?
エディC.

@EddieC。私がコメントをしたとき、URLは私にとって404ingでした。現在動作しているようです。気にしないで。
BradLaney

9

この特定バージョンのnetcatにはバグがあります。それが修正されるまで、あなたができる唯一のことは前のバージョンにダウングレードすることです- sudo yum remove nc-1.84-24.el6.x86_64; sudo yum install nc-1.84-22.el6.x86_64トリックを行う必要があります。


1
yum最初にアンインストールせずにパッケージの特定のバージョンにダウングレードできる引数はありませんか?
カスペルド

すばらしいですが、ダウングレードできませんでした。Yumは、利用可能なパッケージがないと言います(install特定のバージョンとdowngradeコマンドの両方)。また、そのrpmファイルを検索しようとしましたが、まだ見つかりませんでした。
イリヤI

4

質問に返信する:

  1. はい、ncがリッスンできるようにダウングレードが必要です。そして、他のコメントに関して:

a)-pは、リスニングモードでは使用しないことになっています。ncマンページから:

-l ncがリモートホストへの接続を開始するのではなく、着信接続をリッスンするように指定するために使用します。このオプションを-p、-s、または-zオプションと組み合わせて使用​​するとエラーになります。

b)ダウングレードは1ステップで実行でき、yum downgradeコマンドはパッケージのURLで機能します。

$ rpm -q nc
nc-1.84-24.el6.x86_64
$ nc -l 12345 #Although the syntax is correct, the command fails
nc: Protocol not available
$ nc -l -p 12345 #attempt to run with incorrect syntax
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
          [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
          [-x proxy_address[:port]] [hostname] [port[s]]
$ sudo yum downgrade http://vault.centos.org/6.6/os/x86_64/Packages/nc-1.84-22.el6.x86_64.rpm  #shortcut to downgrade
...
Setting up Downgrade Process
nc-1.84-22.el6.x86_64.rpm                                                              |  57 kB     00:00
Examining /var/tmp/yum-root-Iq4yc7/nc-1.84-22.el6.x86_64.rpm: nc-1.84-22.el6.x86_64
Resolving Dependencies
--> Running transaction check
---> Package nc.x86_64 0:1.84-22.el6 will be a downgrade
---> Package nc.x86_64 0:1.84-24.el6 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================
 Package          Arch                 Version                     Repository                            Size
==============================================================================================================
Downgrading:
 nc               x86_64               1.84-22.el6                 /nc-1.84-22.el6.x86_64               109 k

Transaction Summary
==============================================================================================================
Downgrade     1 Package(s)

Total size: 109 k
Is this ok [y/N]: y
...
Removed:
  nc.x86_64 0:1.84-24.el6

Installed:
  nc.x86_64 0:1.84-22.el6

Complete!
$ nc -l -p 12345 #attempt to run with incorrect syntax
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
          [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
          [-x proxy_address[:port]] [hostname] [port[s]]
$ nc -l 12345 # try to listen again
^C
$#nc successully opens a socket on 12345. had to stop it with ctrl+C

0
# nc -l -p 1234

-pフラグを明示的に使用して、そのポートでリッスンできます。

-p source_port
         Specifies the source port nc should use, subject to privilege restrictions and availability.

問題は、(リスニングモードで実行されているにも関わらず)nc1234を宛先ポートとして扱い、ポート0(その奇妙なメッセージを生成した)でリッスンしようとする線に沿っていました。明示的に渡す-pことで回避できます。


CentOS 6でこれを試しましたが、バージョンnc-1.84-24を使用しても機能しませんでした。修正は、受け入れられた回答に従ってバージョンnc-1.84-22にダウングレードすることでした。
クリギー

そのバージョンでは、-pを-lと併用することはできません。
アンドレジ

-3

nmapをインストールします。

yum install nmap

試してください:

ncat -l 1234


質問と既に提供された回答を読んで、その特定のケースであなたの答えが十分ではない理由を学んでください。
スヴェン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.