ssh需要的IP地址和服务器内部一次显示的IP地址有什么区别

What is the difference between the IP address needed for ssh, and the IP address that is displayed once inside the server

当我 ssh 进入我的服务器时,我发出以下命令:

ssh <username>@<ip-of-server>

然后,当我进入时,我看到以下提示:

<username>@ip-<different-ip-address>:

当我在服务器中尝试 echo $PS1 时,我看到以下内容:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w$,这告诉我主机必须不同。为什么这些不一样:ip 和 host?

我问的原因是,我可以通过ssh-ing访问,但是我无法ping通:

ping <ip-of-server> ...导致 100% 损失。

所以,我想也许我应该 ping 另一个 ip,但是:

ping ip-<different-ip-address> ... 也导致 100% 损失。

怎么会ping不通,还能登陆?

私有 IP 是 AWS 内部的 10.x.x.x

您也可以通过调用

来检查

curl http://169.254.169.254/latest/meta-data/local-ipv4

在您的实例中从元数据服务器获取该信息。

Public IP(如果已分配)是外部 IP。您可以从元数据服务器获得相同的信息。尝试:

curl http://169.254.169.254/latest/meta-data/

如果您的shell提示有问题,您可以在查询public IP后设置提示。

ip-of-server 大概是服务器的public ip。 different-ip-address 可能是服务器的私有 ip。

ping 不会从外部通过,除非您通过为您的实例设置的安全组启用 ICMP 流量。

可以登陆是因为安全组中SSH使用的端口是开放的(TCP 22),而ICMP没有开放(ICMP)