我已经安装了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 a几个月前,并且使用了一个月都没有问题。我认为两个月前的一天电源关闭,直到昨天我才重新打开服务器电源。我还没有做过任何会影响互联网设置的事情,所以我不确定为什么它不再起作用。就我的网络拓扑而言,我有用于PC的pci-e网卡。以太网线从网卡到交换机,再从那里到调制解调器/路由器。

评论

@AvatarParto这些是面向公共访问的接口,这个问题是关于内部网络的...

出于好奇,/ etc / network / interfaces中包含什么?

我知道如何使用更改目录命令,但是我不知道如何在那里列出文件,该怎么办?

ls将列出目录中的文件。 ls -l将给出详细的清单。要列出特定目录的内容,请使用ls -l / etc / network。切换到目录并列出内容cd / etc / network; ls -l。读取etc / network / interfaces的内容(这是一个文件)sudo pico / etc / network / interfaces。 (pico是一种轻量级的文本编辑器,非常适合阅读和基本编辑,并且比vi少吓人。)
ifconfig | grep -G“ 192.168。*。255” | cut -d''-f10可以获取IP,或者只是主机名-I |切-d''-f1

#1 楼

这些命令将告诉您所有网络信息

127.0.0.1,则有两个选项:


您的网卡未连接或未被系统识别
您的网络DHCP服务器未运行或未连接
/>

评论


当我登录时告诉我有一些升级或更新,因此我认为它必须与ubuntu官方网站进行交谈才能知道它具有更新,所以我认为我的互联网正在运行。

– Cam Jones
2014年3月7日13:35

@Skateguy尝试打开askubuntu.com,请打印所有ifconfig -a

– kamil
2014年3月7日13:36



我没有GUI,不过我要输入它。

– Cam Jones
2014年3月7日在13:53

我该如何回答您的两个选择提出的问题?

– Cam Jones
2014年3月7日14:58

我建议先使用ip选项,然后再使用(不建议使用的)ifconfig。

–露营
19年1月23日在8:49



#2 楼

hostname -I


这将为您提供IP地址,而没有任何其他信息。

评论


那很完美。这么多过于复杂(但不是很差)的答案..这简直是死了。

–user1003916
16年6月16日在22:22

完美的答案.. :)

–john400
16年7月8日在4:25

