저는 Raspberry Pi를 WiFi 액세스 포인트로 사용하고 있습니다.
수동으로 시작하면 매력처럼 작동합니다 hostapd
. dhcpcd
그런데 호스트를 다시 시작하면 dhcpcd
먼저 시작되고 wlan0
클라이언트로 사용해야 한다는 것을 이해할 수 없습니다. 이후에는 이미 사용 중이므로 wlan0
Hostapd 에 액세스할 수 없습니다.dhcpcd
이러한 서비스의 순서에 영향을 줄 수 있는 방법이 있습니까?
답변1
나에게도 이 문제가 있다. 이 주문을 처리하고 수동으로 수행하는 모든 구성을 자동화하기 위해 작은 스크립트를 만들었습니다.
dnsmasq
및 를 설치하기만 하면 됩니다 hostapd
. 어떤 서비스도 활성화하거나 비활성화하지 마십시오. 처리될 것입니다.
eth-to-wifi-route.sh
#!/bin/bash
# Share Eth with WiFi Hotspot
#
# This script is created to work with Raspbian Stretch
# but it can be used with most of the distributions
# by making few changes.
#
# Make sure you have already installed `dnsmasq` and `hostapd`
# Please modify the variables according to your need
# Don't forget to change the name of network interface
# Check them with `ifconfig`
ip_address="192.168.2.1"
netmask="255.255.255.0"
dhcp_range_start="192.168.2.2"
dhcp_range_end="192.168.2.100"
dhcp_time="12h"
eth="eth0"
wlan="wlan0"
ssid="Arpit-Raspberry"
psk="arpit1997"
sudo killall wpa_supplicant &> /dev/null
sudo rfkill unblock wlan &> /dev/null
sleep 2
sudo iptables -F
sudo iptables -t nat -F
sudo iptables -t nat -A POSTROUTING -o $eth -j MASQUERADE
sudo iptables -A FORWARD -i $eth -o $wlan -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $wlan -o $eth -j ACCEPT
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo ifconfig $wlan $ip_address netmask $netmask
sudo ip route del 0/0 dev $wlan &> /dev/null
a=`route | awk "/${eth}/"'{print $5+1;exit}'`
sudo route add -net default gw $ip_address netmask 0.0.0.0 dev $wlan metric $a
echo -e "interface=$wlan \n\
bind-interfaces \n\
server=8.8.8.8 \n\
domain-needed \n\
bogus-priv \n\
dhcp-range=$dhcp_range_start,$dhcp_range_end,$dhcp_time" > /etc/dnsmasq.conf
sudo systemctl restart dnsmasq
echo -e "interface=$wlan\n\
driver=nl80211\n\
ssid=$ssid\n\
hw_mode=g\n\
ieee80211n=1\n\
wmm_enabled=1\n\
macaddr_acl=0\n\
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]\n\
channel=6\n\
auth_algs=1\n\
ignore_broadcast_ssid=0\n\
wpa=2\n\
wpa_key_mgmt=WPA-PSK\n\
wpa_passphrase=$psk\n\
rsn_pairwise=CCMP" > /etc/hostapd/hostapd.conf
sudo systemctl stop hostapd
sudo hostapd /etc/hostapd/hostapd.conf &
이 파일을 다운받아서 넣어주세요/home/pi/
/home/pi/.config/lxsession/LXDE-pi/autostart
파일을 열다
nano /home/pi/.config/lxsession/LXDE-pi/autostart
마지막 줄을 추가합니다:
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@point-rpi
sudo bash /home/pi/eth-to-wifi-route.sh
파일의 전체 경로를 제공해야 합니다. 이제 끝났습니다. 변경 사항을 확인하려면 지금 다시 시작하세요.
sudo reboot
이것은 Github에서 호스팅됩니다.여기