我安装了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网卡。 以太网线从网卡到交换机,然后从那里到调制解调器/路由器。
这些命令会告诉你所有的网络信息
ip add
或
ifconfig -a
如果正如你所说,它只给你127.0.0.1,那么有两种选择:
您的网卡未连接或系统无法识别
您的网络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
最好的,
Ollie
July 21, 2022, 10:54pm
#6
此命令将显示单个设备的所有IP地址:
dev=eth0ip addr show $dev | awk '/inet/ {print $2}' | cut -d/ -f1
它将打印一行或两行输出。 第一个是inet/IPv4地址,另一个是inet6/IPv6,如果您的系统配置支持此。
Ali
July 21, 2022, 11:03pm
#7
万一, ifconfig
命令没有显示IP地址,有一个非常简单易行的方法可以通过GUI找出Ubuntu机器的IP地址。 按照以下步骤操作:
点击 网络图标 在通知区域,然后单击 连接信息 .
这会弹出一个窗口,其中包含一些信息,包括IP地址。
这里已经有很多好的答案可供选择,但我想我会指出 因素,因素 通常,但不一定与puppet一起使用,用于收集有关系统的各种事实。 Facter的主要优点是它提供了很好的干净输出,可以节省您的所有操作 grep
, sed
, awk
, cut
, perl
等。 它不会告诉你你感兴趣的接口,但如果你知道这一点,那么下面给你的IP没有其他cruft清理:
facter ipaddress_eth0
Quinn
July 21, 2022, 11:20pm
#9
ip命令 这里有一个变化 ip addr
方式。
ip
有 -o
允许将所有信息放在单行上的选项-这对于使用以下工具进行解析非常有用 awk
或 perl
. 与 -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/network
interfaces"里面有什么?
我知道如何使用更改目录命令,但我不知道如何在那里列出文件,我将如何做到这一点?
'ls’将列出目录中的文件。 'ls-l’将给出详细的清单。 要列出特定目录的内容,'ls-l/etc/network’ 要更改为目录和列表内容'cd/etc/network;ls-l'。 要读取
etc/network/interfaces(这是一个文件)
sudo pico/etc/network/interfaces的内容。 ('pico'是一个轻量级的文本编辑器-适合阅读和基本编辑,并且比
vi`更不令人生畏。)