Скажем мой eth0
интерфейс имеет несколько IP-адресов, и я могу подключиться по SSH к любому из них. Есть ли способ узнать, с кем из них я связан?
(Предпосылкой является то, что определенные операции, такие как удаление IP-адреса с хоста, лучше не выполнять с заданного IP-адреса. Чтобы избежать этого, я хочу сначала проверить это, прежде чем я закроюсь.)
Вы можете просто ввести:
echo "$SSH_CONNECTION"
Или, если вам нужен только IP-адрес сервера, а не другие поля:
echo "$SSH_CONNECTION" | cut -f3 -d' '
Если вы используете screen
и повторно подключитесь к ранее запущенному screen
Обратите внимание, что выполнение этих команд внутри screen
покажет соединение, из которого screen
был запущен, а не сеанс, к которому вы повторно подключились screen
.
Самый простой способ - использовать netstat и проверить там соединения.
user@host:~$ sudo netstat -ntp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 128 0 123.45.67.89:50212 98.76.54.32:22 ESTABLISHED 16774/ssh
[more stuff removed]