如何在 ubuntu 16.04.1 LTS 服务器上启用 IPv4

如何在 ubuntu 16.04.1 LTS 服务器上启用 IPv4

我的 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)可以解决问题。代理会产生类似的效果。

相关内容