容器安装 curl
如果容器内的操作系统支持包管理工具(如 apt
或 yum
),可以通过以下方式临时安装 curl
:
基于 Debian/Ubuntu 的容器:
apt update && apt install -y curl
基于 CentOS/RHEL 的容器:
yum install -y curl
注意:临时安装的软件不会持久化,因为容器重启后会恢复为原始镜像的状态。
获取本机的公网 IP 地址
方法 1:使用 curl
或 wget
使用 curl
curl ifconfig.me
或者:
curl ipinfo.io/ip
使用 wget
wget -qO- ifconfig.me
方法 2:使用第三方服务(备用)
以下服务也可以返回公网 IP 地址:
https://api.ipify.org
https://icanhazip.com
https://checkip.amazonaws.com
使用方式:
curl https://api.ipify.org
curl https://icanhazip.com
curl https://checkip.amazonaws.com
方法 3:通过 dig
命令获取
如果服务器上安装了 dig
(BIND 工具包),可以使用以下命令:
dig +short myip.opendns.com @resolver1.opendns.com
方法 4:系统自带命令(可能不适用所有场景)
某些系统自带工具可能直接提供公网 IP 信息:
hostname -I
注意:
hostname -I
通常返回的是所有网络接口的 IP,可能包含私有地址。 是的,ifconfig
命令展示的是网卡信息。具体来说,它可以显示和管理网络接口(网卡)相关的配置和状态信息。
ifconfig
常用物理和虚拟网卡
docker0 :docker网桥虚拟网卡
eth0: 本地网卡
lo: 回环地址网卡
1. 网络接口的名称
- 每个物理或虚拟网络接口(如
eth0
,lo
,wlan0
)都有一个名称。 - 示例:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
2. 状态信息
UP
:接口已启用。RUNNING
:接口正在运行。- 示例:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
3. IP 地址信息
- 包括 IPv4 和 IPv6 地址:
- IPv4 地址:
inet
后面显示的是 IPv4 地址。 - IPv6 地址:
inet6
后面显示的是 IPv6 地址。
- IPv4 地址:
- 示例:
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::1c1b:efff:fe44:557b prefixlen 64 scopeid 0x20<link>
4. MAC 地址
- 表示网卡的硬件地址,显示在
ether
后面。 - 示例:
ether 1c:1b:ef:44:55:7b txqueuelen 1000 (Ethernet)
5. 网络统计信息
- 接收和发送的数据包统计:
- RX(接收):接收的包数和字节数。
- TX(发送):发送的包数和字节数。
- 丢包、错误等统计信息。
- 示例:
RX packets 1454873 bytes 123456789 (123.4 MB) TX packets 1234567 bytes 987654321 (987.6 MB)
6. MTU(最大传输单元)
- 网卡传输的最大数据包大小,单位是字节。
- 示例:
mtu 1500
7. 广播地址
- 广播地址是网络中发送给所有设备的特殊 IP。
- 示例:
broadcast 192.168.1.255
8. 网络掩码(Netmask)
- 用于标识子网的 IP 范围。
- 示例:
netmask 255.255.255.0
9. 环回接口(lo)
- 表示本地回环接口,用于本机通信,默认 IP 是
127.0.0.1
。 - 示例:
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0
常见用法
-
查看所有网络接口的信息
ifconfig
-
显示某个网络接口的信息
ifconfig eth0
-
启用或禁用网络接口
- 启用接口:
ifconfig eth0 up
- 禁用接口:
ifconfig eth0 down
- 启用接口:
-
配置 IP 地址
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
-
设置 MTU
ifconfig eth0 mtu 1400
ifconfig
的替代工具
在较新的 Linux 系统(如基于 systemd
的发行版)中,ifconfig
已被标记为过时(deprecated)。可以使用以下工具替代:
-
ip
命令(推荐)- 查看网络接口:
ip addr
- 启用或禁用接口:
ip link set eth0 up ip link set eth0 down
- 查看网络接口:
-
nmcli
命令(NetworkManager)- 查看网络状态:
nmcli device status
- 查看网络状态: