Menyiapkan Raspberry Pi sebagai titik akses - cara mudah

16

Saya tahu cara melakukannya dengan cara klasik seperti dijelaskan misalnya dengan dokumentasi resmi di Menyiapkan Raspberry Pi sebagai titik akses di jaringan mandiri (NAT) . Tetapi itu membutuhkan banyak komponen berbeda yang harus dimainkan bersama dan masing-masing komponen harus dikonfigurasi dengan caranya sendiri. Ini adalah jaringan (ifupdown) , dhcpcd , hostapd , dnsmasq dan bridge-utils .

Saat ini Raspbian Stretch memiliki semua komponen yang diperlukan sehingga tidak perlu menginstal perangkat lunak tambahan. Ini bisa menyederhanakan banyak pengaturan.

Apakah mungkin mengkonfigurasi Raspbian agar berfungsi sebagai titik akses wifi tanpa menginstal perangkat lunak tambahan?

Ingo
sumber

Jawaban:

26

━━━ 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 catdan 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.2bukan 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.linkjika 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 -dbr0untuk 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 menginstaldnsmasqdalam 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_supplicantdengan -ddalam 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=5180di /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_availberapa banyak entropi yang tersedia. Seharusnya> 1000 untuk bekerja cukup cepat. Untuk mempercepat ini, rng-toolsdiinstal 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

Ingo
sumber
rpi ~ # systemd-tmpfiles --create --prefix / var / log / journalroIL FAILS dengan pesan output ini @pi: ~ # systemd-tmpfiles --create --prefix / var / log / journal Tidak dapat mengatur atribut file untuk '/ var / log / jurnal ', nilai = 0x00800000, mask = 0x00800000: Operasi tidak didukung Tidak dapat mengatur atribut file untuk' / var / log / jurnal / 6d18954849a74479955b761e891619aa ', nilai = 0x00800000, mask = 0x00800000: Operasi tidak didukung Jadi jurnal tidak dapat didukung diimplementasikan. Bukan awal yang baik untuk menerapkan prosedur ini.
Jan Hus
1
Hai @ JanHus Terima kasih atas tanggapan Anda. Ini hanya peringatan, bukan kesalahan dan tidak masalah. Saya juga mendapatkannya setiap waktu. Jurnal persisten dibuat. Lihat dengan ls /var/log/journal/. Anda akan melihat direktori yang mirip fa9462093e8d419cb646d0a0c44771c2. Ini adalah penyimpanan untuk jurnal yang Anda akses journalctl. Saya akan memperbarui jawaban saya.
Ingo
Ya, saya sudah memeriksa apakah file itu dibuat. Tapi saya teralihkan dan berhenti. Saya akan melanjutkan hari ini. Sejauh ini ini adalah salah satu "tutorial" yang lebih baik tentang masalah ini. Terima kasih telah mempostingnya. PS menyebutnya persisten OK? Sedikit membingungkan ketika dibuat menggunakan proses temp.
Jan Hus
2
@Ingo Saya pikir disarankan untuk digunakan proto=WPA2dalam konfigurasi AP. Ponsel saya, setidaknya, mengeluh tentang "keamanan lemah" tanpa itu.
Robin Dinse
2
@RobinDinse Anda benar, tentu saja. Saya telah mengawasinya. Terima kasih atas petunjuknya. Saya telah menambahkan proto=RSN. Itulah yang lebih disukai docu (penamaan proto=WPA2alias).
Ingo
3

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 eth0oleh router dan kemudian:

git clone https://github.com/f1linux/pi-ap

cd pi-ap

nano variables.sh   # Change default values for SSID & password

sudo ./install.sh

Minum teh dan setelah menunggu sekitar 2 menit SSID yang Anda setel variables.shakan muncul di daftar jaringan nirkabel Anda. Sambungkan ke WLAN Pi yang diiklankan.

