如何找到我的内部ip地址?

我安装了Ubuntu server12.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 interfaceauto loiface lo inet loopback# The primary network interfaceauto eth0iface eth0 inet dhcp

如果有人可以为我编辑这个,etc/network/interfaces的内容应该在单独的行上。

主机的输出askubuntu.com 是:

;; connection timed out; no servers could be reached.

几个月前我设置了owncloud和webmin,并且使用了一个月没有任何问题。 我想电源在两个月前的一天关闭了,直到昨天我才打开服务器。 我没有做任何会影响互联网设置的事情,所以我不确定为什么它不再起作用。 就我的网络拓扑而言,我有一个用于pc的pci-e网卡。 以太网线从网卡到交换机,然后从那里到调制解调器/路由器。

hostname -I

这将给你只是ip地址没有任何额外的信息。

这些命令会告诉你所有的网络信息

ip add

ifconfig -a

如果正如你所说,它只给你127.0.0.1,那么有两种选择:

  1. 您的网卡未连接或系统无法识别

  2. 您的网络DHCP服务器未运行或未连接

这是我目前推荐的:

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

该命令的优点是您不必知道您正在使用哪个接口(eth0? eth1? 或者,也许wlan0?),您不必过滤掉localhost地址,或Docker地址,或VPN隧道等。 你总会得到 当前用于Internet连接的IP地址 在那一刻(重要的是,当你同时连接以太网和wifi或通过VPN等)。).

这不仅将测试您在某些接口上配置了正确的IP(例如解析 ifconfig),而且你有路由表配置为正确使用它。

我发现了这个想法 这个答案科林*安德森.

我用它在 内部;内部 脚本在 GitHub上我的脚本集合,你可以安装:

wget https://rawgit.com/rsp/scripts/master/internalipchmod 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可以用于连接,而不是用于到达Internet的默认IP。

外部IP

检查你的 外部 IP地址(Internet上的服务器在连接到它们时看到的地址-可能与此处描述的内部IP地址不同)请参阅 这个答案.

我认为值得一提的是,与-a选项一起运行ifconfig将显示所有接口,或者接口没有IP。

单独运行ifconfig,将只显示分配了Ip的接口。

这是一个很好的技巧,您可以使用Perl仅显示Ip。

# ifconfig | perl -nle'/dr:(\S+)/ && print $1'192.168.1.100127.0.0.1

你的网卡被系统识别,这就是为什么它会显示eth0和eth1

这是分配IP到您的接口的一个快速的方法,相应地使用有效的IP/子网。

 ifconfig eth0 192.168.1.200/24 up 

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

route add default gw 192.168.1.1

最好的,

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

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

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

万一, ifconfig 命令没有显示IP地址,有一个非常简单易行的方法可以通过GUI找出Ubuntu机器的IP地址。 按照以下步骤操作:

点击 网络图标 在通知区域,然后单击 连接信息.Network icon options

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

这里已经有很多好的答案可供选择,但我想我会指出 因素,因素 通常,但不一定与puppet一起使用,用于收集有关系统的各种事实。 Facter的主要优点是它提供了很好的干净输出,可以节省您的所有操作 grep, sed, awk, cut, perl 等。 它不会告诉你你感兴趣的接口,但如果你知道这一点,那么下面给你的IP没有其他cruft清理:

facter ipaddress_eth0 

ip命令

这里有一个变化 ip addr 方式。

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

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

如您所见,ip地址是输出中的第4列/字。 其余的,是 简单解析练习 通过您选择的工具。 在这里,我正在使用python:

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

同样的事情,只有在这里字符串 <<< 和命令替换 $()

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

就个人而言,我有这个保存在我的一个很好的功能 ~/.bashrc 这样打字就少了。

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

Perl和Ruby的版本稍短一些:

$ ip -4 -o addr show  wlan7 | perl -lane 'print $F[3]'                         192.168.0.78/24$ ip  -4 -o addr show wlan7 | ruby -n -e 'print $_.split()[3]'                 192.168.0.78/24

威雷沙克

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

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

# what your computer thinks its ip address isfunction 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 isfunction ipexternal() {  curl --silent http://checkip.amazonaws.com        # or:  http://ipinfo.io/ip}function ipinfo() {  echo "local    IP  =>  $(iplocal)"  echo "external IP  =>  $(ipexternal)"}

样本用法:

> ipinfolocal    IP  =>  192.168.1.139external IP  =>  76.88.85.95

‘ifconfig|grep-G"192.168。*.255"|cut-d’’-f10’可以让你的IP,或者干脆’hostname-I|cut-d’’-f1`

@AvatarParto那些是面向公众访问的接口,这个问题是关于内部网络的。…

出于好奇,/etc/networkinterfaces"里面有什么?

我知道如何使用更改目录命令,但我不知道如何在那里列出文件,我将如何做到这一点?

'ls’将列出目录中的文件。 'ls-l’将给出详细的清单。 要列出特定目录的内容,'ls-l/etc/network’ 要更改为目录和列表内容'cd/etc/network;ls-l'。 要读取etc/network/interfaces(这是一个文件)sudo pico/etc/network/interfaces的内容。 ('pico'是一个轻量级的文本编辑器-适合阅读和基本编辑,并且比vi`更不令人生畏。)