文章目錄
- 環境
- 背景
- 查詢公網IP地址
- 阿里云控制臺
- 阿里云客戶端工具(圖形界面)
- 阿里云CLI工具(命令行)
- 其它方法
- 元數據服務器
- ipinfo.io
- 參考
注:本文介紹了如何獲取阿里云ECS服務器的公網IP地址,可以順便了解一下和阿里云服務器交互的幾種方式。
環境
- 阿里云ECS云服務器:Ubuntu 24.04(x64)
- 客戶端:Windows 11 家庭版 PowerShell 7.5.2
背景
服務器有公網IP地址,但是在服務器上,查詢IP地址時:
[root@iZ2zeatmupqwexsvlj0v2fZ ~] $ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:16:3e:37:22:0f brd ff:ff:ff:ff:ff:ffinet 172.28.20.204/20 brd 172.28.31.255 scope global dynamic eth0valid_lft 263616309sec preferred_lft 263616309secinet6 fe80::216:3eff:fe37:220f/64 scope linkvalid_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工具了:
PS C:\> aliyun version
3.0.296
在使用之前先要配置一下:
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
命令來查詢實例信息了:
PS C:\> aliyun ecs DescribeInstances
{"Instances": {"Instance": [{......"PublicIpAddress": {"IpAddress": ["xxxxxx"]},......
所列出的詳細信息里包含了實例的公網IP地址。
其它方法
元數據服務器
登錄到服務器上,運行:
curl http://100.100.100.200/latest/meta-data/eipv4
即可列出其公網IP地址。
100.100.100.200
是阿里云實例內部訪問元數據的專用IP,無需配置即可使用。通過它可安全獲取實例信息,是自動化運維的核心工具。
ipinfo.io
登錄到服務器上,運行:
curl ipinfo.io/ip
即可列出公網IP地址。
參考
https://ecs.console.aliyun.com