我正在尝试通过 /etc/network/interfaces 设置具有静态 IP 的 Ubuntu Server 14.04.1
当输入
auto eth0
iface eth0 inet dhcp
我从 DHCP 服务器获取 IP 10.10.10.228,并且可以 ping 8.8.8.8 和 google.ca
当我修改条目为
auto eth0
iface eth0 inet static
address 10.10.10.116
netmask 255.255.255.0
network 10.10.10.0
broadcast 10.10.10.255
gateway 10.10.10.1
dns-nameservers 8.8.8.8 8.8.4.4
并通过执行以下操作来刷新网络接口
sudo ifdown eth0 && sudo ifup eth0
我仍然可以 ping 通我的网关 10.10.10.1 和其他设备,如 LAN 打印机、服务器、PC。但是,我无法 ping 通任何公共地址,如 4.2.2.2 或 8.8.8.8,也无法 ping google.ca。当我切换回 dhcp 时,互联网又可以正常工作了。
我检查了 route -n 和 ip route,发现 static 和 dhcp 都给出了相同的读数。我不太清楚为什么它不起作用。
编辑:这是路线 -n 输出
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.10.10.1 0.0.0.0 UG 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
这是 ip route 的输出
default via 10.10.10.1 dev eth0
10.10.10.0/24 dev eth0 proto kernel scope link src 10.10.10.116
在我看来还不错,但是不起作用。
任何想法都将不胜感激。
答案1
使用 DHCP 和静态地址之间的区别在于,这里讨论的“网关”框知道在使用 DHCP 时设置 NAT(网络地址转换)表,因为它知道它为您的主机提供的 IP 地址。使用静态分配的地址,“网关”不会更新其 NAT 表。因此,虽然数据包可能被成功转发到互联网外部,但网关不知道如何处理返回/回复数据包,因为其 NAT 未配置。
因此,我们需要配置网关盒以使用 .116 地址的 NAT。如果网关是标准接入点,它们通常允许通过其 Web 配置界面通过 MAC(媒体访问控制器)地址进行静态 IP 配置:为其提供 .116 地址和(.116 主机的)MAC 地址(使用标题为“HWaddr”的“ifconfig”命令显示),并将主机重新设置为 DHCP,这样您的主机将拥有网关知道的 NAT 静态 IP 地址。
答案2
我实际上通过关机命令关闭了服务器并重新启动了它,现在静态 IP 可以正常工作了。我以为使用重新启动命令就足够了。不太清楚发生了什么,但它现在可以正常工作了。