如何在Linux中查找/获取IP地址
在排除网络问题,建立新连接或者配置防火墙时,了解设备的IP地址很重要。
IP地址可以分为两类,公共的和私有的。
公用IP是唯一的IP地址,可以从Internet访问。
专用IP地址保留供我们专用网络内部使用,而不会直接暴露给Internet。
此外,有两种类型的IP地址,即IP版本4(IPv4)和IP版本6(IPv6)。
本文介绍了确定Linux系统的公共IP地址和私有IP地址的几种不同方法。
查找私有IP地址
专用IP地址不可通过Internet路由,只能在本地网络内工作。
通常,路由器会为本地网络中的每个设备分配一个专用IP地址。
这为局域网中的所有设备(例如电话,笔记本电脑,智能电视,打印机,媒体中心等)提供了唯一的IP地址。
本地网络上的设备正在通过NAT(网络地址转换)连接到Internet。
以下IPv4地址范围是为专用网络保留的:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
我们可以通过使用'ip','ifconfig'或者'hostname'等命令查询网络堆栈来确定系统专用IP地址。
在Linux中,用于显示和配置网络接口的标准工具是'ip'。
要显示所有网络接口和关联的IP地址的列表,请键入以下命令:
ip addr
输出将如下所示。
专用IP地址突出显示。
我们还可以使用以下命令来显示私有IP地址:
hostname -I
ifconfig
查找公共IP地址
公共IP地址是分配给网络设备的全局可路由IP地址,允许其直接访问Internet。
它们由其ISP分配给该设备,并且每个设备都有一个唯一的公共IP地址。
公用IP地址由家庭路由器,Web服务器,邮件服务器等使用。
确定公共IP地址涉及通过HTTP/HTTPS或者DNS协议联系远程服务器,并从远程服务器响应中获取IP地址。
在台式机上,找出公共IP地址的最简单方法是在浏览器中键入“我的IP是什么”:
如果我们使用的是无头Linux服务器,或者要将IP地址分配给Shell脚本变量,则可以使用命令行工具,例如'dig','curl'和'wget'。
大多数DNS提供程序(例如OpenDNS和Google)都允许我们查询其服务器并获取公共IP地址。
我们可以使用以下任何命令来获取IP:
dig ANY +short @resolver2.opendns.com myip.opendns.com
- ``` sh
dig ANY +short @resolver2.opendns.com myip.opendns.com
dig ANY +short @ns1-1.akamaitech.net ANY whoami.akamai.net
有许多在线HTTP/HTTPS服务可以使用公共IP地址进行响应。
这里是其中的一些:
- ``` sh
curl -s http://tnx.nl/ip
curl -s https://checkip.amazonaws.com
- ``` sh
curl -s api.infoip.io/ip
curl -s ip.appspot.com
- ``` sh
wget -O - -q https://icanhazip.com/
如果以上任何命令均不起作用,则在线服务可能存在问题。
我们甚至可以在“~/.bashrc”或者“~/.zshrc”文件中创建别名,因此我们无需键入并记住长命令。
例如,我们可以添加以下别名:
alias pubip='dig ANY +short @resolver2.opendns.com myip.opendns.com'
现在,只要我们需要查找公共IP,只需在终端中键入“ pubip”即可。