这是
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网卡。以太网线从网卡到交换机,再从那里到调制解调器/路由器。
#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的主要优点是它提供了清晰的输出,从而节省了grep
,sed
,awk
,cut
,perl
等的所有操作。它不会告诉您感兴趣的接口,但是知道了,那么以下内容将为您提供IP,而无需进行其他清理:facter ipaddress_eth0
#8 楼
ip命令这是
ip addr
方式的一种变体。 ip
具有-o
选项,该选项允许将所有信息放在一行上-这对于使用awk
或perl
之类的工具进行解析非常有用。与-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
评论
@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