Vì máy chủ của bạn đang kết nối với một IP nhất định, tôi đoán nó sẽ đến một cổng mà bạn cũng có kiến thức về?
Trong mọi trường hợp, netstat
hoặc ss
được thiết kế để làm những gì bạn muốn. Bạn có thể làm tương tự với một trong hai lệnh:
netstat -n -t | awk '{print $5}' | grep A.B.C.D:n
ss -n -t | awk '{print $5}' | grep A.B.C.D:n
trong đó A.B.C.D
đại diện cho một địa chỉ IPv4 và n
đại diện cho một số cổng mà máy chủ của bạn đang kết nối ở phía xa. Ví dụ:
ss -n -t | awk '{print $5}' | grep 10.137.54.22:3389
Hoặc, nếu bạn chỉ muốn biết rằng kết nối được tạo:
ss -n -t | awk '{print $5}' | grep -q 10.137.54.22:3389 && echo "CONNECTION MADE"
Nếu bạn không biết số cổng mà bạn đang cố gắng kết nối, thì công việc sẽ khó khăn hơn vì TCP sẽ mở một cổng ở cả hai phía của cuộc hội thoại cho các gói dữ liệu và ACK. Trong trường hợp đó, bạn có thể chỉ cần grep cho địa chỉ IP để hiển thị rằng bất kỳ kết nối nào đã được thực hiện, cho dù đó là hoặc từ.
Cuối cùng, bạn có thể lặp nội dung này với nội dung trái tim của bạn để sử dụng làm công cụ theo dõi của bạn:
while true; do
ss -n -t | awk '{print $5}' | grep -q A.B.C.D:n && \
echo "CONNECTION MADE" && \
exit 0
sleep 1
done