Từ một tập lệnh bash, làm thế nào tôi có thể nhanh chóng tìm ra liệu một cổng 445
có mở / nghe trên máy chủ hay không.
Tôi đã thử một vài tùy chọn, nhưng tôi muốn một cái gì đó nhanh chóng:
1. lsof -i :445
(Mất vài giây)
2. netstat -an |grep 445 |grep LISTEN
(Mất vài giây)
3. telnet
(nó không quay trở lại)
4. nmap
,netcat
không khả dụng trên máy chủ
Sẽ thật tuyệt khi biết một cách không liệt kê trước và greps sau đó.
netstat -lnt
(có -t
và không có -a
) sẽ giới hạn đầu ra chỉ nghe các kết nối TCP. Nó có thể tăng tốc một chút. Bạn chỉ có thể thêm -4
cho IPv4 nếu bạn không cần IPv6.
netstat -an | grep PORTNUMBER | grep -i listen
Nếu đầu ra trống, cổng không được sử dụng.
lsof
lại chậm đối với bạn, nhưng thông thường, đó là giải pháp tốt nhất bạn liệt kê. netstat
Giải pháp của bạn không đáng tin cậy lắm (bạn có thể đoán nó bất cứ khi nào bạn sử dụng grep
; dù sao nó cũng trả về đúng nếu có ai đó nghe trên ví dụ 4450). telnet
và netcat
thực sự cố gắng tạo một kết nối, có thể không phải luôn luôn là những gì bạn muốn.