我想看看是否有东西在本地端口上监听。 我打算使用nc并检查退出代码。
像这样的东西:
echo "" | nc localhost 14881 echo $?
还有其他build议吗?
lsof -i:14881
如果你是根:
netstat -lnp | grep ':14881 '
也许netstat会更好,因为端口可能不在本地主机上侦听,或者可能被iptables阻止:
netstat -ln | grep :14881 echo $?
如果没有匹配,Grep将以1退出。 如果只需要tcp和/或udp,请将-u或-t开关添加到netstat。
netstat -ano | egrep LISTEN | egrep tcp | egrep $ PORTNUMBER
sudo ss -lntup会告诉你什么在监听TCP / UDP连接 – 你可以根据需要过滤输出(例如,在127.0.0.1,:: sudo ss -lntup上监听)。
如果你有python,你也可以创build一个愚蠢的portscanner(尽pipe对于TCP来说只有真正的价值):
import socket for p in range(1,2**16): try: s = socket.create_connection(('127.0.0.1',p)) print "Listener on tcp/{}".format(p) except: continue
我没有听到这个端口,我用这个在bash中退出。
$port="14881" if [[ $(netstat -ltn | grep ":${port} " | wc -l) -eq "0" ]] ; then echo "Port $port not listened to" && exit 1; fi