文章目录
注:本文介绍了如何获取阿里云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