根据手册页:`-I,--all-ip-addresses显示主机的所有网络地址。此选项将枚举所有网络接口上的所有已配置地址。省略了环回接口和IPv6链接本地地址。因此,这将为您提供所连接网络上的IP地址,如果您将其用作以太网或lxd服务器,还将为您的计算机提供IP。在我的情况下,它给出了两个地址,因为我有lxd:192.168.0.78和10.0.3.1

– Sergiy Kolodyazhnyy
16年4月4日在18:10

是的就我而言,更糟糕的是10.0.2.15 172.18.0.1 172.17.0.1 172.20.0.1 172.21.0.1 172.22.0.1 172.19.0.1因为我正在运行一些Docker容器;)

– Alex
16-10-6在16:45

投票是因为其他解决方案无效,例如在原始docker ubuntu映像上

– noonex
17-2-5在13:21

#3 楼

这是我目前建议的:

ip route get 8.8.8.8 | awk '{print $NF; exit}'


该命令的优点是您不必知道正在使用哪个接口(eth0?eth1?或也许wlan0?),则不必过滤掉localhost地址,Docker地址或VPN隧道等。此时,您将始终获得当前用于Internet连接的IP地址(例如在连接时很重要同时使用以太网和wifi或通过VPN等)。路由表配置为正确使用它。

我在Collin Anderson的答案
中找到了这个主意。

我在脚本集合的internalip脚本中使用了它在GitHub上,您可以安装:

wget https://rawgit.com/rsp/scripts/master/internalip
chmod a+x internalip


并用作:

internalip


或: br />
internalip TARGET

你会得到的用来与TARGET IP地址连接的IP地址。默认目标是ifconfig,它是Google的公共DNS解析器,是Internet的很好默认值。

但是如果使用其他IP运行它: >
,那么您将得到:

internalip 127.2.3.4


,因为这是您的IP地址,可用于在回送接口上与127.2.3.4连接。当目标位于LAN,VPN或其他特殊网络上时,此功能很有用。在这种情况下,可以使用默认IP以外的其他IP进行连接。
要检查您的外部IP地址(连接到Internet时服务器在Internet上看到的地址-可能与此处描述的内部IP地址不同),请参见此答案。

评论


这是一个了不起的答案,谢谢!救了我这么多头疼! :D

–user65165
15年7月9日在17:17

这是一个有用的技巧,但是OP询问的是内部IP,因此要确定它可以路由到8.8.8.8并不安全。

–mc0e
2015年11月27日下午13:52

@ mc0e好点。这就是为什么我的脚本为其他IP使用可选参数的原因-8.8.8.8仅是默认值。在我的回答中,我以127.2.3.4为例。您可以在Intranet或VPN上使用某些IP。关键是您通常没有一个内部IP地址,但很少有用于不同目标的不同IP地址。这样,您可以找到实际用于连接到给定目标的连接。

–rsp
2015年11月27日15:50



大家知道,这为Mac提供了外部IP。

– OZZIE
18-3-29在12:53



#4 楼

我认为值得一提的是,将ifconfig与-a选项一起运行将显示所有接口(无论接口是否具有IP)。

单独运行ifconfig只会显示分配了IP的接口。

这是一个很好的技巧,可用于使用Perl仅显示IP。

# ifconfig | perl -nle'/dr:(\S+)/ && print '
192.168.1.100
127.0.0.1


您的网卡已被系统识别,为什么它显示eth0和eth1

这是分配IP的快速方法到您的界面,请相应地使用有效的IP /子网。

 ifconfig eth0 192.168.1.200/24 up 


然后我们需要添加默认路由

route add default gw 192.168.1.1


最好,

评论


我会尝试这种方法,但是您将不得不对其进行细分,以使我理解它,例如如何查找或知道有效的IP,子网和有效的默认路由。

– Cam Jones
2014年8月8日23:30

这是网络接口的静态IP分配,这意味着如果您位于子网为192.168.1.0/24的路由器后面,则可以ping ip ex。 192.168.1.200,如果没有响应,请直接使用ifconfig interface_name IP_ADDRESS / MASK up在分配IP后,需要添加默认gw。

–user1007727
2014年12月12日19:17

#5 楼

此命令将显示单个设备的所有IP地址:

dev=eth0
ip addr show $dev | awk '/inet/ {print }' | cut -d/ -f1


它将打印一两行输出。如果您的系统配置为支持inet / IPv4地址,则第一个为inet6 / IPv6地址。

#6 楼

万一ifconfig命令没有显示IP地址,有一种非常简单的方法可以通过GUI查找Ubuntu计算机的IP地址。请按照以下步骤操作:

在通知区域中单击网络图标,然后单击“连接信息”。


这会弹出一个窗口,其中包含一些信息,包括IP地址。


#7 楼

这里已经有很多不错的答案可供选择,但是我想指出一个通常是事实,但不一定与p一起使用来收集有关系统的各种事实。 facter的主要优点是它提供了清晰的输出,从而节省了grepsedawkcutperl等的所有操作。它不会告诉您感兴趣的接口,但是知道了,那么以下内容将为您提供IP,而无需进行其他清理:

facter ipaddress_eth0 


#8 楼

ip命令

这是ip addr方式的一种变体。

ip具有-o选项,该选项允许将所有信息放在一行上-这对于使用awkperl之类的工具进行解析非常有用。与-4选项结合使用时,我们只会看到IPv4地址。因此,输出将是这样的(请注意-将wlan7替换为您要检查的接口):

/ word在输出中。其余的,是通过您选择的工具进行的简单解析练习。在这里,我使用的是python:

$ ip -4 -o addr show wlan7
3: wlan7    inet 192.168.0.78/24 brd 192.168.0.255 scope global dynamic wlan7\       valid_lft 85654sec preferred_lft 85654sec


同样的东西,只不过在这里字符串<<<和命令替换$()

ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 


我个人将其保存为~/.bashrc中的一个很好的函数,因此无需进行过多的键入操作。 br />
python -c "import sys;print sys.stdin.readlines()[0].split()[3]"  <<< $(ip -4 -o addr show wlan7)


Wireshark

如果您熟悉使用网络分析工具,则可能知道要获取IP地址,您所需要的要做的是清除浏览器缓存,在特定接口上启动Wireshark捕获,并查找正在传输的http GET数据包。目标列将显示您的IP地址

#9 楼

上面有很多很好的信息。我这样简单:

# what your computer thinks its ip address is
function iplocal() {
  ip route get 8.8.8.8 | awk '{print $NF; exit}'    # 8.8.8.8 is google dns
}
# what the outside world thinks your ip address is
function ipexternal() {
  curl --silent http://checkip.amazonaws.com        # or:  http://ipinfo.io/ip
}
function ipinfo() {
  echo "local    IP  =>  $(iplocal)"
  echo "external IP  =>  $(ipexternal)"
}


示例用法:

> ipinfo
local    IP  =>  192.168.1.139
external IP  =>  76.88.85.95