web-dev-qa-db-ja.com

端末を介してTCPポートを継続的にリッスンします

ポートを継続的にリッスンすることは可能ですか?

次のコマンドで着信TCP通知をリッスンします

Sudo nc -l -p 999

しかし、通知が到着したらすぐに、同じコマンドでlistenを再開する必要があります。ユーザーがリッスンを中止することを決定するまで通知が届いたときにコマンドを再起動する必要なしにポートをリッスンすることは可能ですか?

7
S4M11R

簡単なbashスクリプトで解決

#!/bin/bash

#Make Sure Script Is Ran As Root
if [ $(id -u) != 0 ]; then
    echo; echo -e "\e[1;31mScript must be run as Sudo. Please Type \"Sudo\" To Run As Root \e[0m"; echo    
exit 1
fi

echo "Enter port to listen"
read portL

while true;
do
    nc -l -p $portL
done
exit 0

ヒントをくれたdreamlaxに感謝!

2
S4M11R

ちょっと古い質問ですが、Google検索で最初に出てきました。

最初の接続を受信した直後にnetcatがシャットダウンしないようにするには、-kオプション。

男から:

-k現在の接続が完了した後、ncに別の接続の待機を強制します。このオプションを-lオプションなしで使用すると、エラーになります。

Src: https://superuser.com/a/708133/410908

24
Nico Villanueva