在我们的实验室中,我们有一个 Linux 服务器,我们可以使用特定 IP 本地登录或通过 ssh 登录。当我登录到机器时,我可以使用ifconfig
或查看其内部 IP ip a
,并且可以通过类似 的内容查看其外部 IP curl icanhazip.com
。然而,最后一个命令报告的外部IP与我使用ssh连接到机器时输入的外部IP不同,我相信报告的IP是我们路由器的IP。
当我在本地登录到机器时,我是否可以找出哪些IP地址可用于ssh进入系统(不是登录用户的IP地址,而是我可以使用哪些IP地址)命令ssh ###.###.###.###
)。我想在不登录路由器管理面板来查看正在转发哪些 IP 地址和端口的情况下找到这一点。 ssh IP 地址是否会存储在文件中(我在 中找不到任何内容/etc/sshd_config
),或者是否有一个命令可以运行来显示它,就像使用内部 IP 一样?
答案1
许多实用程序都会显示用户的 IP 地址,包括who
和w
。last -ai
当然,如果发生任何形式的重定向,您可能会查看执行重定向的计算机。
答案2
如果我理解正确的话,您想知道是否可以位于路由器后面的 LAN 节点上,并且从那台机器查看您的路由器使用哪些端口来转发 SSH 流量?如果这是问题所在,那么在您的场景中将没有办法做到这一点。路由器配置对您来说是不可见的,但是有多种方法可以进行探测以找到它。
如果它是专用网络并且您有授权,您可以运行标准网络映射 (nmap) 和/或netstat
在终端中保持打开状态。更好的是,获得详细的输出(插入防火墙解决方案,如 ufw 或 firewalld 或只是 iptables)并启动/停止服务,您的防火墙将准确地告诉您 ssh 从双方(路由器中的路由器)正在 ping/阻止/使用哪些端口, 你出去)。使用 Deb/Ubuntu/Mint 最简单的方法就是gufw
以 sudo 打开并在输入后查看日志 sudo systemctl restart ssh
如果问题是如何找到您的内部或外部 IP,我认为这已经涵盖了。但如果没有端口,知道这些数字是没有用的(我确信您知道 SSH 的默认值是 22)。
答案3
ip route get 8.8.8.8 | awk '{print $NF; exit}'
给出你的本地IP地址
IP=$(curl -s http://www.whatsmyip.website); echo $IP
将 IP 地址输入路由器