알려진 액세스 포인트를 사용할 수 없는 경우 Dietpi에서 조건부로 핫스팟을 호스팅하는 방법

알려진 액세스 포인트를 사용할 수 없는 경우 Dietpi에서 조건부로 핫스팟을 호스팅하는 방법

디트피와 함께 라즈베리를 먹고 있어요.

배경: 이 파이는 마법의 거울로 사용되며 곧 친구에게 선물이 될 예정입니다. 무선 네트워크만 사용합니다. 이미지는 알려진 wpa_supplicant.conf 파일과 함께 제공되므로 첫날부터 작동합니다. 사용 사례는 WPA 키를 변경하거나 다른 SSID를 가지고 있는 경우 SSH를 통해 pi에 로그인할 수 있어야 한다는 것입니다.

표적 전반적인 목표는 사용 가능한 네트워크(액세스 포인트(AP)에 대한 네트워크 연결이면 충분함)를 주기적으로 확인하는 스크립트를 갖는 것입니다.

현재 문제는 핫스팟을 전혀 만들 수 없다는 것입니다.

(작업 진행 중): 따라서 연결이 제공되면 구성에서는 dhcp를 클라이언트로 사용합니다.

(작동하지 않음): 연결이 제공되지 않으면 AP를 호스팅하여 서브넷에 대한 DHCP 서버를 제공하도록 pi의 구성을 변경해야 합니다. (대체 아이디어 환영)

문서를 파헤쳐보니 Dietpi dnsmasqisc-dchp-server.

journalctl -xe내가 사용하는 모든 서비스가 시작되었으며 걱정할 항목이 없습니다 .

$systemctl list-units --type=service좋아 보인다

AP 활성화는 dietpi-config잘못된 서브넷을 사용하기 때문에 구성한 방법과 다르게 보입니다. (1.xx가 아닌 42.xx여야 함)

[  OK  ] DietPi-Config | Desired setting in /etc/hostapd/hostapd.conf was already set: wpa_passphrase=SECRET_PHRASE
[  OK  ] DietPi-WiFiDB | mkdir -p /etc/wpa_supplicant
[  OK  ] DietPi-WiFiDB | eval > /var/lib/dietpi/dietpi-wifi.db
[ INFO ] DietPi-WiFiDB | Applied WiFi DB slot 0 with SSID "CLEARNET"
[ INFO ] DietPi-WiFiDB | Applied WiFi DB slot 1 with SSID ""
[ INFO ] DietPi-WiFiDB | Applied WiFi DB slot 2 with SSID ""
[ INFO ] DietPi-WiFiDB | Applied WiFi DB slot 3 with SSID ""
[ INFO ] DietPi-WiFiDB | Applied WiFi DB slot 4 with SSID ""
[  OK  ] DietPi-WiFiDB | chown root:root /var/lib/dietpi/dietpi-wifi.db /etc/wpa_supplicant/wpa_supplicant.conf
[  OK  ] DietPi-WiFiDB | chmod 600 /var/lib/dietpi/dietpi-wifi.db /etc/wpa_supplicant/wpa_supplicant.conf
[  OK  ] DietPi-Config | systemctl stop isc-dhcp-server
[ SUB1 ] DietPi-Set_hardware > wifimodules (enable)
[ INFO ] DietPi-Set_hardware | Please wait, enabling WiFi modules...
[ INFO ] DietPi-Set_hardware | Checking for required APT packages: iw wireless-tools wpasupplicant wireless-regdb
[  OK  ] wifimodules enable | Completed
[ INFO ] DietPi-Config | Dropping network connections, please wait...
[ INFO ] DietPi-Config | Restarting network connections, please wait...
[  OK  ] DietPi-Config | systemctl daemon-reload
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/b8:27:eb:23:f0:44
Sending on   LPF/eth0/b8:27:eb:23:f0:44
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8
DHCPOFFER of 192.168.1.169 from 192.168.1.1
DHCPREQUEST for 192.168.1.169 on eth0 to 255.255.255.255 port 67
DHCPACK of 192.168.1.169 from 192.168.1.1
bound to 192.168.1.169 -- renewal in 18890 seconds.
[  OK  ] DietPi-Config | systemctl start isc-dhcp-server
[ INFO ] DietPi-Config | Reloading networking data, please wait...
[  OK  ] DietPi-Config | Network restarted
$ cat /etc/network/interfaces
# Location: /etc/network/interfaces
# Please modify network settings via: dietpi-config
# Or create your own drop-ins in: /etc/network/interfaces.d/

# Drop-in configs
source interfaces.d/*

# Ethernet
allow-hotplug eth0
iface eth0 inet dhcp
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
#dns-nameservers 192.168.1.1

# WiFi
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0
#gateway 192.168.0.1
#dns-nameservers 9.9.9.9 149.112.112.112
pre-up iw dev wlan0 set power_save off
post-down iw dev "wlan0 set power_save on

# iptables NAT rules
up iptables-restore < /etc/iptables.ipv4.nat
up ip6tables-restore < /etc/iptables.ipv6.nat
$ cat /etc/network/interfaces.d/wlan0
iface wlan0 inet static
  address 192.168.42.99
  network 192.168.42.0
  netmask 255.255.255.0
  broadcast 192.168.42.255
  wpa-ssid "magic-mirror"
  wpa-psk "SECRET_PHRASE"
  wpa-group TKIP CCMP
  wpa-key-mgmt WPA-PSK
$cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

subnet 192.168.42.0 netmask 255.255.255.0 {
        range 192.168.42.10 192.168.42.50;
        option broadcast-address 192.168.42.255;
        option routers 192.168.42.1;
        option domain-name "local";
        option domain-name-servers 9.9.9.9, 149.112.112.112;
}

어떤 제안이라도 미리 감사드립니다.

관련 정보