لدى الإنترنت ثروة من المعلومات حول إنشاء نقاط وصول Wi-Fi تعتمد على جهاز كمبيوتر Raspberry أحادي اللوحة. كقاعدة عامة ، فإنه يعني استخدام نظام التشغيل الأصلي لـ Raspberry - Raspbian.
لكوني متمسكًا بالأنظمة المعتمدة على RPM ، لم أستطع تجاوز هذه المعجزة الصغيرة ولا أجرب CentOS المفضلة لدي على ذلك.
توفر هذه المقالة إرشادات حول إنشاء جهاز توجيه Wi-Fi 5 جيجاهرتز / AC من Raspberry Pi 3 Model B + استنادًا إلى نظام التشغيل CentOS. سيكون هناك العديد من الحيل القياسية ، ولكن غير معروفة ، وكمكافأة - رسم للاتصال بأجهزة Wi-Fi إضافية "التوت" ، مما يتيح لها العمل في وقت واحد في عدة أوضاع (2.4 + 5GHz).
(مزيج من الصور من حرية الوصول)نلاحظ على الفور أن بعض السرعات الكونية لن تعمل. أضغط 100 ميغابت بحد أقصى من "التوت" الخاص بي على الهواء ، وهذا يغطي سرعة مزود الإنترنت الخاص بي. لماذا نحتاج إلى مثل هذا التيار المتردد البطيء ، حتى لو كان من الناحية النظرية N يمكنك الحصول على نصف غيغا بايت؟ إذا طرحت هذا السؤال ، فانتقل إلى المتجر للحصول على جهاز توجيه حقيقي به ثماني هوائيات خارجية.
0. ما هو المطلوب
- في الواقع ، "منتج التوت" من العيار نفسه: Pi 3 Model B + (لتحقيق سرعات وقنوات بسرعة 5 جيجاهرتز المطلوبة) ؛
- microSD الصلبة> = 4GB ؛
- محطة عمل Linux مع قارئ / قارئ microSD ؛
- وجود مهارات كافية في لينكس ، والمادة هي المهوس المعدة ؛
- اتصال شبكة سلكية (eth0) بين Raspberry و Linux ، خادم DHCP يعمل على الشبكة المحلية ، والوصول إلى الإنترنت من كلا الجهازين.
تعليق قصير على النقطة الأخيرة. "ما الذي جاء أولاً ، بيضة أو ..." كيفية صنع جهاز توجيه Wi-Fi في غياب أي معدات الوصول إلى الإنترنت؟ دعنا نترك هذا التمرين الترفيهي خارج نطاق المقالة ونفترض ببساطة أن توت العليق متصل بالشبكة المحلية عن طريق الأسلاك ولديه اتصال بالإنترنت. في هذه الحالة ، لسنا بحاجة إلى تلفزيون إضافي ومعالج لإعداد التوت.
1. تثبيت CentOS
صفحة المشروع الرئيسيةفي وقت كتابة هذا التقرير ، كانت نسخة العمل من CentOS على الجهاز 32 بت. في مكان ما في شبكة الويب العالمية الواسعة ، صادفت آراء حول تدهور أداء أنظمة التشغيل هذه على بنية ARM 64 بت بقدر 20٪. سأترك هذه النقطة دون تعليق.
على نظام Linux ، قم بتنزيل الحد الأدنى من الصور باستخدام "
-RaspberryPI- " kernel واكتبها على microSD:
# xzcat CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz | \ dd of=/dev/mmcblk0 bs=4M # sync
قبل استخدام الصورة ، احذف قسم SWAP منه ، وقم بتوسيع الجذر إلى وحدة التخزين المتوفرة بأكملها والتخلص من SELinux. الخوارزمية بسيطة: قم بعمل نسخة من الجذر على Linux ، وحذف جميع الأقسام من microSD باستثناء الأول (/ boot) ، وقم بإنشاء جذر جديد وإرجاع محتوياته من النسخة.
مثال على الإجراءات الضرورية (إخراج وحدة التحكم القاسية) # mount /dev/mmcblk0p3 /mnt # cd /mnt # tar cfz ~/pi.tgz . --no-selinux # cd # umount /mnt
# parted /dev/mmcblk0 (parted) unit s (parted) print free Model: SD SC16G (sd/mmc) Disk /dev/mmcblk0: 31116288s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 63s 2047s 1985s Free Space 1 2048s 1370111s 1368064s primary fat32 boot, lba 2 1370112s 2369535s 999424s primary linux-swap(v1) 3 2369536s 5298175s 2928640s primary ext4 5298176s 31116287s 25818112s Free Space (parted) rm 3 (parted) rm 2 (parted) print free Model: SD SC16G (sd/mmc) Disk /dev/mmcblk0: 31116288s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 63s 2047s 1985s Free Space 1 2048s 1370111s 1368064s primary fat32 boot, lba 1370112s 31116287s 29746176s Free Space (parted) mkpart Partition type? primary/extended? primary File system type? [ext2]? ext4 Start? 1370112s End? 31116287s (parted) set Partition number? 2 Flag to Invert? lba New state? on/[off]? off (parted) print free Model: SD SC16G (sd/mmc) Disk /dev/mmcblk0: 31116288s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 63s 2047s 1985s Free Space 1 2048s 1370111s 1368064s primary fat32 boot, lba 2 1370112s 31116287s 29746176s primary ext4 (parted) quit
# mkfs.ext4 /dev/mmcblk0p2 mke2fs 1.44.6 (5-Mar-2019) /dev/mmcblk0p2 contains a swap file system labelled '_swap' Proceed anyway? (y,N) y Discarding device blocks: done Creating filesystem with 3718272 4k blocks and 930240 inodes Filesystem UUID: 6a1a0694-8196-4724-a58d-edde1f189b31 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done # mount /dev/mmcblk0p2 /mnt # tar xfz ~/pi.tgz -C /mnt --no-selinux
بعد تفريغ محتويات قسم الجذر ، حان الوقت لإجراء بعض التغييرات عليه.
تعطيل SELinux في
/ كزاز الرضع / الخ / selinux / التكوين :
SELINUX=disabled
نقوم بتحرير
/ mnt / etc / fstab ، مع ترك اثنين فقط من إدخالات القسم فيه: boot (/ boot ، دون تغيير) والجذر (قم بتغيير قيمة UUID ، والتي يمكن العثور عليها عن طريق فحص إخراج الأمر blkid على Linux):
UUID=6a1a0694-8196-4724-a58d-edde1f189b31 / ext4 defaults,noatime 0 0 UUID=6938-F4F2 /boot vfat defaults,noatime 0 0
أخيرًا ، نقوم بتغيير معلمات تمهيد kernel: تحديد الموقع الجديد لقسم الجذر ، وتعطيل إخراج معلومات تصحيح الأخطاء (اختياريًا) وحظر kernel من تعيين عناوين IPv6 على واجهات الشبكة:
# cd # umount /mnt # mount /dev/mmcblk0p1 /mnt
نأتي محتويات
/mnt/cmdline.txt إلى النموذج التالي (سطر واحد بدون الواصلة):
root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait quiet ipv6.disable_ipv6=1
الانتهاء:
# cd # umount /mnt # sync
نحن نعيد ترتيب microSD في "Malinka" ، ونشغلها ونحصل على وصول إلى الشبكة عبر ssh (root / centos).
2. تكوين CentOS
الحركات الثلاث الأولى التي لا تتزعزع:
passwd ،
yum -y update ،
إعادة التشغيل .
نعطي إدارة الشبكة إلى
networkd :
# yum install systemd-networkd # systemctl enable systemd-networkd # systemctl disable NetworkManager # chkconfig network off
قم
بإنشاء الملف (إلى جانب الدلائل)
/etc/systemd/network/eth0.network :
[Match] Name=eth0 [Network] DHCP=ipv4
نعيد تشغيل "التوت" ونحصل مجددًا على وصول الشبكة إليه عبر ssh (يمكن أن يتغير عنوان IP). لاحظ أن
/etc/resolv.conf ، الذي تم إنشاؤه مسبقًا بواسطة Network Manager ، يُستخدم. لذلك ، في حالة وجود مشاكل مع حل ، تحرير محتوياته. لن نستخدم
systemd حلها .
نزيل "الزائدة عن الحاجة" ، نصلح ونزيد من سرعة تحميل نظام التشغيل:
# systemctl set-default multi-user.target # yum remove GeoIP Network* aic* alsa* cloud-utils-growpart \ cronie* dhc* firewal* initscripts iwl* kexec* logrotate \ postfix rsyslog selinux-pol* teamd wpa_supplicant
من يحتاج إلى
cron والذي لا يهضم
مؤقتات systemd المدمجة ، يمكنه تثبيت المفقود.
/ var / log - وابحث من خلال
journalctl . إذا كنت بحاجة إلى سجل سجل (بشكل افتراضي ، يتم تخزين المعلومات فقط من لحظة بدء تشغيل النظام):
# mkdir /var/log/journal # systemd-tmpfiles --create --prefix /var/log/journal # systemctl restart systemd-journald # vi /etc/systemd/journald.conf
تعطيل استخدام IPv6 بواسطة الخدمات الأساسية (إذا لزم الأمر)/ etc / ssh / sshd_config :
AddressFamily inet
/ etc / sysconfig / chronyd :
OPTIONS="-4"
أهمية الوقت على "التوت" هو شيء مهم. نظرًا لأن "خارج الصندوق" لا تتوفر لديه القدرة على حفظ الحالة الحالية للساعة عند إعادة التشغيل ، فأنت بحاجة إلى التزامن.
لقد تم بالفعل تثبيت البرنامج الخفي الجيد والسريع لهذا -
chrony - ويبدأ تلقائيًا. يمكنك تغيير خوادم NTP إلى التالي.
/etc/chrony.conf :
server 0.ru.pool.ntp.org iburst server 1.ru.pool.ntp.org iburst server 2.ru.pool.ntp.org iburst server 3.ru.pool.ntp.org iburst
سوف نستخدم
الخدعة لتعيين المنطقة الزمنية. نظرًا لأن هدفنا هو إنشاء جهاز توجيه Wi-Fi يعمل بترددات 5 جيجا هرتز ، فإننا نستعد مقدمًا لمفاجآت
المنظم :
# yum معلومات crda
ملخص: البرنامج الخفي للامتثال التنظيمي للشبكات اللاسلكية 802.11
هذا التصميم الحاقد ، الذي يركز ، من بين أمور أخرى ، على المنطقة الزمنية ، "يحظر" استخدام (في روسيا) للترددات والقنوات 5 جيجاهرتز بأرقام "كبيرة". الحيلة هي تعيين المنطقة الزمنية دون استخدام أسماء البر الرئيسي / المدينة ، أي بدلاً من:
# timedatectl set-timezone Europe/Moscow
دنت:
# timedatectl set-timezone Etc/GMT-3
واللمسات الأخيرة في تصفيفة الشعر للنظام:
# hostnamectl set-hostname router
/root/.bash_profile :
. . . # User specific environment and startup programs export PROMPT_COMMAND="echo -n $(($(</sys/class/thermal/thermal_zone0/temp) / 1000))\'C\ " export LANG=en_US.UTF-8 export PATH=$PATH:$HOME/bin
3. إضافات CentOS
كل ما قيل أعلاه يمكن اعتباره إرشادات كاملة لتثبيت "الفانيليا" CentOS على Raspberry Pi. يجب أن يكون لديك جهاز كمبيوتر يتم إعادة تشغيله في أقل من 10 ثوانٍ ، ويستخدم أقل من 15 ميغابايت من ذاكرة الوصول العشوائي و 1.5 غيغابايت من microSD (في الواقع أقل من 1 غيغابايت بسبب عدم اكتمال / التمهيد ، لكننا سنكون صادقين في النهاية):



