背景
我正在14.04上运行Ubuntu Server,这是最新的。我只有一个网络设备连接到它。当我使用以太网线并将其从墙上连接到笔记本电脑(运行Windows 7)时,DHCP可以正常解析。
问题
当我将以太网线从墙上连接到服务器(运行Ubuntu)并打开服务器电源时,DHCP服务器未为服务器分配IP地址。但是,当我使用笔记本电脑的以太网连接通过Wifi连接连接服务器到笔记本电脑的电缆时,服务器将通过笔记本电脑从DHCP获取IP地址。最后,从便携式计算机连接获得IP后,我使用以下命令,然后在将电线从墙壁连接到服务器时,DHCP起作用了:
sudo dhclient -r
sudo dhclient -v eth0
下次我通过sudo shutdown -r now
服务器重新启动服务器时,将无法通过壁上的电线将其从DHCP重新获得IP。
请注意,当我在/etc/network/interfaces
文件中分配静态地址时,网络将不会为它分配IP,并且接口将关闭。
问题
有没有一种方法可以解决我在打开服务器电源时网络无法发现DHCP服务器的问题?
如果您需要更多信息,请告诉我。
附加信息
连接到笔记本电脑之前的dhclient
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x********)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x********)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 6 (xid=0x********)
...
No DHCPOFFERS received
No working leases in persistent database - sleeping.
dhclient,服务器连接到笔记本电脑
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x*********)
DHCPREQUEST of 192.168.137.233 on eth0 to 255.255.255.255 port 67 (xid=0x*********)
DHCPOFFER of 192.168.137.233 from 192.168.137.1
DHCPACK of 192.168.137.233 from 192.168.137.1
bound to 192.168.137.233 -- renewal in 275 seconds.
ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:22:64:23:7c:da
inet addr:192.168.137.233 Bcast:192.168.137.255 Mask:255.255.255.0
inet6 addr: fe80::222:64ff:fe23:7cda/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28265 errors:0 dropped:0 overruns:0 frame:0
TX packets:2781 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4655957 (4.6 MB) TX bytes:415144 (415.1 KB)
笔记本电脑DHCP和电线从墙上重新连接到服务器后的dhclient
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x********)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0x********)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 15 (xid=0x********)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 11 (xid=0x********)
DHCPREQUEST of 192.168.1.126 on eth0 to 255.255.255.255 port 67 (xid=0x*******)
DHCPOFFER of 192.168.1.126 from 192.168.1.254
DHCPACK of 192.168.1.126 from 192.168.1.154
bound to 192.168.1.126 -- renewal in 41950 second.
ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:22:64:23:7c:da
inet addr:192.168.1.126 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::222:64ff:fe23:7cda/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:33438 errors:0 dropped:0 overruns:0 frame:0
TX packets:3391 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5245215 (5.2 MB) TX bytes:550462 (550.4 KB)
网络接口(lshw)
sudo lshw -class network
*-network
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:02:00.0
logical name: eth0
version: 02
serial: 00:22:64:23:7c:da
size: 100Mbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list rom ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full ip=192.168.1.82 latency=0 link=yes multicast=yes port=MII speed=100Mbit/s
resources: irq:42 ioport:e800(size=256) memory:febff000-febfffff memory:fdff0000-fdffffff memory:febc0000-febdffff
更新:
我的/etc/network/interfaces
文件就是这样
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
我找到了一个似乎可行的临时修复程序,但如果我们能够解决此问题,我不希望它成为我的解决方案。我像这样更改了接口文件
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
pre-up ifconfig $IFACE up
pre-up mii-tool -R
(我相信)这会告诉接口进行重置,并且由于某种原因,它允许DHCP像应有的那样进行解析。就像我说的那样,必须在此之外进行实际修复。
解决方案:
在Fabbys的答案的帮助下,我提出了一个更可行的解决方案。
打开/ etc / network / interfaces并配置以下几种方法之一的以太网接口:
的DHCP
auto eth0
iface eth0 inet dhcp
pre-up ifconfig $IFACE up
pre-up ethtool -s $IFACE speed 100 duplex full autoneg off
静态的
auto eth0
iface eth0 inet static
post-up ethtool -s $IFACE speed 100 duplex full autoneg off
address x.x.x.x #Internal IP
netmask 255.255.255.0
gateway x.x.x.y #Gateway IP
dns-nameservers 8.8.8.8 #Google DNS
我希望这会在将来对其他人有所帮助。
根据聊天中的讨论,请关闭服务器上的自动协商,并将网络速度固定为网络接口卡(NIC)可以维持的最高水平。
从10Mbps,半双工开始,直到10Mbps FD,100Mbps HD,...直到问题开始。然后下降一个档口,并保持该速度。
首先,安装ethtool
(如果已经安装,您将收到一条警告,提示已安装最新版本)
sudo apt-get install ethtool
现在:
键入以下命令(并一一测试)
sudo ethtool --change eth0 speed xxx duplex yyy autoneg off
其中xxx = 10
,100
或1000
和YYY =half
或full
。
所以下手10 half
,10 full
,100 half
,...
执行ifconfig
检查您是否有IP地址。
返回到1,直到它停止工作并使用仍在起作用的先前值:
要使更改永久生效,请执行以下命令:
sudo nano /etc/network/interfaces
并在以下pre-up
部分输入:
pre-up /usr/sbin/ethtool --change eth0 speed xxx duplex yyy autoneg off
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句