我正在使用 Raspberry Pi 构建一个小型独立设备。单击按钮后,我想配置一个临时网络,以便用户可以连接到网络,使用基于 Web 的配置工具,然后设备将在退出时加入指定的无线网络。我已准备好所有软件,但我对 Linux 网络的了解并不多。我正在使用 Raspbian Jessie - 2016 年 9 月。
这是我建议启动临时网络的方法。
改成/etc/network/interfaces
:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0
wireless-channel 0
wireless-essid DEVICE
wireless-mode ad-hoc
虽然我认为此时不应该使用它,但我的/etc/wpa_supplicant/wpa_supplicant.conf
包含:
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
我还isc-dhcp-server
运行在用户连接时分配 IP 地址。的内容/etc/dhcp/dhcpd.conf
是:
ddns-update-style none;
option domain-name "DEVICE";
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.255;
option broadcast-address 192.168.0.255;
}
当需要改回正常网络时,改成/etc/network/interfaces
:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
我改为/etc/wpa_supplicant/wpa_supplicant.conf
:
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="{{ssid}}"
psk="{{key}}"
}
如果我手动进行这些更改并重新启动设备,它们将按预期工作。但是,我无法弄清楚哪个命令序列将导致应用新配置。
我尝试过以下各种组合:
sudo ifdown --force wlan0 && sudo ifup wlan0
,
sudo service isc-dhcp-server stop
和
sudo service networking restart
。
要么保留旧配置,要么无线网络丢失,直到重新启动。
我的配置文件适合临时网络和常规网络吗?我应该使用什么命令序列在它们之间进行切换,在临时模式下启动 dhcp,在常规模式下停止 dhcp?
答案1
您可以尝试使用配置而不是接口名称,如所解释的这里。
你的接口文件应该给出两种情况的描述,
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface adhoc inet static
address 192.168.0.1
netmask 255.255.255.0
wireless-channel 0
wireless-essid DEVICE
wireless-mode ad-hoc
iface normal inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
adhoc
和normal
是网络配置名称。要启用/禁用您应该使用的配置,接口=配置作为论据如果向上向下,
# ifup wlan0=adhoc
# ifdown wlan0=adhoc