我正在尝试使用以下配置设置运行 Raspbian Jessie 的 Raspberry Pi:
- DHCP 服务器(isc-dhcp-服务器)
- WLAN 接入点 (hostapd)
- 应用程序服务器(端口 80 上的 HTTP 服务器)
我的问题是连接到 WLAN AP 的设备无法与 Pi 上运行的网络服务器通信。连接到以太网端口的设备可以毫无问题地显示网页。
当我将笔记本电脑连接到 AP 并尝试 ping Pi ( 10.10.1.1
) 时,它告诉我它已关闭。不过我确实得到了一个IP地址(例如10.10.1.17
)。当使用以太网电缆连接 Pi 时,我收到一个 IP 地址,并且能够 ping 通 Pi,10.10.1.1
因此使用有线连接时一切正常。
这是我的配置文件:
/etc/dhcp/dhcp.conf
ddns-update-style none;
authoritative;
log-facility local7;
subnet 10.10.1.0 netmask 255.255.255.0 {
range 10.10.1.10 10.10.1.100;
option routers 10.10.1.1;
default-lease-time 3600;
max-lease-time 3600;
option subnet-mask 255.255.255.0;
option broadcast-address 10.10.1.255;
option domain-name-servers 8.8.8.8;
option domain-name "support.muffag.ch";
}
/etc/default/isc-dhcp-服务器
INTERFACES="eth0 wlan0"
/etc/网络/接口
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
allow-hotplug eth0
auto eth0
iface eth0 inet static
address 10.10.1.1
netmask 255.255.255.0
allow-hotplug wlan0
auto wlan0
iface wlan0 inet static
address 10.10.1.2
netmask 255.255.255.0
/etc/hostapd/hostapd.conf
interface=wlan0
driver=rtl871xdrv
ssid=Test AP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
/etc/默认/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
。
我看到其他人正在谈论网桥,但我不确定如何使用类似的东西。如何确保连接到接入点的设备可以访问网络服务器?
答案1
如果您的网络服务器正在侦听任何 IP 地址(不仅仅是10.10.1.1
)的端口 80,那么您可以只使用您所连接的接口的网关地址。
但是,在执行此操作之前,您首先需要修复正在使用的地址范围。您当前的配置表示要10.10.1.0-10.0.1.255
给予eth0
和 wlan0
。这不好。您需要为两个接口提供不同的 IP 地址范围或使用桥接网络。如果您想轻松地允许设备wlan0
与设备进行通信eth0
(就好像它们位于同一网络上一样),则需要使用网桥。
为了使用不同的地址范围,您的/etc/network/interfaces
文件应如下所示:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
allow-hotplug eth0
auto eth0
iface eth0 inet static
address 10.10.1.1
netmask 255.255.255.0
allow-hotplug wlan0
auto wlan0
iface wlan0 inet static
address 10.10.2.1
netmask 255.255.255.0
基本上,10.10.1.0-10.10.1.255
已分配给eth0
,并且10.10.2.0-10.10.2.255
已分配给wlan0
。您还需要更改/etc/dhcp/dhcp.conf
:
ddns-update-style none;
authoritative;
log-facility local7;
subnet 10.10.1.0 netmask 255.255.255.0 {
range 10.10.1.10 10.10.1.100;
option routers 10.10.1.1;
default-lease-time 3600;
max-lease-time 3600;
option subnet-mask 255.255.255.0;
option broadcast-address 10.10.1.255;
option domain-name-servers 8.8.8.8;
option domain-name "support.muffag.ch";
}
subnet 10.10.2.0 netmask 255.255.255.0 {
range 10.10.2.10 10.10.2.100;
option routers 10.10.2.1;
default-lease-time 3600;
max-lease-time 3600;
option subnet-mask 255.255.255.0;
option broadcast-address 10.10.2.255;
option domain-name-servers 8.8.8.8;
option domain-name "support.muffag.ch";
}
10.10.2.0/24
添加了网络部分。
此时,您应该能够连接到网络服务器。如果您连接到eth0
,则需要使用10.10.1.1
;如果您已连接到wlan0
,则需要使用10.10.2.1
.
答案2
我怀疑您错过了配置中的一个步骤,该步骤允许数据包在接口之间转发:
sysctl -w net.ipv4.ip_forward=1
当您确认这对您有效后,请编辑/etc/sysctl.conf
或添加您自己的文件以/etc/sysctl.d/
使更改永久生效。