Giới thiệu: Tôi đã tạo một hàm bash có thể kiểm tra xem một cổng có khả dụng hay không và tăng thêm 1 nếu sai cho đến khi số cổng tối đa nhất định. Ví dụ: nếu cổng 500 không khả dụng thì tính khả dụng của 501 sẽ được kiểm tra cho đến 550.
Mục tiêu: Để kiểm tra chức năng bash này, tôi cần tạo một loạt các cổng ở trạng thái LISTEN.
Nỗ lực: Trên Windows có thể tạo cổng LISTEN bằng các lệnh PowerShell sau:
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u> $listener = [System.Net.Sockets.TcpListener]1234
PS C:\Users\u> $listener.Start();
PS C:\Users\u> netstat -nat | grep 1234
TCP 0.0.0.0:1234 0.0.0.0:0 LISTENING InHost
PS C:\Users\u> $listener.Stop();
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u>
Dựa trên điều này, tôi đã cố gắng nghĩ về một lệnh có thể làm tương tự trên CentOS, nhưng tôi không biết tại sao và tôi bắt đầu Google mà không tìm ra giải pháp giải quyết vấn đề này.
Câu trả lời dự kiến : Tôi sẽ chấp nhận và nâng cấp câu trả lời có chứa lệnh có thể tạo cổng LISTEN và một khi lệnh đã được chạy, cổng sẽ ở trạng thái LISTEN, tức là:
[user@host ~]$ ss -nat | grep 500
LISTEN 0 128 *:500 *:*
netstat -an --tcp | awk '/LISTEN/ {sub(".*:", "", $4); print $4}' | sort -nu
. Trên * BSD :netstat -an -f inet -p tcp | awk '/LISTEN/ {sub(".*\\.", "", $4); print $4}' | sort -nu
.