Untuk SSH langsung ke AP itu sendiri pada wlan0antarmuka Pi , gunakan IP default dari192.168.0.1

PLEASE NOTE : pi-ap DHCP subnet default yang digunakan untuk menetapkan IP klien WiFi variables.shadalah 192.168.0.0/28. Jika Anda sudah menggunakan subnet itu di jaringan Anda, atur subnet yang berbeda variables.shuntuk klien WiFi SEBELUM mengeksekusi install.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 .

F1Linux
sumber
0

━━━ 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 melihatjournalctl -b -e informasi yang dicatat.

Download ZIPimage Raspbian Stretch Lite 2018-11-13 ke komputer linux Anda.

Pos pemeriksaan 1: Bandingkan checksum dengan yang ada di situs unduhan.

pc ~$ sha256sum 2018-11-13-raspbian-stretch-lite.zip

47ef1b2501d0e5002675a50b6868074e693f78829822eef64f3878487953234d 2018-11-13-raspbian-stretch-lite.zip

Langkah selanjutnya: Bakar gambar ke Kartu SD yang terpasang:

pc ~$ unzip -p 2018-11-13-raspbian-stretch-lite.zip | sudo dd of=/dev/sdb bs=4M conv=fsync

Pos pemeriksaan 2: periksa partisi pada Kartu SD:

pc ~$ sudo parted /dev/sdb print
Model: Mass Storage Device (scsi)
Disk /dev/sdb: 3965MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  50,2MB  46,0MB  primary  fat32        lba
 2      50,3MB  1866MB  1816MB  primary  ext4

Langkah selanjutnya: Pasang partisi boot dan buat wpa_supplicant.conffile:

pc ~$ mkdir boot/
pc ~$ sudo mount /dev/sdb1 boot/
pc ~$ sudo -e boot/wpa_supplicant.conf

# insert this into the empty editor with your settings, save it and quit the editor
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="RPiNet"
    mode=2
    key_mgmt=WPA-PSK
    psk="password"
    frequency=2412
}

pc ~$ sudo umount boot/

Masukkan Kartu SD ke dalam Raspi dan boot.

Pos pemeriksaan 3: Setelah masuk, periksa koneksi kabel. The eth0 antarmuka harus memiliki alamat ip:

rpi ~$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.50.177/24 brd 192.168.50.255 scope global eth0
       valid_lft forever preferred_lft forever

rpi ~$ ping -I eth0 -c3 google.com
PING google.com (172.217.22.78) from 192.168.50.177 eth0: 56(84) bytes of data.
64 bytes from fra15s17-in-f14.1e100.net (172.217.22.78): icmp_seq=1 ttl=55 time=15.0 ms
64 bytes from fra15s17-in-f14.1e100.net (172.217.22.78): icmp_seq=2 ttl=55 time=14.7 ms
64 bytes from fra15s17-in-f14.1e100.net (172.217.22.78): icmp_seq=3 ttl=55 time=15.1 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 14.729/14.965/15.125/0.170 ms

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:

rpi ~$ sudo iw dev wlan0 info
Interface wlan0
        ifindex 3
        wdev 0x1
        addr b8:27:eb:06:e8:8b
        ssid RPiNet
        type AP
        wiphy 0
        channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
        txpower 31.00 dBm

The wlan0 antarmuka shoud memiliki alamat ip. Karena kami belum mengonfigurasi antarmuka, ia akan memiliki alamat Tautan-lokal dari 169.254.0.0/16.

rpi ~$ ip -4 addr show dev wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 169.254.210.182/16 brd 169.254.255.255 scope global wlan0
       valid_lft forever preferred_lft forever

Anda akan melihat RPiNet dalam daftar titik akses pada ponsel Anda, tetapi Anda belum dapat menghubungkannya.

Langkah selanjutnya: Upgrade dan reboot penuh:

rpi ~$ sudo apt update
rpi ~$ sudo apt full-upgrade
rpi ~$ sudo systemctl reboot

