2016-03-07 94 views
2

是否可以連續收聽端口?通過終端連續收聽tcp端口

我聽傳入的TCP通知與作爲通知到達我必須重新啓動與相同的命令聽下面的命令

sudo nc -l -p 999 

但一旦。當通知到達時,是否可以在不需要重新啓動命令的情況下監聽端口,直到用戶決定中止監聽?

+0

把它放在一個循環? – dreamlax

+0

確切地說,無論何時收到通知,都應該在終端中打印,而無需手動重新啓動命令。 – S4M11R

+0

這是否工作:'雖然是真的;做nc -l -p 999;完成' – dreamlax

回答

1

解決了一個簡單的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的小費!

+0

我會避免把'sudo'放在循環中,除非它被配置爲不提示輸入密碼,否則如果在15分鐘內沒有收到任何東西(或任何sudo超時配置你的系統)和'sudo'再次運行。 – dreamlax

+0

更好地從腳本中刪除sudo然後運行腳本爲sudo? 例如:sudo tcpListen.sh – S4M11R

+0

是的,那會更好,我想! – dreamlax

8

Sorta過時的問題,但在我的谷歌搜索中第一次出現。

爲了讓netcat在收到第一個連接後不立即關閉,可以添加-k選項。

從男人:

-k部隊NC保持其當前的連接完成後,偵聽另一個連接。不使用-l選項使用此選項是錯誤的。

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