内网IP用ip命令查看,公网IP需调用外部服务;执行ip addr show找inet行得内网IPv4,如192.168.1.100;公网IP可用curl ifconfig.me等获取。

如果您需要在Linux系统中区分并获取本机的内网IP地址与公网IP地址,必须使用不同机制:内网IP由本地网络接口直接分配,而公网IP需通过外部服务响应返回。以下是快速获取这两类IP地址的具体方法:
一、使用ip命令查看内网IP地址
ip命令是现代Linux系统推荐的网络配置工具,可直接读取内核网络栈中已配置的IPv4和IPv6地址,不依赖外部服务,结果即时可靠。
1、打开终端,输入以下命令:
ip addr show
2、在输出中查找以inet开头的行,例如inet 192.168.1.100/24或inet 10.0.2.15/24,其后斜杠前的数字即为内网IPv4地址。
3、若仅需显示IPv4地址且去除冗余信息,可执行:
ip -4 addr show | grep -oP '(?
二、使用hostname命令快速提取内网IP
hostname命令配合-I选项可一次性列出所有已配置的IPv4地址(不含127.0.0.1),适用于多网卡环境,输出简洁无格式干扰。
1、在终端中运行:
hostname -I
2、命令将直接输出空格分隔的多个内网IPv4地址,例如:192.168.1.100 10.0.2.15
三、使用ifconfig命令查看内网IP(需net-tools)
ifconfig是传统网络管理工具,虽在部分新发行版中默认未安装,但其输出结构清晰,便于人工识别各接口的inet地址。
1、如提示command not found,先安装net-tools:
sudo apt install net-tools # Debian/Ubuntu系统
sudo yum install net-tools # RHEL/CentOS 7及更早版本
2、执行命令:
ifconfig
3、在对应活动接口(如eth0、ens33或wlan0)区块中,找到inet字段后的IPv4地址,例如inet 192.168.128.132。
四、使用curl调用外部服务获取公网IP
公网IP无法从本地接口直接读取,必须向公网HTTP服务发起请求,由服务端返回客户端出口IP,该IP反映NAT或防火墙外的真实地址。
1、确保系统已安装curl:
which curl || echo "curl未安装,请先安装"
2、执行任一以下命令(任选其一即可):
curl ifconfig.me
curl cip.cc
curl icanhazip.com
curl ipinfo.io/ip
3、服务将直接返回纯文本IP,例如:203.208.60.123
五、使用wget替代curl获取公网IP
wget作为另一常用下载工具,在curl不可用时可提供相同功能,通过HTTP响应体提取公网IP,无需额外解析。
1、确认wget已存在:
which wget
2、执行以下任一命令:
wget -qO- ifconfig.me
wget -qO- icanhazip.com
wget -qO- ip.sb
3、输出结果为单行IPv4地址,例如:203.208.60.123
六、使用dig命令通过DNS查询公网IP
dig命令利用OpenDNS等公共DNS服务的TXT记录反查出口IP,不依赖HTTP协议,适合HTTP被策略限制的环境。
1、运行以下命令之一:
dig +short myip.opendns.com @resolver1.opendns.com
dig TXT o-o.myaddr.l.google.com @ns1.google.com | sed 's/"//g'
2、第一条命令将直接返回IPv4地址,例如:203.208.60.123


















