Mic*_*780 6 networking dhcp ethernet 14.04
背景
我在 14.04 上运行 Ubuntu 服务器,它目前是最新的。我只有一台网络设备连接到它。当我使用以太网线并将其从墙上连接到我的笔记本电脑(运行 Windows 7)时,DHCP 可以毫无问题地解决。
问题
当我将以太网线从墙上连接到我的服务器(运行 Ubuntu)并打开我的服务器电源时,DHCP 服务器没有为我的服务器分配 IP 地址。但是,当我使用笔记本电脑的以太网将电源线从服务器连接到笔记本电脑时,通过我的 Wifi 连接进行连接,服务器将通过笔记本电脑从 DHCP 获取 IP 地址。最后,从笔记本电脑连接获得 IP 后,我使用以下命令,然后当电源线从墙上连接到服务器时 DHCP 工作:
sudo dhclient -r
sudo dhclient -v eth0
Run Code Online (Sandbox Code Playgroud)
下次我通过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.
Run Code Online (Sandbox Code Playgroud)
带有连接到笔记本电脑的服务器的 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)
Run Code Online (Sandbox Code Playgroud)
笔记本电脑 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)
Run Code Online (Sandbox Code Playgroud)
网络接口 (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
Run Code Online (Sandbox Code Playgroud)
更新:
我的/etc/network/interfaces
文件是这样的
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
Run Code Online (Sandbox Code Playgroud)
我找到了一个似乎有效的临时修复程序,但如果我们能解决这个问题,我不希望它成为我的解决方案。我像这样更改了接口文件
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
pre-up ifconfig $IFACE up
pre-up mii-tool -R
Run Code Online (Sandbox Code Playgroud)
这将(我相信)告诉接口重置,并且出于某种原因它允许 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
Run Code Online (Sandbox Code Playgroud)
静止的
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
Run Code Online (Sandbox Code Playgroud)
我希望这会在将来对其他人有所帮助。
根据聊天中的讨论,关闭服务器上的自动协商并将网络速度固定为网络接口卡 (NIC) 可以承受的最高水平。
从 10Mbps、半双工开始,然后向上工作到 10Mbps FD、100Mbps HD……直到问题出现。然后降低一级并保持该速度。
首先,安装ethtool
(如果已经安装,您只会收到一条警告,表明已安装最新版本)
sudo apt-get install ethtool
Run Code Online (Sandbox Code Playgroud)
现在:
输入以下命令(并一一测试)
sudo ethtool --change eth0 speed xxx duplex yyy autoneg off
Run Code Online (Sandbox Code Playgroud)
其中 xxx = 10
,100
或1000
且 yyy =half
或full
。
10 half
所以从, 10 full
, 100 half
, ...开始
检查ifconfig
您是否有 IP 地址。
返回到 1 直到它停止工作并使用之前仍然有效的值:
要使更改永久生效,请执行以下命令:
sudo nano /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)
并在该部分键入pre-up
:
pre-up /usr/sbin/ethtool --change eth0 speed xxx duplex yyy autoneg off
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
34930 次 |
最近记录: |