阿里云ECS服务器的公网IP地址

文章目录

注:本文介绍了如何获取阿里云ECS服务器的公网IP地址,可以顺便了解一下和阿里云服务器交互的几种方式。

环境

  • 阿里云ECS云服务器:Ubuntu 24.04(x64)
  • 客户端:Windows 11 家庭版 PowerShell 7.5.2

背景

服务器有公网IP地址,但是在服务器上,查询IP地址时:

powershell 复制代码
[root@iZ2zeatmupqwexsvlj0v2fZ ~] $ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:16:3e:37:22:0f brd ff:ff:ff:ff:ff:ff
    inet 172.28.20.204/20 brd 172.28.31.255 scope global dynamic eth0
       valid_lft 263616309sec preferred_lft 263616309sec
    inet6 fe80::216:3eff:fe37:220f/64 scope link
       valid_lft forever preferred_lft forever

没有显示公网IP地址。

这是因为,云厂商(如阿里云)通常为实例分配 私有IP 用于内网通信,公网IP通过 NAT(网络地址转换) 或 弹性公网IP(EIP) 映射到私有IP。

查询公网IP地址

有好几种方法可以查询服务器的公网IP地址。我们顺便通过这几种方法,了解一下和服务器交互的几种方式。

阿里云控制台

最简单的方法,是通过阿里云控制台来查看实例的公网IP地址:

阿里云客户端工具(图形界面)

首先要下载阿里云客户端工具。

在上图中,点击实例右边的"远程连接",在弹出对话框中,点击"展开其他登录方式",然后点击最下面的"立即下载"按钮:

我下载的文件是 alibaba-cloud-client-latest.exe 。下载完毕后,双击安装。安装完成后,打开客户端工具。

首先要创建一个profile,设置连接方式。可以用"Console Account"(即用户名密码)或者"AccessKey"(即Key和Secret)方式。

注:AccessKey的创建和管理:在阿里云控制台的右上方,把鼠标放在用户头像上,弹出菜单里选择"AccessKey",即可进入AccessKey管理页面。不过这里对于已经创建好的key,无法查看其secret(所以在创建key和secret之后,要妥善保存)。

创建好profile并且登录后,在主页点击"ECS"图标:

进入ECS页面,就会列出来所有实例的信息,包括它们的公网IP地址:

阿里云CLI工具(命令行)

https://github.com/aliyun/aliyun-cli/releases 下载,我下载的文件是 aliyun-cli-windows-3.0.296-amd64.zip 。解压后,生成 aliyun.exe 文件。将其加入系统路径里。

现在,就可以使用CLI工具了:

powershell 复制代码
PS C:\> aliyun version
3.0.296

在使用之前先要配置一下:

powershell 复制代码
PS C:\> aliyun configure
Configuring profile 'default' in 'AK' authenticate mode...
Access Key Id []: LTAI5tNikZetxmxswfwHQ33T
Access Key Secret []: xxxxxx
Default Region Id []: cn-beijing
Default Output Format [json]: json (Only support json)
Default Language [zh|en] en:
Saving profile[default] ...Done.

Configure Done!!!
..............888888888888888888888 ........=8888888888888888888D=..............
...........88888888888888888888888 ..........D8888888888888888888888I...........
.........,8888888888888ZI: ...........................=Z88D8888888888D..........
.........+88888888 ..........................................88888888D..........
.........+88888888 .......Welcome to use Alibaba Cloud.......O8888888D..........
.........+88888888 ............. ************* ..............O8888888D..........
.........+88888888 .... Command Line Interface(Reloaded) ....O8888888D..........
.........+88888888...........................................88888888D..........
..........D888888888888DO+. ..........................?ND888888888888D..........
...........O8888888888888888888888...........D8888888888888888888888=...........
............ .:D8888888888888888888.........78888888888888888888O ..............

配置信息会保存在根目录下的 .aliyun/config.json 文件中。

现在,就可以用 aliyun ecs DescribeInstances 命令来查询实例信息了:

powershell 复制代码
PS C:\> aliyun ecs DescribeInstances
{
        "Instances": {
                "Instance": [
                        {
                                ......
                                "PublicIpAddress": {
                                        "IpAddress": [
                                                "xxxxxx"
                                        ]
                                },
                                ......

所列出的详细信息里包含了实例的公网IP地址。

其它方法

元数据服务器

登录到服务器上,运行:

powershell 复制代码
curl http://100.100.100.200/latest/meta-data/eipv4

即可列出其公网IP地址。

100.100.100.200 是阿里云实例内部访问元数据的专用IP,无需配置即可使用。通过它可安全获取实例信息,是自动化运维的核心工具。

ipinfo.io

登录到服务器上,运行:

powershell 复制代码
curl ipinfo.io/ip

即可列出公网IP地址。

参考

  • https://ecs.console.aliyun.com