我安装了 Ubuntu 服务器 12.04,因此没有 GUI。当我执行 ifconfig 命令时,我找不到我的内部 IP 地址。它显示:inet addr: 127.0.0.1
。
以下是输出ifconfig -a
:
eth0 link encap:Ethernet HWaddr 00:06:4f:4a:66:f0
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth1 link encap:Ethernet HWaddr 00:16:ec:05:c8:9c
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr 127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1800 errors:0 dropped:0 overruns:0 frame:0
Tx packets:1800 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:143896 (143.b KB) TX bytes:143896 (143.8 KB)
以下是内容/etc/network/interfaces
:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
如果有人可以为我编辑这个,那么 etc/network/interfaces 的内容应该放在单独的行上。
主机 askubuntu.com 的输出为:
;; connection timed out; no servers could be reached.
几个月前我设置了 owncloud 和 webmin,并且使用了一个月,没有出现任何问题。我记得两个月前有一天断电了,直到昨天我才重新打开服务器。我没有做任何会影响互联网设置的事情,所以我不确定为什么它不再工作了。就我的网络拓扑而言,我的 PC 有一张 pci-e 网卡。以太网线从网卡连接到交换机,然后从那里连接到调制解调器/路由器。
答案1
hostname -I
这将只为您提供 IP 地址,没有任何额外信息。
答案2
这些命令将告诉您所有网络信息
ip address
或者
ifconfig -a
如果正如您所说它只给您 127.0.0.1 那么有两个选择:
您的网卡未连接或未被系统识别
您的网络 DHCP 服务器未运行或未连接
答案3
这是我目前的建议:
ip route get 8.8.8.8 | awk '{print $NF; exit}'
该命令的优点在于你不必知道你正在使用哪个接口(eth0?eth1?或者可能是 wlan0?),你不必过滤掉本地主机地址、Docker 地址或 VPN 隧道等,并且你始终可以获得当前用于 Internet 连接的 IP 地址就在那一刻(例如当您同时连接以太网和 wifi 或通过 VPN 等时很重要)。
这不仅会测试您是否在某些接口上配置了正确的 IP(例如解析的输出ifconfig
),而且还会测试您是否已配置路由表以正确使用它。
我在internalip脚本我在 GitHub 上的脚本集合,您可以使用以下方式安装:
wget https://rawgit.com/rsp/scripts/master/internalip
chmod a+x internalip
并用作:
internalip
或者:
internalip TARGET
你将获得用于连接的 IP 地址使用目标 IP 地址。默认目标8.8.8.8
是Google 的公共 DNS 解析器并且是互联网的一个良好默认设置。
但如果你用不同的 IP 运行它:
internalip 127.2.3.4
然后你会得到:
127.0.0.1
因为这是你的 IP 地址,将用于连接使用 127.2.3.4在环回接口上。当您的目标位于 LAN、VPN 或其他特殊网络上时,此功能很有用,在这种情况下,可以使用其他 IP 进行连接,而不是使用默认 IP 来访问互联网。
外部 IP
检查您的外部的IP 地址(当您连接到互联网上的服务器时,服务器看到的地址 - 可能与此处描述的内部 IP 地址不同)请参阅这个答案。
答案4
此命令将显示单个设备的所有 IP 地址:
dev=eth0
ip addr show $dev | awk '/inet/ {print $2}' | cut -d/ -f1
它将打印一行或两行输出。第一行是 inet/IPv4 地址,另一行是 inet6/IPv6(如果您的系统配置支持此功能)。