簡體   English   中英

查找當前連接的端口號SSH

[英]Find currently connected port number SSH

我正在使用SSH連接創建一個本地模擬器(未連接到Internet)。 我已經開始使用特定范圍的端口號進行sshd,並對一系列設備進行NAT處理。 我必須找到當前連接的端口號。

OS CentOS 5.5 OpenSSH 6.1

我做了以下事情。 它適用於正常使用(手動用戶)。但是當嘗試嚴格的測試(自動化)時,似乎有時找不到端口號。

#!/bin/bash

WHOINFO=`who -m`

USERNAME=`echo $WHOINFO | awk 'NR==1{print $1}'`
PTSNUMBER=`echo $WHOINFO | awk 'NR==1{print $2}'`

USERSTR=$USERNAME"@"$PTSNUMBER

PID=`ps -eLf | grep $USERSTR | awk 'NR==1{print $3}'`

if [ -z "$PID" ];
then
        exit
fi

PORTSTR=`netstat -natp | grep $PID | awk 'NR==1{print $4}'`

PORTNUMBER=${PORTSTR//*:/}

echo $PORTNUMBER

OpenSSH服務器將設置變量$SSH_CLIENT ,其中包含以空格分隔的當前ip,客戶端端口和服務器端口:

$ echo "$SSH_CLIENT"
127.0.0.1 59064 22

要獲取當前會話所連接的端口號,可以使用echo ${SSH_CLIENT##* }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM