假设我的eth0
接口有多个 IP 地址,我可以通过 SSH 连接到其中任何一个。有没有办法找出我连接到了哪一个?
(背景是某些操作,比如从主机中删除 IP,最好不要从给定的 IP 地址执行。为了避免这种情况,我想在关闭自己之前先检查一下。)
答案1
您只需输入:
echo "$SSH_CONNECTION"
或者如果您只想要服务器 IP 地址而不是其他字段:
echo "$SSH_CONNECTION" | cut -f3 -d' '
如果您正在使用screen
并重新连接到以前启动的screen
会话,请注意在里面运行这些命令screen
将显示启动的连接screen
而不是您重新连接到的会话screen
。
答案2
最简单的方法是使用 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]