获取网络相关信息小技巧(个人备注)

51 阅读3分钟

容器安装 curl

如果容器内的操作系统支持包管理工具(如 aptyum),可以通过以下方式临时安装 curl

基于 Debian/Ubuntu 的容器

apt update && apt install -y curl

基于 CentOS/RHEL 的容器

yum install -y curl

注意:临时安装的软件不会持久化,因为容器重启后会恢复为原始镜像的状态。


获取本机的公网 IP 地址

方法 1:使用 curlwget

使用 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 地址。
  • 示例
    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
    

常见用法

  1. 查看所有网络接口的信息

    ifconfig
    
  2. 显示某个网络接口的信息

    ifconfig eth0
    
  3. 启用或禁用网络接口

    • 启用接口:
      ifconfig eth0 up
      
    • 禁用接口:
      ifconfig eth0 down
      
  4. 配置 IP 地址

    ifconfig eth0 192.168.1.100 netmask 255.255.255.0
    
  5. 设置 MTU

    ifconfig eth0 mtu 1400
    

ifconfig 的替代工具

在较新的 Linux 系统(如基于 systemd 的发行版)中,ifconfig 已被标记为过时(deprecated)。可以使用以下工具替代:

  1. ip 命令(推荐)

    • 查看网络接口:
      ip addr
      
    • 启用或禁用接口:
      ip link set eth0 up
      ip link set eth0 down
      
  2. nmcli 命令(NetworkManager)

    • 查看网络状态:
      nmcli device status