Setelah reboot dan masuk, beralihlah ke systemd-networkd :

rpi ~$ sudo -Es
rpi ~# mkdir -p /var/log/journal
rpi ~# systemd-tmpfiles --create --prefix /var/log/journal #ignore warnings (*)

rpi ~# apt install rng-tools
rpi ~# systemctl mask networking.service
rpi ~# systemctl mask dhcpcd.service
rpi ~# sudo mv /etc/network/interfaces /etc/network/interfaces~
rpi ~# sed -i '1i resolvconf=NO' /etc/resolvconf.conf

rpi ~# systemctl enable systemd-networkd.service
rpi ~# systemctl enable systemd-resolved.service
rpi ~# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

(*) 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:

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
Address=192.168.50.60/24
Gateway=192.168.50.1
DNS=84.200.69.80 84.200.70.40
IPForward=yes
EOF

rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
DHCPServer=yes
[DHCPServer]
DNS=84.200.69.80 84.200.70.40
EOF

Ganti nama /etc/wpa_supplicant/wpa_supplicant.conf sehingga cocok dengan pengaturan antarmuka dan reboot:

rpi ~# mv /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
rpi ~# systemctl disable [email protected]
rpi ~# systemctl reboot

Checkpoint 5: Setelah reboot dan login periksa koneksi kabel eth0 :

rpi ~$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.50.60/24 brd 192.168.50.255 scope global eth0
       valid_lft forever preferred_lft forever

rpi ~$ ping -I eth0 -c3 google.com
PING google.com (172.217.10.14) from 192.168.50.60 eth0: 56(84) bytes of data.
64 bytes from lga34s12-in-f14.1e100.net (172.217.10.14): icmp_seq=1 ttl=51 time=93.5 ms
64 bytes from lga34s12-in-f14.1e100.net (172.217.10.14): icmp_seq=2 ttl=51 time=93.5 ms
64 bytes from lga34s12-in-f14.1e100.net (172.217.10.14): icmp_seq=3 ttl=51 time=93.5 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 93.519/93.551/93.592/0.030 ms

Pos pemeriksaan 6: Periksa koneksi wifi wlan0 :

rpi ~$ sudo systemctl start [email protected]
rpi ~$ sudo iw dev wlan0 info
Interface wlan0
        ifindex 3
        wdev 0x1
        addr b8:27:eb:06:e8:8b
        ssid RPiNet
        type AP
        wiphy 0
        channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
        txpower 31.00 dBm

rpi ~$ ip -4 addr show dev wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.4.1/24 brd 192.168.4.255 scope global wlan0
       valid_lft forever preferred_lft forever

Periksa wifi di ponsel Anda. Anda harus menemukanRPiNet 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:

rpi ~$ sudo systemctl edit [email protected]

Di editor kosong masukkan pernyataan ini, simpan dan keluar dari editor:

[Service]
ExecStartPre=/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ExecStopPost=-/sbin/iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Kemudian lakukan:

rpi ~$ sudo systemctl daemon-reload
rpi ~$ sudo systemctl restart systemd-networkd.service
rpi ~$ sudo systemctl restart [email protected]

Pos pemeriksaan 7: Sekarang Anda harus dapat masuk ke internet dengan telepon seluler.

Ingo
sumber
@Wim Anda bertanya dalam jawaban yang dihapus: "Bagaimana ini bisa dilakukan dengan Buster rilis Raspbian baru?" Jawaban ini "━━━ Periksa langkah demi langkah pemasangan dengan pos-pos pemeriksaan ━━━" bukan jawaban yang benar jika Anda ingin mengatur titik akses. Untuk ini, Anda harus menggunakan jawaban lain "━━━ Menyiapkan titik akses ━━━" di sini di sisi ini. Ini juga bekerja dengan Raspbian Buster. Saya baru saja memverifikasi.
Ingo