لتثبيت برنامج نقطة وصول Wi-Fi على هذا النظام ، ستحتاج إلى زيادة طفيفة في قدرات توزيع CentOS القياسي. بادئ ذي بدء ، "ضخ" برنامج التشغيل (البرامج الثابتة) لمحول Wi-Fi المدمج. الصفحة الرئيسية للمشروع تقول:
واي فاي على التوت 3B و 3 B +
لا يُسمح بتوزيع ملفات البرامج الثابتة Raspberry PI 3B / 3B + بواسطة CentOS Project. يمكنك استخدام المقالات التالية لفهم المشكلة والحصول على البرامج الثابتة وإعداد wifi.
ما لا يستطيع مشروع CentOS القيام به ليس ممنوعًا منا للاستخدام الشخصي. نحن نستبدل البرامج الثابتة للتوزيع في Wi-Fi في CentOS بالبرنامج المقابل من مطوري Broadcom (نفس النقط الثنائية المكروهة ...). هذا ، على وجه الخصوص ، سوف يسمح باستخدام AC في وضع نقطة الوصول.
ترقية البرامج الثابتة لشبكة Wi-Fiاكتشفنا طراز الجهاز وإصدار البرامج الثابتة الحالي:
# journalctl | grep $(basename $(readlink /sys/class/net/wlan0/device/driver)) Jan 01 04:00:03 router kernel: brcmfmac: F1 signature read @0x18000000=0x15264345 Jan 01 04:00:03 router kernel: brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006 Jan 01 04:00:03 router kernel: usbcore: registered new interface driver brcmfmac Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Mar 1 2015 07:29:38 version 7.45.18 (r538002) FWID 01-6a2c8ad4 Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 7.14.8 Compiler: 1.24.9 ClmImport: 1.24.9 Creation: 2014-09-02 03:05:33 Inc Data: 7.17.1 Inc Compiler: 1.26.11 Inc ClmImport: 1.26.11 Creation: 2015-03-01 07:22:34
نرى أن إصدار البرنامج الثابت هو 7.45.18 بتاريخ 03/01/2015 ، ونتذكر مجموعة الأرقام التالية:
43455 (brcmfmac43455-sdio.bin).
قم بتنزيل الصورة الحالية لـ Raspbian . يمكن للأشخاص كسول كتابة الصورة إلى microSD ومن هناك التقاط الملفات مع البرامج الثابتة. ويمكنك تحميل القسم الجذر للصورة في Linux ونسخ القسم الذي تحتاجه من هناك:
# wget https://downloads.raspberrypi.org/raspbian_lite_latest # unzip -p raspbian_lite_latest > raspbian.img # fdisk -l raspbian.img Disk raspbian.img: 2 GiB, 2197815296 bytes, 4292608 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x17869b7d Device Boot Start End Sectors Size Id Type raspbian.img1 8192 532480 524289 256M c W95 FAT32 (LBA) raspbian.img2 540672 4292607 3751936 1.8G 83 Linux # mount -t ext4 -o loop,offset=$((540672 * 512)) raspbian.img /mnt # cp -fv /mnt/lib/firmware/brcm/*43455* ... '/mnt/lib/firmware/brcm/brcmfmac43455-sdio.bin' -> ... '/mnt/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob' -> ... '/mnt/lib/firmware/brcm/brcmfmac43455-sdio.txt' -> ... # umount /mnt
يجب نسخ ملفات البرامج الثابتة الناتجة لمحول Wi-Fi باستبدال "التوت" في الدليل
/ usr / lib / firmware / brcm /نعيد تشغيل جهاز التوجيه في المستقبل ونبتسم بدلاً من ذلك:
# journalctl | grep $(basename $(readlink /sys/class/net/wlan0/device/driver)) Jan 01 04:00:03 router kernel: brcmfmac: F1 signature read @0x18000000=0x15264345 Jan 01 04:00:03 router kernel: brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006 Jan 01 04:00:03 router kernel: usbcore: registered new interface driver brcmfmac Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Feb 27 2018 03:15:32 version 7.45.154 (r684107 CY) FWID 01-4fbe0b04 Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 9.10.105 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2018-03-09 18:56:28
الإصدار: 7.45.154 من 02.27.2018.
وبالطبع EPEL:
# cat > /etc/yum.repos.d/epel.repo << EOF [epel] name=Epel rebuild for armhfp baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/ enabled=1 gpgcheck=0 EOF # yum clean all # rm -rfv /var/cache/yum # yum update
4. تكوين الشبكة والتحديات القادمة
كما اتفقنا أعلاه ، يتم توصيل "Malinka" بواسطة "سلك" إلى الشبكة المحلية. لنفترض أن مزودًا يوفر الوصول إلى الإنترنت بنفس الطريقة تمامًا: يتم إصدار عنوان على شبكة عامة بشكل حيوي بواسطة خادم DHCP (يمكن ربطه بـ MAC). في هذه الحالة ، بعد الإعداد النهائي لـ "التوت" ، يكفي "توصيل" كبل الموفر به وكل شيء جاهز. إذن باستخدام
systemd-networkd هو موضوع مقال منفصل ولا يعتبر هنا.
تعد واجهة (واجهات) Wi-Fi في Raspberry شبكة محلية ، ومحول Ethernet المدمج (eth0) خارجي. نحن نرقم الشبكة المحلية بشكل ثابت ، على سبيل المثال: 192.168.0.0/24. عنوان مالينكا: 192.168.0.1. في شبكة خارجية (الإنترنت) سيعمل خادم DHCP.
مشكلة توحيد التسمية والمبرمج الغواتيمالي الشهير هما مشكلتان تنتظران كل من يشارك في تكوين واجهات وخدمات الشبكة في توزيعات systemd.
الفوضى الموازية (الانحدار الغنائي)جعل Lennart Pottering برنامجه systemd جيدًا. يقوم هذا النظام بإطلاق برامج أخرى بسرعة لدرجة أنه ، بعد أن لم يتح له الوقت الكافي للوصول إلى رشدهم من صافرة الحكم ، يتعثر ويسقط في البداية دون أن يبدأ مساره الخاص بالعقبات.
ولكن على محمل الجد ، فإن الموازنة القوية للعمليات التي تم إطلاقها في بداية systemd-OS هي نوع من "جسر الحمير" لبرامج تشغيل LSB التسلسلية المختبرة. لحسن الحظ ، تبين أن عملية "الفوضى الموازية" هذه بسيطة ، على الرغم من أن الحقيقة ليست واضحة دائمًا.
نخلق واجهات جسر افتراضية بأسماء ثابتة:
lan و
wan . سنقوم بربط محول (مهايئات) Wi-Fi بالمحول الأول ، و eth0 من "التوت" بالآخر.
/etc/systemd/network/lan.netdev :
[NetDev] Name=lan Kind=bridge
/etc/systemd/network/lan.network :
[Match] Name=lan [Network] Address=192.168.0.1/24 IPForward=yes
/etc/systemd/network/wan.netdev :
[NetDev] Name=wan Kind=bridge #MACAddress=xx:xx:xx:xx:xx:xx
/etc/systemd/network/wan.network :
[Match] Name=wan [Network] DHCP=ipv4 IPForward=yes
IPForward = yes يلغي الحاجة إلى التلميح إلى النواة عبر sysctl لتمكين التوجيه.
MACAddress = uncomment وتغيير إذا لزم الأمر.
أولاً ، نحن نربط eth0. تذكر "مشكلة التوحيد" واستخدم فقط عنوان MAC الخاص بهذه الواجهة ، والذي يمكنك اكتشافه ، على سبيل المثال ، مثل هذا:
# cat /sys/class/net/eth0/address
إنشاء
/etc/systemd/network/eth.network :
[Match] MACAddress=b8:27:eb:xx:xx:xx [Network] Bridge=wan
احذف ملف التكوين eth0 السابق ، وأعد تشغيل "التوت" واحصل على وصول إلى الشبكة (من المرجح أن يتغير عنوان IP):
# rm -fv /etc/systemd/network/eth0.network # reboot
5. DNSMASQ
لتصنيع نقاط وصول Wi-Fi ، لم يتم اختراع شيء أفضل من الزوجين
الحلوين من
dnsmasq +
hostapd . في رأيي
إذا نسيت أي شخص ، ثم ...hostapd هو الشيء الذي يدير محولات Wi-Fi (على وجه الخصوص ، سيحتاج الأمر إلى ربطها بالشبكة الافتراضية
لتوت العليق) ، فهو يرخص ويسجل العملاء اللاسلكيين.
dnsmasq - تكوين مكدس شبكة العملاء: يوفر عناوين IP وخوادم DNS وبوابة افتراضية وما شابه ذلك.
نبدأ مع dnsmasq:
# yum install dnsmasq
قالب
/etc/resolv.conf :
nameserver 1.1.1.1 nameserver 1.0.0.1 nameserver 8.8.8.8 nameserver 8.8.4.4 nameserver 77.88.8.8 nameserver 77.88.8.1 domain router.local search router.local
تحريره لترضيك.
أضيق
الحدود /
الخ /
dnsmasq.conf :
domain-needed bogus-priv interface=lan bind-dynamic expand-hosts domain=# dhcp-range=192.168.0.100,192.168.0.199,255.255.255.0,24h conf-dir=/etc/dnsmasq.d
"السحر" هنا هو المعلمة
المرتبطة الديناميكية ، والتي تخبر dnsmasq daemon أن تنتظر
الواجهة = lan لتظهر في النظام ، وليس للإغماء من أي هجوم بالوحدة الفخر بعد البداية.
# systemctl enable dnsmasq # systemctl start dnsmasq; journalctl -f
6. HOSTAPD
أخيرًا ، تكوينات hostapd السحرية. ليس لدي أدنى شك في أن شخصًا ما يقرأ هذه المقالة بحثًا عن هذه الخطوط العزيزة على وجه التحديد.
قبل تثبيت hostapd ، تحتاج إلى التعامل مع "مشكلة التوحيد". يمكن لمحول Wi-Fi المدمج في wlan0 تغيير اسمه بسهولة إلى wlan1 عند توصيل أجهزة Wi-Fi USB إضافية. لذلك ، سوف نقوم بإصلاح أسماء الواجهات بالطريقة التالية: سنأتي بأسماء فريدة من المحولات (اللاسلكية) ونربطها بعناوين MAC.
لمحول Wi-Fi المدمج ، والذي لا يزال wlan0:
# cat /sys/class/net/wlan0/address b8:27:eb:xx:xx:xx
إنشاء
/etc/systemd/network/wl0.link :
[Match] MACAddress=b8:27:eb:xx:xx:xx [Link] Name=wl0
الآن سنكون متأكدين من أن
wl0 هو شبكة Wi-Fi المدمجة. نحن إعادة تشغيل "التوت" لرؤية هذا.
تعيين:
# yum install hostapd wireless-tools
ملف التكوين
/etc/hostapd/hostapd.conf :
ssid=rpi wpa_passphrase=1234567890 channel=36 country_code=US interface=wl0 bridge=lan driver=nl80211 auth_algs=1 wpa=2 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP macaddr_acl=0 hw_mode=a wmm_enabled=1 # N ieee80211n=1 require_ht=1 ht_capab=[MAX-AMSDU-3839][HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40] # AC ieee80211ac=1 require_vht=1 ieee80211d=0 ieee80211h=0 vht_capab=[MAX-AMSDU-3839][SHORT-GI-80] vht_oper_chwidth=1 vht_oper_centr_freq_seg0_idx=42
دون أن ننسى
GKChP لمدة دقيقة ، فإننا نغير المعلمات التي نحتاجها
ونبحث يدويًا عن الأداء:
# hostapd /etc/hostapd/hostapd.conf
ستبدأ hostapd بشكل تفاعلي ، وترجمة حالتها إلى وحدة التحكم. في حالة عدم وجود أخطاء ، يمكن بالفعل توصيل العملاء الذين يدعمون وضع AC بنقطة الوصول. لإيقاف hostapd - Ctrl-C.
يبقى لتشمل hostapd في بدء تشغيل النظام. إذا كنت تتصرف بشكل قياسي (systemctl enable hostapd) ، فبعد إعادة التشغيل التالية ، يمكنك الحصول على "شيطان في دم" شيطان مع تشخيص "
واجهة wl0 غير موجودة ". نتيجة "الفوضى المتوازية" ، انتهى hostapd بشكل أسرع من العثور على محول لاسلكي.
الإنترنت مليء بالأدوية: من المهلة القسرية قبل بدء البرنامج الخفي (لبضع دقائق) ، إلى الخفي الآخر الذي يراقب ظهور الواجهة و (إعادة) يبدأ لوحة المضيف. الحلول تعمل تمامًا ، لكنها قبيحة بشكل رهيب. نحن ندعو إلى مساعدة النظام العظيم من خلال "أهدافه" و "
المهام " "التبعيات".
انسخ ملف خدمة التوزيع إلى
/etc/systemd/system/hostapd.service :
# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system
وإحضار محتوياته إلى النموذج التالي:
[Unit] Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator After=sys-subsystem-net-devices-wl0.device BindsTo=sys-subsystem-net-devices-wl0.device [Service] Type=forking PIDFile=/run/hostapd.pid ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd.conf -P /run/hostapd.pid -B [Install] WantedBy=sys-subsystem-net-devices-wl0.device
يتمثل سحر ملف الخدمة المحدّث في ربط hostapd ديناميكيًا بهدف جديد - واجهة wl0. عندما تظهر الواجهة ، يبدأ البرنامج الخفي ؛ وعندما يختفي ، يتوقف. كل شيء على الإنترنت - دون إعادة تشغيل النظام. لا سيما هذه التقنية ستكون مفيدة عند الاتصال بمحول USB واي فاي "التوت".
الآن يمكنك:
# systemctl enable hostapd # reboot
7. IPTABLES
"شتا ؟؟؟" © نعم ، نعم! لا
systemd . لا يجمع حديثًا (في شكل
firewalld ) ، وهو ما يفعل الشيء نفسه في النهاية.
نحن نستخدم
iptables القديمة الجيدة ، التي ستقوم خدماتها بعد بدايتها بتحميل قواعد الشبكة على النواة وإغلاقها بهدوء دون أن تبقى مقيمة وبدون استهلاك الموارد. يحتوي Systemd على
IPMasquerade = أنيق ، لكننا
سنستمر في تكليف iptables بترجمة العنوان (NAT) وجدار الحماية.
تعيين:
# yum install iptables-services # systemctl enable iptables ip6tables
أفضل تخزين تكوين iptables كبرنامج نصي (مثال):
ننفذ النص أعلاه ونفقد القدرة على إنشاء روابط ssh سلكية جديدة مع "Malinka". هذا صحيح ، لقد صنعنا جهاز توجيه Wi-Fi ، حيث يُحظر الوصول إلى "عبر الإنترنت" افتراضيًا - الآن فقط "عبر الهواء". نقوم بتوصيل كابل مزود إيثرنت وبدء تصفح!
8. المكافأة: + 2.4 جيجا هرتز
عندما قمت بتجميع أول جهاز توجيه لـ Raspberry من الرسم الموضح أعلاه ، اكتشفت في مزرعتي عددًا من الأدوات الذكية ، نظرًا لقيود التصميم الخاصة بها ، لم تتمكن شبكة Wi-Fi من رؤية "التوت" على الإطلاق. لم تكن عملية إعادة تكوين جهاز التوجيه للعمل في 802.11b / g / n مثل الرياضي ، لأن السرعة القصوى "عبر الأثير" في هذه الحالة لم تتجاوز 40 ميغابت في الثانية ، ويوفر موفر خدمة الإنترنت المفضل لدي 100 (عبر الكابل).
في الواقع ، تم بالفعل اختراع حل للمشكلة: واجهة Wi-Fi ثانية تعمل بسرعة 2.4 جيجاهرتز ونقطة وصول ثانية. في أقرب كشك ، اشتريت ليست الأولى ، ولكن الثانية USB Wi-Fi "صفارة" التي جاءت لي. تعذب البائع من أسئلة حول الشرائح والتوافق مع Linux ARM-cores وإمكانية العمل في وضع AP (بدأ لأول مرة).
نقوم بتكوين "صفارة" عن طريق القياس مع محول Wi-Fi المدمج.
أولاً ، قم بإعادة تسميته إلى
wl1 :
# cat /sys/class/net/wlan0/address b0:6e:bf:xx:xx:xx
/etc/systemd/network/wl1.link :
[Match] MACAddress=b0:6e:bf:xx:xx:xx [Link] Name=wl1
سنعهد بإدارة واجهة Wi-Fi الجديدة إلى برنامج خفي hostapd منفصل ، والذي سيبدأ ويتوقف اعتمادًا على وجود "صفارة" محددة بدقة في النظام: wl1.
ملف التكوين
/etc/hostapd/hostapd2.conf :
ssid=rpi2 wpa_passphrase=1234567890 #channel=1 #channel=6 channel=11 interface=wl1 bridge=lan driver=nl80211 auth_algs=1 wpa=2 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP macaddr_acl=0 hw_mode=g wmm_enabled=1 # N ieee80211n=1 require_ht=1 ht_capab=[HT40][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]
تعتمد محتويات هذا الملف مباشرة على طراز مهايئ USB Wi-Fi ، وبالتالي فإن نسخة / لصق تافهة يمكن أن تخذلك.
انسخ ملف خدمة التوزيع إلى
/etc/systemd/system/hostapd2.service :
# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system/hostapd2.service
وإحضار محتوياته إلى النموذج التالي:
[Unit] Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator After=sys-subsystem-net-devices-wl1.device BindsTo=sys-subsystem-net-devices-wl1.device [Service] Type=forking PIDFile=/run/hostapd2.pid ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd2.conf -P /run/hostapd2.pid -B [Install] WantedBy=sys-subsystem-net-devices-wl1.device
يبقى تضمين مثيل جديد من hostapd:
# systemctl enable hostapd2
هذا كل شئ! اسحب الصفارة والتوت نفسه ، وانظر إلى الشبكات اللاسلكية المحيطة.
وأخيرًا ، أرغب في التحذير من جودة مهايئ USB Wi-Fi ومورد طاقة التوت. متصلة "صافرة ساخنة" ، في بعض الأحيان يمكن أن يسبب "تعليق التوت" بسبب مشاكل كهربائية قصيرة الأجل.