我有几个系统连接到同一个网络交换机。它们都运行 Linux / Ubuntu 18。
我想通过 ssh 远程访问一台机器到另一台机器。
就是说我在其中一个机器上操作,想通过ssh远程访问另一台机器。
我该怎么办?
假设我不知道任何机器的 IP 地址,只能访问其中一台。我需要按照步骤获取另一台机器的 IP 地址。我只能在我可以访问的同一台交换机上操作一台机器
例如。我将机器 A、B、C、D 连接到交换机 S。我只能访问 A,而不能访问其他任何设备。
我碰到过一些 SO 答案,建议使用 arp -a,但从未超越这一点。
我有什么选择可以做这样的事情?
答案1
假设它是一个简单的交换机,并且没有任何机器具有防火墙或 iptabables 阻止所有入站流量,我将使用 ping、tcpping、nmap 甚至只是 ssh,并使用 bash 脚本来迭代网络中可用的 ip 地址。
假设您知道网络掩码,您可以确定网络的 IP 范围并从那里开始工作。
或者你可以使用如下方法:
#!/bin/bash
for destination in `arp -a | tail +5 | awk '{print $2}'`
do
nslookup $destination 1>/tmp/arp$$ 2>/dev/null
if [ `wc -l /tmp/arp$$ | awk '{print $1}'` -ge 4 ]; then
tail -2 /tmp/arp$$ | grep Address | awk '{print $2}'
fi
done
rm /tmp/arp$$
但前提是你知道它们都在同一网络范围内有静态 IP 地址或在同一范围内有动态 dhcp 地址。如果不是,唯一的办法就是查看交换机并在那里转储 arp 表。