我的 ubuntu 16.04.1 LTS 主机上运行着 VirtualBox。我创建了一个新的虚拟机,并将网络类型设置为“桥接适配器”。然后我在客户机上安装了 16.04.1 LTS,但我无法从它连接到任何外部 IPv4 地址。
当我运行“ifconfig”时,我只看到我的 IPv6 地址。
$ ifconfig enp0s3
enp0s3 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet6 addr: fd00:xx:xx:xx:xx:xx:xx:xx/64 Scope:Global
inet6 addr: fe80::xx:xx:xx:xx/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:933 errors:0 dropped:0 overruns:0 frame:0
TX packets:751 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:101012 (101.0 KB) TX bytes:144480 (144.4 KB)
我能够使用 IPv6 地址从主机通过 SSH 进入客户机。我发现这问题,但我没有安装网络管理器(在 IPv4 工作之前无法安装它),而唯一的其他命令“sudo ip link set enp0s3 up”没有帮助。此外,问题没有提到 WiFi,但答案似乎假设情况如此,我使用的是有线连接而不是 WiFi。
我的 /etc/network/interfaces 文件非常通用,但注释确实表明它是一个 IPv6 接口。话虽如此,我不明白为什么会这样;所有参数对于 IPv4 来说都是正确的。
$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# This is an autoconfigured IPv6 interface
auto enp0s3
iface enp0s3 inet dhcp
请注意,在我的 neworking.service 状态中,从开始启动网络服务到实际启动网络服务之间有 5 分钟的间隔。我不确定那里发生了什么。
$ systemctl status networking.service
● networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Drop-In: /run/systemd/generator/networking.service.d
└─50-insserv.conf-$network.conf
Active: active (exited) since Wed 2017-06-14 09:33:00 EDT; 55min ago
Docs: man:interfaces(5)
Process: 2335 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=0/SUCCESS)
Process: 1947 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=
Main PID: 2335 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CPU: 0
CGroup: /system.slice/networking.service
Jun 14 09:27:58 chris-ubuntu systemd[1]: Starting Raise network interfaces...
Jun 14 09:28:01 chris-ubuntu ifup[2335]: /sbin/ifup: waiting for lock on /run/network/ifstate.enp0s3
Jun 14 09:33:00 chris-ubuntu systemd[1]: Started Raise network interfaces.
当我手动运行 dhclient 时,它会挂起。Syslog 包含以下日志:
Jun 14 10:39:13 chris-ubuntu dhclient[3061]: DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 10 (xid=0x4dfcbf2b)
Jun 14 10:39:16 chris-ubuntu dhclient[2377]: DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 4 (xid=0x25d1c331)
Jun 14 10:39:20 chris-ubuntu dhclient[2377]: No DHCPOFFERS received.
Jun 14 10:39:20 chris-ubuntu dhclient[2377]: No working leases in persistent database - sleeping.
Jun 14 10:39:23 chris-ubuntu dhclient[3061]: DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 15 (xid=0x4dfcbf2b)
这看起来很奇怪,因为主机 VirtualBox 充当 DHCP 服务器,所以它应该做出响应。
答案1
您不需要 IPv4。上面的配置有点奇怪。(没有公共 IPv6 地址)。我对网络管理员的第一个问题是:您是否提供 Web 代理?因此您可以更改代理设置,包括对仅 ipv4 主机的访问。但我更喜欢 IPv6 全局单播地址。在这种情况下,DNS(DNS64/NAT64)可以解决问题。代理会产生类似的效果。