由于接口检测失败,isc-dhcp-server 未启动

由于接口检测失败,isc-dhcp-server 未启动

我正在尝试在BCM4313无线网卡上设置 AP 模式。

我的基本hostapd配置如下所示:

interface=wlan0
driver=nl80211
ssid=test
hw_mode=b
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=1234567890
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

网络已成功设置,我可以连接到我的网络。但是,连接过程在获取 IP 地址时停止。

因此,我的dhcpd.conf文件看起来与默认文件几乎相同,插入内容如下:

# option definitions common to all supported networks...
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

#default-lease-time 600;
#max-lease-time 7200;
...
option broadcast-address 10.10.0.255;

subnet 10.10.0.0 netmask 255.255.255.0 {
        interface wlan0;
        range 10.10.0.2 10.10.0.16;
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        option routers 10.10.0.1;
}

我的wlan0界面已配置(我猜) 适当地:

wlan0: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        inet 10.10.0.1  netmask 255.255.255.0  broadcast 10.10.0.255
        ether 55:28:cc:23:14:a6  txqueuelen 1000  (Ethernet)

/etc/default/isc-dhcp-server有以下几行时:

DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
INTERFACESv4="wlan0"

毕竟,journalctl -xe给了我这个输出:

Jul 10 10:11:25 srv dhcpd[3296]: Wrote 0 leases to leases file.
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: No subnet declaration for wlan0 (no IPv4 addresses).
Jul 10 10:11:25 srv dhcpd[3296]: ** Ignoring requests on wlan0.  If this is not what
Jul 10 10:11:25 srv dhcpd[3296]:    you want, please write a subnet declaration
Jul 10 10:11:25 srv dhcpd[3296]:    in your dhcpd.conf file for the network segment
Jul 10 10:11:25 srv dhcpd[3296]:    to which interface wlan0 is attached. **
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: Not configured to listen on any interfaces!
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: If you think you have received this message due to a bug rather
Jul 10 10:11:25 srv dhcpd[3296]: than a configuration issue please read the section on submitting
Jul 10 10:11:25 srv dhcpd[3296]: bugs on either our web page at www.isc.org or in the README file
Jul 10 10:11:25 srv dhcpd[3296]: before submitting a bug.  These pages explain the proper
Jul 10 10:11:25 srv dhcpd[3296]: process and the information we find helpful for debugging..
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: exiting.
Jul 10 10:11:27 srv isc-dhcp-server[3283]: Starting ISC DHCPv4 server: dhcpdcheck syslog for diagnostics. ... failed!
Jul 10 10:11:27 srv isc-dhcp-server[3283]:  failed!
Jul 10 10:11:27 srv systemd[1]: isc-dhcp-server.service: Control process exited, code=exited status=1
Jul 10 10:11:27 srv systemd[1]: Failed to start LSB: DHCP server.

这是我的/etc/network/interfaces

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
address 10.10.0.1
netmask 255.255.255.0

sudo apt-get install -f命令已经尝试过,但没有效果。

我见过很多与我类似的问题(1,2,3)但它们都不适合我的情况。如何让 dhcp 服务器正常工作?

答案1

isc-dhcp-serverhostapd为我工作(在 debian sid 上),但我dhcpd.confshared-network.我也有option broadcast-address里面的subnet {...}定义。

尝试这样的事情:

shared-network net_wlan0 {
    subnet 10.10.0.0 netmask 255.255.255.0 {
        authoritative;
        range 10.10.0.2 10.10.0.16;
        option broadcast-address 10.10.0.255;
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        option routers 10.10.0.1;
    }
}

我的 中还有以下内容/etc/default/isc-dhcp-server

INTERFACESv4="br0 br1 wlan0"

这告诉 dhcpd 要监听哪些接口,并导致它使用这些参数运行(注意命令行末尾的接口)。

# ps h -o cmd -C dhcpd
/usr/sbin/dhcpd -4 -q -cf /etc/dhcp/dhcpd.conf br0 br1 wlan0

注意:该isc-dhcp-server包的早期版本使用INTERFACES变量而不是INTERFACESv4.这一变化发生在今年2月。根据etckeeper,我最近一次提交/etc/default/isc-dhcp-server是在 2016 年 2 月 10 日


我还建议运行本地缓存 DNS 解析器(例如unbounddnsmasq或其他几个之一)。将其指向 google 的 DNS 服务器作为转发器,但本地缓存在我看来是必不可少的。像这样的代理服务器squid也是值得的。由于是本地 NTP 服务器,因此网络上的所有计算机都可以同步到完全相同的时间。


顺便说一句,我使用的是ath9kUSB wifi 网卡,dhcpd 还为另外两个网络 eth0 和 eth1 提供服务(实际上,为我的虚拟机桥接为 br0 和 br1),但这应该没有任何区别。

我在尝试让基于 RTL 8192 的 USB NIC 工作时遇到了重大问题,最终放弃了它并购买了 AR9271:

0cf3:9271 Atheros Communications, Inc. AR9271 802.11n

两种 USB wifi 设备都很便宜,每个大约 10-15 美元(同一品牌、同一制造商 (TP-Link)、不同芯片组),因此不值得花费太多时间尝试让 8192 工作(IMO 是基于 8192 的)网卡可能只是垃圾,它甚至无法作为客户端可靠地工作,它会开始正常工作,然后断开连接并挂起......需要删除并重新插入才能再次工作)。

答案2

最后,我找到了解决方案。也许其中一些步骤是多余的,但我不在乎,因为一切最后作品。

  1. Wi-Fi 可能被硬件锁定。检查一下不是;
  2. 无线网络可能会出现故障。sudo ifconfig wlan0 up(或无线局域网X在其他情况下)
  3. 添加mac和主机之间的绑定。最后,它看起来像这样:

subnet 10.10.0.0 netmask 255.255.255.0 {
        interface wlan0;
        range 10.10.0.2 10.10.0.16;
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        option routers 10.10.0.1;
  host wlan0 {
        hardware ethernet 40:2c:f4:36:d4:16;
        fixed-address 10.10.0.1;
  }
}

答案3

根据您的错误消息“请在 dhcpd.conf 文件中为接口 wlan0 所连接的网段编写子网声明。”

这是 isc-dhcpd 的已知功能/限制;需要强制定义您正在侦听 DHCP 请求的主接口的网络块/子网。

由于您的接口具有地址 10.10.0.1 和网络掩码 255.255.255.0,因此添加为您的第一个 DHCP 子网:

subnet 10.10.0.0 netmask 255.255.255.0 {
  option routers 10.10.0.1
  option subnet-mask 255.255.255.0;
}

重新启动 DHCP 守护进程,它现在应该可以工作了。

相关内容