Bakgrund:
Raspberry Pi har en firmware-bugg, som kan orsaka problem när den ska användas som access-punkt. Istället för den standardiserade nätverkshanteraren behövs då istället en separat access point daemon.
Efter följande steg ska din Raspberry Pi:
Utrustning som behövs:
Steg:
1. Uppdatera operativsystemet
sudo apt update sudo apt upgrade -y
2. Installera följande paket
sudo apt install hostapd dnsmasq iptables-persistent netfilter-persistent openssh-server
3. Stoppa följande services
sudo systemctl stop hostapd dnsmasq
4. Enabla SSH
sudo systemctl enable --now ssh
5. Hindra NetworkManager från att hantera wlan0
Skapa filen /etc/NetworkManager/conf.d/10-unmanaged-wlan0.conf, t ex med nano via kommandot:
sudo nano /etc/NetworkManager/conf.d/10-unmanaged-wlan0.conf
... med följande innehåll:
[keyfile] unmanaged-devices=interface-name:wlan0
Spara filen med CTRL-O, avsluta nano med CTRL-X
6. Starta om NetworkManager
sudo systemctl restart NetworkManager
7. Verifiera att NetworkManager kör
nmcli device status
wlan0 ska nu vara 'unmanaged'
8. Konfigurera hostapd
Skapa filen /etc/hostapd/hostapd.conf, t ex med nano via kommandot:
sudo nano /etc/hostapd/hostapd.conf
... med följande innehåll: (byt Gxx-RaspberryPi-AP till lämpligt namn, samt YourSecurePassword till lämpligt lösenord)
country_code=SE interface=wlan0 driver=nl80211 ssid=Gxx-RaspberryPi-AP hw_mode=g channel=6 ieee80211n=0 wmm_enabled=0 auth_algs=1 wpa=2 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP wpa_passphrase=YourSecurePassword ignore_broadcast_ssid=0
Spara filen med CTRL-O, avsluta nano med CTRL-X
ieee80211n=0 samt wmm_enabled=0 kan senare ändras för bättre WiFi-prestanda.
9. Enabla hostapd, med följande kommandon
sudo systemctl unmask hostapd sudo systemctl enable hostapd
10. Konfigurera dnsmasq
Skapa filen /etc/dnsmasq.d/access-point.conf, t ex med nano via kommandot:
sudo nano /etc/dnsmasq.d/access-point.conf
... med följande innehåll:
interface=wlan0 bind-dynamic dhcp-range=192.168.50.100,192.168.50.200,255.255.255.0,12h dhcp-option=option:router,192.168.50.1 dhcp-option=option:dns-server,192.168.50.1
10. Enabla dnsmasq, med kommandot
sudo systemctl enable dnsmasq
11. Sätt permanent IP-adress för wlan0
Skapa filen /etc/systemd/system/ap-address.service, t ex med nano via kommandot:
sudo nano /etc/systemd/system/ap-address.service
... med följande innehåll:
[Unit] Description=Configure WiFi access point address After=network-pre.target NetworkManager.service Before=hostapd.service dnsmasq.service Wants=network-pre.target [Service] Type=oneshot ExecStart=/usr/sbin/ip addr replace 192.168.50.1/24 dev wlan0 ExecStart=/usr/sbin/ip link set wlan0 up RemainAfterExit=yes [Install] WantedBy=multi-user.target
12. Enabla permanent IP-adress, med följande kommandon
sudo systemctl daemon-reload sudo systemctl enable ap-address.service
13. Enabla IP-forwarding
Skapa filen /etc/sysctl.d/90-router.conf, t ex med nano via kommandot:
sudo nano /etc/sysctl.d/90-router.conf
... med följande innehåll:
net.ipv4.ip_forward=1
14. Aktivera IP-forwarding, med följande kommando
sudo sysctl --system
15. Konfigurera NAT forwarding, med följande kommandon
sudo iptables -A FORWARD -i wlan0 -o eth0 -s 192.168.50.0/24 -j ACCEPT sudo iptables -A FORWARD -i eth0 -o wlan0 -d 192.168.50.0/24 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT sudo iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o eth0 -j MASQUERADE
16. Spara firewall-reglerna, med följande kommandon
sudo netfilter-persistent save sudo systemctl enable netfilter-persistent
17. Enabla och starta tidigare konfigurerade services, med följande kommandon
sudo systemctl enable hostapd dnsmasq sudo systemctl start ap-address sudo systemctl start hostapd dnsmasq
18. Boota om Raspberry Pi och testa att det funkar
sudo reboot
19. Efter ombootning, kontrollera status med följande kommandon
ip -4 addr ip route sysctl net.ipv4.ip_forward systemctl status hostapd systemctl status dnsmasq systemctl status ap-address systemctl status ssh
20. Från t ex en laptop, anslut till Gxx-RaspberryPi-AP och testa: (byt username mot användarnamn på Raspberry Pi)
ssh username@192.168.50.1
21. Testa internet-access
ping -c 3 1.1.1.1 ping -c 3 raspberrypi.com