━━━ Menyiapkan titik akses ━━━
Kita berbicara tentang titik akses bersama dengan port ethernet eth0 .
Jika Anda ingin titik akses bersama-sama dengan koneksi klien wlan0 ke jaringan wifi lain (wlan repeater) kemudian lihat Access point sebagai WiFi router / repeater, opsional dengan bridge .
Dimungkinkan untuk mengkonfigurasi Raspbian Stretch sebagai titik akses wifi tanpa menginstal perangkat lunak tambahan. Semua komponen yang diperlukan tersedia: jaringan, server DHCP dan bridging dilengkapi dengan systemd-networkd dan wifi dapat diatur dengan wpa_supplicant . Menghubungkan dua antarmuka eth0 dan wlan0 dapat dilakukan dengan routing atau bridging. Pertama di bawah ini pengaturan untuk instalasi cepat dan kemudian detailnya. Pertama kita harus beralih ke systemd-networkd .
Diuji dengan
Raspbian Buster Lite 2019-09-26 pada Raspberry Pi 4B yang diperbarui pada 2020-01-18.
Pembaruan dilakukan dengan sudo apt update && sudo apt full-upgrade && sudo reboot
.
Di sini Anda dapat menemukan revisi teruji terakhir untuk versi Raspbian sebelumnya .
♦ Pengaturan umum
Beralih ke systemd-networkd
Untuk informasi terperinci lihat (1) dan Cara mengkonfigurasi resolusi nama dengan systemd-networkd . Di sini hanya singkat. Jalankan perintah ini:
# deinstall classic networking
rpi ~$ sudo -Es
rpi ~# apt --autoremove purge ifupdown dhcpcd5 isc-dhcp-client isc-dhcp-common
rpi ~# rm -r /etc/network /etc/dhcp
# enable systemd-networkd
rpi ~# systemctl enable systemd-networkd.service
# setup systemd-resolved
rpi ~# systemctl enable systemd-resolved.service
rpi ~# apt --autoremove purge avahi-daemon
rpi ~# apt install libnss-resolve
rpi ~# ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Konfigurasikan wpa_supplicant sebagai titik akses
Untuk mengkonfigurasi wpa_supplicant sebagai titik akses membuat file ini dengan pengaturan Anda untuk country=
, ssid=
, psk=
dan mungkin frequency=
. Anda bisa menyalin dan menempel ini dalam satu blok ke baris perintah Anda yang dimulai dengan cat
dan termasuk kedua EOF (pembatas EOF tidak akan mendapatkan bagian dari file):
rpi ~# cat > /etc/wpa_supplicant/wpa_supplicant-wlan0.conf <<EOF
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="RPiNet"
mode=2
frequency=2437
#key_mgmt=NONE # uncomment this for an open hotspot
# delete next 3 lines if key_mgmt=NONE
key_mgmt=WPA-PSK
proto=RSN WPA
psk="password"
}
EOF
rpi ~# chmod 600 /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
rpi ~# systemctl disable wpa_supplicant.service
rpi ~# systemctl enable [email protected]
Penyiapan Umum selesai. Kembali.
♦ Mengatur titik akses yang berdiri sendiri
Contoh untuk pengaturan ini:
wifi
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0)
\ /
(dhcp) 192.168.4.1
Lakukan "Pengaturan umum" kemudian buat file berikut untuk mengkonfigurasi wlan0 . Kami hanya memiliki titik akses. Tidak ada perangkat ethernet yang dikonfigurasi.
rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
MulticastDNS=yes
DHCPServer=yes
EOF
Jika Anda menginginkan ini maka reboot.
Itu dia.
Jika tidak, lanjutkan, tidak perlu reboot saat ini.
♦ Mengatur titik akses dan dengan eth0, tanpa routing
Contoh untuk pengaturan ini:
|
wifi | wired wan
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0) <---------> router <---> INTERNET
\ / | \ /
(dhcp) 192.168.4.1 | (dhcp) 192.168.50.1
Mempersiapkan
Lakukan "Mengatur titik akses yang berdiri sendiri" lalu buat file berikut untuk mengkonfigurasi eth0 .
rpi ~$ sudo -Es # if not already executed before
rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
DHCP=yes
EOF
Mulai ulang.
Itu dia.
Detail
Antarmuka eth0 dihubungkan dengan kabel ethernet ke router internet dan mendapatkannya konfigurasi oleh DHCP dari router internet. Tidak ada masalah untuk memberikannya alamat ip statis misalnya dengan Address=192.168.50.2
bukan DHCP=yes
.
Tanpa perutean, Anda tidak dapat masuk ke internet dengan ponsel-ponsel. Anda hanya bisa memasukinya dari RPi sendiri untuk mendapatkan pembaruan atau semacamnya.
♦ Menyiapkan titik akses dan dengan eth0, dengan NAT (disarankan)
Contoh untuk pengaturan ini:
wifi wired wan
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0) <---------> router <---> INTERNET
\ / \
(dhcp) 192.168.4.1 (dhcp)
Mempersiapkan
Lakukan "Pengaturan umum" kemudian buat file-file berikut untuk mengkonfigurasi wlan0 dan eth0 . Jika Anda telah mencoba salah satu dari pengaturan sebelumnya maka Anda bisa menimpa kedua file tersebut. Pastikan Anda menggunakan subnet berbeda untuk jalur akses dari pada router. Router dalam contoh ini tidak menggunakan subnet 192.168.4.0/24. Jika Anda memerlukan subnet lain maka ubah saja baris Alamat, mis Address=192.168.5.1/24
.
rpi ~$ sudo -Es # if not already executed before
rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
MulticastDNS=yes
# IPMasquerade is doing NAT
IPMasquerade=yes
DHCPServer=yes
[DHCPServer]
DNS=84.200.69.80 1.1.1.1
EOF
rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
DHCP=yes
IPForward=yes
EOF
Mulai ulang.
Itu dia.
Detail
Jika Anda tidak memiliki akses ke router internet Anda dapat memalsunya dengan NAT (terjemahan alamat jaringan) untuk mengatakan bahwa semua paket berasal dari RasPi AP Anda. Tapi ini bukan routing yang bersih dan memiliki keterbatasan. Klien di subnet router tidak dapat terhubung ke klien di wifi. Tetapi dalam kebanyakan kasus ini tidak diperlukan sehingga pengaturan ini direkomendasikan karena menyederhanakan pengaturan. Jika Anda perlu terhubung ke klien wifi dari jaringan router maka Anda harus menggunakan perutean penuh seperti yang dijelaskan di bagian selanjutnya.
♦ Mengatur titik akses dan dengan eth0, dengan routing
Contoh untuk pengaturan ini:
wifi wired wan
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0) <---------> router <---> INTERNET
\ / \ /
(dhcp) 192.168.4.1 192.168.50.2 192.168.50.1
Mempersiapkan
Lakukan "Pengaturan umum" kemudian buat file-file berikut untuk mengkonfigurasi wlan0 dan eth0 . Jika Anda telah mencoba salah satu dari pengaturan sebelumnya maka Anda bisa menimpa kedua file tersebut. Pastikan Anda menggunakan subnet yang berbeda untuk titik akses dan jaringan router. Kita harus menggunakan alamat ip statis karena kita harus menggunakannya sebagai gateway.
rpi ~$ sudo -Es # if not already executed before
rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
MulticastDNS=yes
DHCPServer=yes
[DHCPServer]
DNS=84.200.69.80 1.1.1.1
EOF
rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
Address=192.168.50.2/24
Gateway=192.168.50.1
DNS=84.200.69.80 1.1.1.1
IPForward=yes
EOF
Mulai ulang.
Untuk mendapatkan routing yang berfungsi, Anda harus mengatur rute statis di router internet Anda sehingga dapat menemukan rute untuk paket yang datang kembali melalui Raspi ke klien yang terhubung dengan wifi ke titik akses. Pada sebagian besar router internet Anda dapat mengatur rute statis tetapi bagaimana melakukannya bervariasi dari model ke model. Terserah Anda untuk mengetahuinya. Misalnya antarmuka RasPi eth0 Anda memiliki alamat ip statis 192.168.50.2. Kemudian pada router Anda gateway (hop berikutnya) adalah 192.168.50.2, jaringan tujuan adalah 192.168.4.0/24 (atau 192.168.4.0 netmask 255.255.255.0).
Itu berarti untuk router internet: "kirim semua paket milik subnet 192.168.4.0/24
(jaringan tujuan dari AP) ke router berikutnya di subnet saya, RasPi AP 192.168.50.2
(gateway). Ia tahu ke mana harus pergi."
Itu dia.
♦ Mengatur titik akses dengan jembatan
Contoh untuk pengaturan ini:
RPi
wifi ┌──────bridge──────┐ wired wan
mobile-phone <.~.~.~> │(wlan0) br0 (eth0)│ <-------> router <-----> INTERNET
\ | / DHCP-server
(dhcp (dhcp 192.168.50.1
from router) from router)
Jika Anda sudah memiliki jaringan ethernet dengan DHCP server dan router internet dan Anda ingin memperluasnya dengan jalur akses wifi tetapi dengan alamat ip yang sama maka Anda menggunakan jembatan. Ini sering digunakan sebagai uplink ke router.
Mempersiapkan
Lakukan "Pengaturan umum" kemudian buat tiga file berikut untuk mengonfigurasi antarmuka jaringan. Jika Anda telah mencoba salah satu pengaturan sebelumnya maka Anda dapat menghapus semua file /etc/systemd/network/
kecuali 99-default.link
jika ada. Alamat ip adalah contoh. Anda harus menggunakan milik Anda sendiri.
rpi ~$ sudo -Es # if not already executed before
rpi ~# cat > /etc/systemd/network/02-br0.netdev <<EOF
[NetDev]
Name=br0
Kind=bridge
EOF
rpi ~# cat > /etc/systemd/network/04-br0_add-eth0.network <<EOF
[Match]
Name=eth0
[Network]
Bridge=br0
EOF
rpi ~# cat > /etc/systemd/network/12-br0_up.network <<EOF
[Match]
Name=br0
[Network]
MulticastDNS=yes
DHCP=yes
# to use static IP uncomment these and comment DHCP=yes
#Address=192.168.50.60/24
#Gateway=192.168.50.1
#DNS=84.200.69.80 1.1.1.1
EOF
Sekarang kita harus memberitahu wpa_supplicant untuk menggunakan jembatan. Kami melakukannya dengan memodifikasi layanannya dengan:
rpi ~# systemctl edit [email protected]
Di editor kosong masukkan pernyataan ini, simpan dan keluar dari editor:
[Service]
ExecStartPre=/sbin/iw dev %i set type __ap
ExecStartPre=/bin/ip link set %i master br0
ExecStart=
ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -Dnl80211,wext -i%I -bbr0
ExecStopPost=-/bin/ip link set %i nomaster
ExecStopPost=-/sbin/iw dev %i set type managed
Mulai ulang.
Itu dia.
Detail
Kita harus memberi tahu wpa_supplicant bahwa antarmuka wlan0 adalah slave of a bridge. Kalau tidak, ia akan menolak koneksi klien dengan "kata sandi yang salah" berarti negosiasi kunci tidak berfungsi. Ketika kita memberi tahu / sbin / wpa_supplicant dengan opsi -dbr0
untuk menggunakan jembatan untuk wlan0 maka antarmuka harus sudah menjadi anggota jembatan. Itulah yang kami lakukan dengan drop in file (overlay) untuk layanan wpa_supplicant . Pernyataan kosong ExecStart=
menghapus entri lama. Kalau tidak, Anda memiliki dua baris ExecStart=
dan wpa_supplicant akan mulai dua kali. Dokumen asli ExecStart=
yang dapat Anda lihat systemctl cat [email protected]
.
Biasanya router Anda terhubung dengan kabel ethernet memiliki server DHCP diaktifkan. Bridge juga transparan untuk permintaan DHCP dari stasiun (perangkat yang terhubung ke titik akses) sehingga Anda tidak perlu khawatir tentang konfigurasi antarmuka dengan alamat dan opsi ip. Router akan melayani itu.
excursus:
Tetapi jika router tidak memiliki server DHCP, Anda dapat mengaturnya di RasPi. systemd-networkd memiliki opsi untuk mengkonfigurasi server DHCP bawaannya tetapi masalahnya adalah bahwa systemd-networkd menganggap itu berjalan pada router itu sendiri dan itu tidak benar dalam kasus ini. Ini akan menyajikan opsi yang salah ke stasiun, khususnya opsi router . Tidak ada cara untuk mengkonfigurasinya. Jadi kita harus menginstaldnsmasq
dalam hal ini yang dapat dikonfigurasi sesuai kebutuhan. Instal dan konfigurasikan dengan (misalnya, gunakan alamat ip Anda sendiri):
rpi ~$ sudo -Es
rpi ~# apt install dnsmasq
rpi ~# systemctl stop dnsmasq
rpi ~# mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
rpi ~# cat > /etc/dnsmasq.conf <<EOF
interface=br0
dhcp-range=192.168.50.128,192.168.50.164,255.255.255.0,24h
dhcp-option=option:router,192.168.50.1
dhcp-option=option:dns-server,8.8.8.8,1.1.1.1
EOF
rpi ~# systemctl start dnsmasq
rpi ~# exit
rpi ~$
Dalam contoh ini adalah alamat ip 192.168.50.128 hingga 192.168.50.164 dicadangkan untuk diberikan kepada stasiun. Untuk alamat ip statis lainnya gunakan satu di luar kolam ini, juga alamat ip untuk jembatan itu sendiri.
♦ Mengoptimalkan
Saat memulai wpa_supplicant, Anda sebagian besar mendapatkan pesan ini di jurnal:
wpa_supplicant[427]: random: Cannot read from /dev/random: Resource temporarily unavailable
wpa_supplicant[427]: random: Only 12/20 bytes of strong random data available from /dev/random
wpa_supplicant[427]: random: Not enough entropy pool available for secure operations
wpa_supplicant[427]: WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects
Itu bukan masalah besar. wpa_supplicant membutuhkan angka acak untuk menghasilkan kunci penyandian. Ini dilakukan agak lambat sehingga harus menunggu. Untungnya RasPi memiliki bangunan di T rue R andom N umber G enerator (TRNG). Kita dapat menggunakannya dan mempercepat mendapatkan nomor acak dengan menginstal perangkat lunak (3) dengan:
rpi ~$ sudo apt install rng-tools
Pembaruan:
Sejak Raspbian Stretch 2019-04-08 tidak perlu menginstal rng-tools
. Mereka diinstal secara default.
♦ Pemecahan masalah
systemd-networkd
Lihatlah status layanan:
rpi ~$ systemctl status systemd-networkd.service
rpi ~$ systemctl status [email protected]
Atau bahkan lebih:
rpi ~$ journalctl --boot --pager-end
Saya merasa terbantu untuk mengikuti pembalakan yang sedang berlangsung:
rpi ~$ journalctl --boot --follow
Jika Anda telah membuat file drop-in, Anda dapat melihat hasilnya:
rpi ~$ systemctl cat [email protected]
Untuk memeriksa lingkungan runtime dari suatu unit Anda dapat menunjukkannya dan misalnya melihat apakah ada dua ExecStart=
baris:
rpi ~$ systemctl show [email protected]
Dan jika tidak ada orang lain yang membantu Anda dapat mengaktifkan opsi debug /sbin/wpa_supplicant
dengan -d
dalam setetes file:
rpi ~$ sudo systemctl edit [email protected]
ExecStart=
ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -Dnl80211,wext -i%I -bbr0 -d
Outputnya ada di jurnal. Dengan cara ini saya telah menemukan masalah dengan negosiasi kunci yang salah.
Wifi
Jika Anda sudah mengatur jalur akses Anda harus menemukannya dengan ponsel. Menampilkan jaringan yang tersedia, disajikan dengan nama RPiNet dan Anda dapat terhubung dengannya. Pada Raspi Anda juga dapat menggunakan perintah:
rpi ~$ sudo iw dev wlan0 info
phy#0
Interface wlan0
ifindex 3
wdev 0x2
addr b8:27:eb:06:e8:8b
ssid RPiNet
type AP
channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
Seperti yang Anda lihat itu adalah tipe AP (titik akses) dan juga akan menunjukkan kepada Anda saluran apa yang digunakannya. Masalahnya mungkin menerjemahkan saluran ke frekuensi. Frekuensi harus cocok dengan saluran. Anda dapat melihat (2) untuk daftar saluran WLAN. Misalnya penggunaan channel 36 pada band 5.1 GHz Anda harus menetapkan frequency=5180
di /etc/wpa_supplicant\wpa_supplicant.conf
. Tetapi Anda harus yakin bahwa wifi Anda mendukung pita 5,1 GHz. Anda bisa memeriksanya sudo iw phy
. Ini akan memberi Anda banyak informasi. Itu juga harus mengandung frekuensi yang didukung di atas 5000 MHz. Jika Anda hanya melihat frekuensi 24xx MHz maka tentu saja Anda hanya dapat menggunakan ini.
Poin lainnya bisa berupa angka acak. Untuk mengenkripsi kunci untuk koneksi aman, wpa_supplicant memerlukan angka acak. Menghasilkan ini sangat lambat pada Raspberry Pi. Jika tidak memiliki cukup entropi untuk menghasilkan kunci enkripsi, wpa_supplicant akan menolak otentikasi. Anda dapat melihat dengan cat /proc/sys/kernel/random/entropy_avail
berapa banyak entropi yang tersedia. Seharusnya> 1000 untuk bekerja cukup cepat. Untuk mempercepat ini, rng-tools
diinstal secara default. Lihatlah bagian itu Mengoptimalkan untuk informasi lebih lanjut.
referensi:
[1] Cara bermigrasi dari jaringan ke systemd-networkd dengan failover dinamis
[2] Daftar saluran WLAN
[3] Rng-tools
ls /var/log/journal/
. Anda akan melihat direktori yang miripfa9462093e8d419cb646d0a0c44771c2
. Ini adalah penyimpanan untuk jurnal yang Anda aksesjournalctl
. Saya akan memperbarui jawaban saya.proto=WPA2
dalam konfigurasi AP. Ponsel saya, setidaknya, mengeluh tentang "keamanan lemah" tanpa itu.proto=RSN
. Itulah yang lebih disukai docu (penamaanproto=WPA2
alias).Cara yang lebih MUDAH untuk mengatur Raspberry Pi sebagai AP adalah dengan menggunakan repo pi-ap Github yang mengotomatiskan konfigurasi Pi 3B + / 4 menjadi AP.
Sambungkan Pi ke port gratis di router yang terhubung ke internet yang memiliki DHCP diaktifkan (mungkin terjadi di sebagian besar router konsumen).
Setelah terhubung, SSH ke Pi pada DHCP yang ditugaskan IP ditugaskan
eth0
oleh router dan kemudian:Minum teh dan setelah menunggu sekitar 2 menit SSID yang Anda setel
variables.sh
akan muncul di daftar jaringan nirkabel Anda. Sambungkan ke WLAN Pi yang diiklankan.Untuk SSH langsung ke AP itu sendiri pada
wlan0
antarmuka Pi , gunakan IP default dari192.168.0.1
PLEASE NOTE : pi-ap DHCP subnet default yang digunakan untuk menetapkan IP klien WiFi
variables.sh
adalah192.168.0.0/28
. Jika Anda sudah menggunakan subnet itu di jaringan Anda, atur subnet yang berbedavariables.sh
untuk klien WiFi SEBELUM mengeksekusiinstall.sh
.Tidak diperlukan kalkulator subnet atau keterampilan jaringan yang serius untuk mencapai hasil yang baik. pi-ap bahkan mendukung pembatasan akses melalui MAC ACL.
PENGUNGKAPAN : Saya adalah pengembang pi-ap .
sumber
━━━ Periksa langkah demi langkah instalasi dengan pos-pos pemeriksaan ━━━
Jawaban ini tidak dipikirkan untuk pengaturan. Untuk pengaturan yang stabil, lihat jawaban lain Menyiapkan titik akses .
Jawaban ini terutama untuk pemecahan masalah dan untuk menunjukkan cara kerjanya dengan perintah rinci langkah demi langkah dan pos pemeriksaan tetapi tanpa informasi latar belakang. Saya kira Anda memiliki monitor, keyboard, dan mouse yang terpasang pada Raspberry Pi Anda. Alamat IP dan pengaturan lain dalam pemeriksaan ini adalah contoh. Anda harus menggunakan milik Anda. Anda selalu bisa melihat
journalctl -b -e
informasi yang dicatat.Download ZIP
image Raspbian Stretch Lite 2018-11-13 ke komputer linux Anda.Pos pemeriksaan 1: Bandingkan checksum dengan yang ada di situs unduhan.
47ef1b2501d0e5002675a50b6868074e693f78829822eef64f3878487953234d 2018-11-13-raspbian-stretch-lite.zip
Langkah selanjutnya: Bakar gambar ke Kartu SD yang terpasang:
Pos pemeriksaan 2: periksa partisi pada Kartu SD:
Langkah selanjutnya: Pasang partisi boot dan buat
wpa_supplicant.conf
file:Masukkan Kartu SD ke dalam Raspi dan boot.
Pos pemeriksaan 3: Setelah masuk, periksa koneksi kabel. The eth0 antarmuka harus memiliki alamat ip:
Ini harus bekerja di luar kotak. Jika tidak berhasil maka Anda memiliki masalah umum dengan pengaturan jaringan Anda. Harap perbaiki sebelum melanjutkan.
Pos pemeriksaan 4: Periksa titik akses:
The wlan0 antarmuka shoud memiliki alamat ip. Karena kami belum mengonfigurasi antarmuka, ia akan memiliki alamat Tautan-lokal dari 169.254.0.0/16.
Anda akan melihat RPiNet dalam daftar titik akses pada ponsel Anda, tetapi Anda belum dapat menghubungkannya.
Langkah selanjutnya: Upgrade dan reboot penuh:
Setelah reboot dan masuk, beralihlah ke systemd-networkd :
(*) Anda akan mendapatkan satu atau dua peringatan yang membingungkan "... Tidak dapat mengatur atribut file ..." Ini bukan kesalahan dan tidak masalah dalam kasus ini.
Buat file-file ini untuk antarmuka eth0 dan wlan0 dengan pengaturan Anda:
Ganti nama /etc/wpa_supplicant/wpa_supplicant.conf sehingga cocok dengan pengaturan antarmuka dan reboot:
Checkpoint 5: Setelah reboot dan login periksa koneksi kabel eth0 :
Pos pemeriksaan 6: Periksa koneksi wifi wlan0 :
Periksa wifi di ponsel Anda. Anda harus menemukan
RPiNet
dan Anda dapat terhubung dengannya. Ponsel Anda tidak dapat masuk ke internet karena perutean belum dikonfigurasi.Langkah selanjutnya: aktifkan NAT untuk koneksi internet. Untuk mengkonfigurasi NAT Anda harus memperluas layanan wpa_supplicant dengan:
Di editor kosong masukkan pernyataan ini, simpan dan keluar dari editor:
Kemudian lakukan:
Pos pemeriksaan 7: Sekarang Anda harus dapat masuk ke internet dengan telepon seluler.
sumber