Raspberry Pi + CentOS = Wi-Fi መገናኛ ነጥብ (ወይም የራስበሪ ራውተር ከቀይ ኮፍያ ጋር)

Raspberry single-board PC ላይ በመመስረት የWi-Fi መዳረሻ ነጥቦችን ስለመፍጠር በበይነመረቡ ላይ ከፍተኛ መጠን ያለው መረጃ አለ። እንደ ደንቡ ይህ ማለት የራስፕቤሪን ተወላጅ የሆነውን የ Raspbian ስርዓተ ክወና መጠቀም ማለት ነው.

የ RPM-ተኮር ስርዓቶች ተከታይ በመሆኔ፣ በዚህ ትንሽ ተአምር ማለፍ አልቻልኩም እና የምወደውን CentOS በእሱ ላይ መሞከር አልቻልኩም።

ጽሑፉ በ CentOS ስርዓተ ክወና ላይ በመመስረት 5GHz/AC Wi-Fi ራውተር ከ Raspberry Pi 3 Model B+ ለመስራት መመሪያዎችን ይሰጣል። ብዙ መደበኛ ነገር ግን ብዙም የማይታወቁ ብልሃቶች ይኖራሉ፣ እና እንደ ጉርሻ - ተጨማሪ የዋይፋይ መሳሪያዎችን ከ Raspberry ጋር የማገናኘት ስዕል፣ ይህም በአንድ ጊዜ በበርካታ ሁነታዎች (2,4+5GHz) እንዲሰራ ያስችለዋል።

Raspberry Pi + CentOS = Wi-Fi መገናኛ ነጥብ (ወይም የራስበሪ ራውተር ከቀይ ኮፍያ ጋር)
(በነጻ የሚገኙ ምስሎች ድብልቅ)

አንዳንድ የጠፈር ፍጥነቶች እንደማይሰሩ ወዲያውኑ እናስተውል. ከ Raspberry ውስጥ ቢበዛ 100 ሜጋ ባይት በአየር ላይ እጨምቃለሁ፣ እና ይህ የበይነመረብ አቅራቢዬን ፍጥነት ይሸፍናል። በንድፈ ሀሳብ ግማሽ ጊጋቢት በ N ላይ እንኳን ማግኘት ከቻሉ ለምን እንደዚህ ያለ ቀርፋፋ ኤሲ ያስፈልግዎታል? ይህንን ጥያቄ እራስዎን ከጠየቁ, ከዚያም ከስምንት ውጫዊ አንቴናዎች ጋር እውነተኛ ራውተር ለመግዛት ወደ መደብሩ ይሂዱ.

0. ምን ያስፈልግዎታል

  • በእውነቱ "የራስበሪ ምርት" እራሱ ትልቅ ነው-Pi 3 Model B+ (የተፈለጉትን የ 5GHz ፍጥነቶች እና ሰርጦችን ለማሳካት);
  • ጥሩ ማይክሮ ኤስዲ > = 4GB;
  • የስራ ቦታ ከሊኑክስ እና ማይክሮ ኤስዲ አንባቢ/ጸሐፊ ጋር;
  • በሊኑክስ ውስጥ በቂ ክህሎቶች መገኘት, ጽሑፉ ለሰለጠነ ጌክ ነው;
  • ባለገመድ አውታረ መረብ (eth0) በ Raspberry እና Linux መካከል ያለው ግንኙነት፣ የDHCP አገልጋይ በአከባቢው አውታረመረብ ላይ እና ከሁለቱም መሳሪያዎች የበይነመረብ ተደራሽነት።

በመጨረሻው ነጥብ ላይ ትንሽ አስተያየት. "የትኛው መጀመሪያ የመጣው እንቁላል ወይስ ..." ምንም የበይነመረብ መዳረሻ መሳሪያዎች በሌሉበት የ Wi-Fi ራውተር እንዴት እንደሚሰራ? ይህን አዝናኝ ልምምድ ከጽሁፉ ወሰን ውጪ እንተወውና በቀላሉ Raspberry ከአካባቢው አውታረመረብ ጋር በሽቦ የተገናኘ እና የኢንተርኔት አገልግሎት እንዳለው እናስብ። በዚህ ሁኔታ, "raspberry" ለማዘጋጀት ተጨማሪ ቴሌቪዥን እና ማኒፑለር አያስፈልገንም.

1. CentOS ን ይጫኑ

የፕሮጀክት መነሻ ገጽ

ይህንን ጽሑፍ በሚጽፉበት ጊዜ በመሣሪያው ላይ ያለው የ CentOS አሂድ ስሪት 32-ቢት ነው። የሆነ ቦታ በአለም አቀፍ ድር ላይ እንደዚህ ያሉ ስርዓተ ክወናዎች በ64-ቢት ARM አርክቴክቸር ላይ ያለው አፈጻጸም በ20% ቀንሷል የሚል አስተያየት አጋጥሞኛል። ይህን ቅጽበት ያለ አስተያየት እተወዋለሁ።

በሊኑክስ ላይ አነስተኛውን ምስል በከርነል ያውርዱ"-RaspberryPI-"እና ወደ ማይክሮ ኤስዲ ይፃፉ:

# xzcat CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz | 
  dd of=/dev/mmcblk0 bs=4M
# sync

ምስሉን መጠቀም ከመጀመራችን በፊት የ SWAP ክፋይን ከእሱ እናስወግደዋለን, ሥሩን ወደ ሙሉ የድምጽ መጠን እናሰፋለን እና SELinuxን እናስወግዳለን. አልጎሪዝም ቀላል ነው በሊኑክስ ላይ የስር መሰረቱን ይቅዱ ፣ ከመጀመሪያው (/ቡት) በስተቀር ሁሉንም ክፍልፋዮች ከማይክሮ ኤስዲ ይሰርዙ ፣ አዲስ ስር ይፍጠሩ እና ይዘቱን ከቅጂው ይመልሱ።

አስፈላጊ ድርጊቶች ምሳሌ (ከባድ የኮንሶል ውፅዓት)

# 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ን አሰናክል /mnt/etc/selinux/config:

SELINUX=disabled

ማረም /mnt/etc/fstabበውስጡ ስለ ክፍልፋዮች ሁለት ግቤቶችን ብቻ በመተው ቡት (/ቡት ፣ ምንም ለውጦች የሉም) እና ስር (የ UUID እሴትን እንለውጣለን ፣ በሊኑክስ ላይ የ blkid ትእዛዝን ውጤት በማጥናት ሊገኝ ይችላል)

UUID=6a1a0694-8196-4724-a58d-edde1f189b31  /     ext4    defaults,noatime 0 0
UUID=6938-F4F2                             /boot vfat    defaults,noatime 0 0

በመጨረሻም የከርነል ማስነሻ መለኪያዎችን እንለውጣለን-ለሥሩ ክፍልፍል አዲስ ቦታ እንገልጻለን ፣የማረሚያ መረጃን ውጤት ያሰናክላል እና (በአማራጭ) ከርነል በአውታረ መረብ በይነገጾች ላይ 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

ማይክሮ ኤስዲውን ወደ “ራስበሪ” እናስተካክለዋለን፣ አስነሳነው እና በ ssh (root/centos) በኩል የአውታረ መረብ መዳረሻ እናገኛለን።

2. CentOS በማዘጋጀት ላይ

የመጀመሪያዎቹ ሶስት የማይናወጡ እንቅስቃሴዎች፡- የይለፍ ቃል, yum -y ዝማኔ, ዳግም አስነሳ.

የኔትወርክ አስተዳደርን እንሰጣለን በአውታረ መረብ የተገናኘ:

# 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

"raspberry" ን እንደገና አስነሳነው እና እንደገና በ ssh በኩል ወደ እሱ የአውታረ መረብ መዳረሻ እናገኛለን (የአይፒ አድራሻው ሊለወጥ ይችላል)። ጥቅም ላይ ለሚውለው ትኩረት ይስጡ /etc/resolv.confቀደም ሲል በኔትወርክ አስተዳዳሪ የተፈጠረ። ስለዚህ, በመፍታት ላይ ችግሮች ካጋጠሙ, ይዘቱን ያርትዑ. ተጠቀም በስርዓት የተፈታ አንሆንም።

የስርዓተ ክወናውን “አላስፈላጊ” እናስወግደዋለን፣ መጠገን እና መጫን እናፋጥናለን።

# 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

ማን ያስፈልገዋል በመርሃግብሩ እና አብሮ የተሰራውን የማይፈጭ የስርዓት ጊዜ ቆጣሪዎች, የጎደለውን ማቋቋም ይችላል. / 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"

በ "raspberry" ላይ ያለው የጊዜ አግባብነት አስፈላጊ ነገር ነው. ከሳጥኑ ውስጥ እንደገና ሲነሳ የሰዓቱን ወቅታዊ ሁኔታ ለመቆጠብ ምንም የሃርድዌር ችሎታ ስለሌለ ማመሳሰል ያስፈልጋል። ለዚህ በጣም ጥሩ እና ፈጣን ዴሞን ነው። ታሪክ - አስቀድሞ ተጭኗል እና በራስ-ሰር ይጀምራል። የኤንቲፒ አገልጋዮችን ወደ ቅርብ ወደሆኑ መቀየር ይችላሉ።

/ወዘተ/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

የሰዓት ሰቅ ለማዘጋጀት እንጠቀማለን ብልሃት. ግባችን ዋይ ፋይ ራውተር በ5GHz ድግግሞሾችን መፍጠር ስለሆነ፣ለአስደናቂ ነገሮች አስቀድመን እንዘጋጃለን። ተቆጣጣሪ:

# yum መረጃ crda
ማጠቃለያ፡ ለ 802.11 ሽቦ አልባ አውታረመረብ የቁጥጥር ተገዢነት ዴሞን

ይህ ክፉ ንድፍ በጊዜ ሰቅ ላይ የተመሰረተው የ 5GHz ድግግሞሾችን እና ሰርጦችን "ከፍተኛ" ቁጥሮችን (በሩሲያ ውስጥ) መጠቀምን "ይከለከላል". ዘዴው የአህጉራት/ከተሞችን ስም ሳንጠቀም የሰዓት ሰቅ ማዘጋጀት ነው፡- ማለትም፡-

# timedatectl set-timezone Europe/Moscow

እኛ ተጫንን:

# timedatectl set-timezone Etc/GMT-3

እና ለስርዓቱ የፀጉር አሠራር የመጨረሻዎቹ ንክኪዎች-

# hostnamectl set-hostname router

/ሼር/.bash_profile:

. . .

# User specific environment and startup programs

export PROMPT_COMMAND="vcgencmd measure_temp"
export LANG=en_US.UTF-8
export PATH=$PATH:$HOME/bin

3. CentOS ተጨማሪዎች

ከላይ የተነገረው ነገር ሁሉ Raspberry Pi ላይ “ቫኒላ” CentOS ን ለመጫን የተሟላ መመሪያ ተደርጎ ሊወሰድ ይችላል። ከ10 ሰከንድ ባነሰ ጊዜ ውስጥ (እንደገና) ቡት የሚነሳ፣ ከ15 ሜጋባይት ራም ያነሰ እና 1.5 ጊጋባይት ማይክሮ ኤስዲ የሚጠቀም (በእውነቱ ከ 1 ጊጋባይት ባላሟላ/ቡት ምክንያት ከ XNUMX ጊጋባይት ያነሰ ነው ፣ ግን እውነቱን እንነጋገር) የሚለውን ፒሲ ማግኘት አለቦት።

በዚህ ስርዓት ላይ የWi-Fi መዳረሻ ነጥብ ሶፍትዌርን ለመጫን የመደበኛውን የ CentOS ስርጭትን አቅም በትንሹ ማስፋት ያስፈልግዎታል። በመጀመሪያ ፣ አብሮ የተሰራውን የ Wi-Fi አስማሚን ሾፌር (firmware) እናሻሽለው። የፕሮጀክቱ መነሻ ገጽ እንዲህ ይላል:

ዋይፋይ በ Raspberry 3B እና 3B+ ላይ

Raspberry PI 3B/3B+ firmware ፋይሎች በCentOS ፕሮጀክት እንዲሰራጭ አይፈቀድላቸውም። ጉዳዩን ለመረዳት፣ firmware ን ለማግኘት እና wifi ን ለማዘጋጀት የሚከተሉትን መጣጥፎች መጠቀም ይችላሉ።

ለ CentOS ፕሮጀክት የተከለከለው ለእኛ ለግል ጥቅም አይከለከልም። የስርጭት Wi-Fi firmwareን በCentOS ውስጥ ከBroadcom ገንቢዎች (እነዚያ የተጠሉ ሁለትዮሽ ብሎቦች...) በተዛመደው እንተካለን። ይህ, በተለይም, በመዳረሻ ነጥብ ሁነታ ላይ ACን እንዲጠቀሙ ይፈቅድልዎታል.

የ Wi-Fi firmware ማሻሻልየመሳሪያውን ሞዴል እና የአሁኑን የጽኑ ትዕዛዝ ስሪት ይወቁ፡

# 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/01.03.2015/XNUMX የጽኑ ትዕዛዝ ስሪት XNUMX መሆኑን እናያለን እና የሚከተሉትን የቁጥሮች ስብስብ ያስታውሱ። 43455 (brcmfmac43455-sdio.bin).

የአሁኑን የ Raspbian ምስል አውርድ. ሰነፍ ሰዎች ምስሉን ወደ ማይክሮ ኤስዲ መጻፍ እና ፋይሎቹን ከ firmware ጋር ከዚያ መውሰድ ይችላሉ። ወይም የምስሉን ስርወ ክፋይ በሊኑክስ ውስጥ መጫን እና የሚፈልጉትን ከዚያ መቅዳት ይችላሉ፡

# 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 አስማሚ firmware ፋይሎች መቅዳት እና በ"raspberry" ወደ ማውጫው መተካት አለባቸው። /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 ቀን 27.02.2018/XNUMX/XNUMX.

እና በእርግጥ 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. የአውታረ መረብ ውቅር እና ፈተናዎች ወደፊት

ከላይ እንደተስማማነው, "raspberry" በ "ሽቦ" ከአካባቢያዊ አውታረመረብ ጋር ተያይዟል. አቅራቢው የበይነመረብ መዳረሻን በተመሳሳይ መንገድ እንደሚሰጥ እናስብ፡ በህዝብ አውታረመረብ ላይ ያለው አድራሻ በተለዋዋጭነት በ DHCP አገልጋይ (ምናልባትም ከ MAC ማሰሪያ ጋር) ይሰጣል። በዚህ ሁኔታ, የ Raspberry የመጨረሻ ዝግጅት ከተጠናቀቀ በኋላ የአቅራቢውን ገመድ "መሰካት" ያስፈልግዎታል እና ጨርሰዋል. በመጠቀም ፍቃድ systemd-አውታረ መረብ - የተለየ ጽሑፍ ርዕስ እና እዚህ አልተብራራም.

Raspberry's Wi-Fi በይነገጽ(ዎች) የአካባቢ አውታረ መረብ ነው፣ እና አብሮ የተሰራው የኤተርኔት አስማሚ (eth0) ውጫዊ ነው። የአካባቢውን አውታረመረብ በስታቲስቲክስ ቁጥር እንይ፡ ለምሳሌ፡ 192.168.0.0/24። Raspberry አድራሻ፡ 192.168.0.1. የDHCP አገልጋይ በውጫዊ አውታረመረብ (ኢንተርኔት) ላይ ይሰራል።

የወጥነት ችግር መሰየም и ታዋቂ የጓቲማላ ፕሮግራመር - በስርዓት ስርጭቶች ውስጥ የአውታረ መረብ በይነገጽ እና አገልግሎቶችን የሚያዋቅር ማንኛውም ሰው የሚጠብቁ ሁለት ችግሮች።

ትይዩ ትርምስ (የግጥም መረበሽ)Lennart Pottering የራሱን ፕሮግራም አዘጋጅቷል። ስርዓት በጣም ጥሩ. ይህ ስርዓት ሌሎች ፕሮግራሞችን በፍጥነት ያስጀምራል ፣ከዳኛው የፉጨት ምት ለማገገም ጊዜ ሳያገኙ ፣እንቅፋት መንገዱን እንኳን ሳይጀምሩ ገና ሲጀምሩ ተሰናክለው ይወድቃሉ።

ነገር ግን በቁም ነገር፣ በስርዓተ ክወናው ጅምር ላይ የተጀመሩ ሂደቶች ኃይለኛ ትይዩነት ለዘመናት ተከታታይ የኤልኤስቢ ስፔሻሊስቶች “የአህያ ድልድይ” ዓይነት ነው። እንደ እድል ሆኖ፣ ወደዚህ “ትይዩ ትርምስ” ሥርዓት ማምጣት ቀላል ሆኖ ተገኝቷል፣ ምንም እንኳን ሁልጊዜ ግልጽ ባይሆንም።

ከቋሚ ስሞች ጋር ሁለት ምናባዊ ድልድይ መገናኛዎችን እንፈጥራለን- LAN и wan. የWi-Fi አስማሚን (ዎች) ከመጀመሪያው፣ እና eth0 “raspberry” ከሁለተኛው ጋር እናገናኛለን።

/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=አዎ አቅጣጫውን ለማንቃት በ sysctl በኩል ወደ ከርነል ፍንጭ የመስጠትን አስፈላጊነት ያስወግዳል።
MACAddress= አስተያየት አንስጥ እና አስፈላጊ ከሆነ እንለውጥ።

በመጀመሪያ 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 ሰርዘነዋል፣ Raspberry ን እንደገና አስነሳነው እና ወደ እሱ የአውታረ መረብ መዳረሻ አግኝተናል (የአይፒ አድራሻው ብዙ ጊዜ ሊቀየር ይችላል)

# rm -fv /etc/systemd/network/eth0.network
# reboot

5.DNSMASQ

የWi-Fi መዳረሻ ነጥቦችን ለመስራት፣ ጣፋጭ ጥንዶችን የሚያሸንፍ ምንም ነገር የለም። ዲንስማስክ + hostapd እስካሁን አልገባኝም። አንደኔ ግምት.

ማንም የረሳው ካለ ታዲያ...hostapd - ይህ የ Wi-Fi አስማሚዎችን የሚቆጣጠረው ነገር ነው (በተለይም እነሱን ወደ ምናባዊው ማገናኘት ይንከባከባል) LAN "raspberries"), የገመድ አልባ ደንበኞችን ፍቃድ ይሰጣል እና ይመዘግባል.

ዲንስማስክ - የደንበኞችን የአውታረ መረብ ቁልል ያዋቅራል፡ የአይፒ አድራሻዎች፣ የዲኤንኤስ አገልጋዮች፣ ነባሪ መግቢያ እና ተመሳሳይ ደስታዎች።

በ 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 በስርዓቱ ላይ እስኪታይ ድረስ እንዲጠብቅ ይነግረዋል በይነገጽ = ላን, እና ከመጀመሪያው በኋላ በኩራት የብቸኝነት ስሜት አይታክቱ.

# systemctl enable dnsmasq
# systemctl start dnsmasq; journalctl -f

6. HOSTAPD

እና በመጨረሻም ፣ አስማታዊው hostapd ውቅሮች። አንድ ሰው እነዚህን ውድ መስመሮች በትክክል ለመፈለግ ይህን ጽሑፍ እያነበበ እንደሆነ አልጠራጠርም።

hostapd ከመጫንዎ በፊት "የወጥነት ችግር" ማሸነፍ ያስፈልግዎታል. አብሮ የተሰራው የWi-Fi አስማሚ wlan0 ተጨማሪ የዩኤስቢ ዋይፋይ መሳሪያዎችን ሲያገናኝ በቀላሉ ስሙን ወደ wlan1 ሊለውጠው ይችላል። ስለዚህ, የበይነገጽ ስሞችን በሚከተለው መንገድ እናስተካክላለን: ለ (ገመድ አልባ) አስማሚዎች ልዩ ስሞችን እናመጣለን እና ከ 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 ነው። ይህንን ለማረጋገጥ Raspberry ን ዳግም አስነሳነው።

ጫን ፦

# 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

ለአፍታ ሳትረሳ የመንግስት የአደጋ ጊዜ ኮሚቴ, የምንፈልጋቸውን መለኪያዎች ይለውጡ እና ተግባራዊነቱን እራስዎ ያረጋግጡ:

# hostapd /etc/hostapd/hostapd.conf

hostapd ሁኔታውን ወደ ኮንሶሉ በማሰራጨት በይነተገናኝ ሁነታ ይጀምራል። ምንም ስህተቶች ከሌሉ የ AC ሁነታን የሚደግፉ ደንበኞች ከመድረሻ ነጥቡ ጋር መገናኘት ይችላሉ. hostapd ለማቆም - Ctrl-C.

የሚቀረው በስርዓት ጅምር ውስጥ hostapd ን ማንቃት ነው። መደበኛውን ነገር ካደረጉ (systemctl ን አስተናጋጅ ሁን) ፣ ከዚያ ከሚቀጥለው ዳግም ማስነሳት በኋላ ጋኔን በምርመራው “በደም ውስጥ ይንከባለል” ማግኘት ይችላሉ ።በይነገጽ wl0 አልተገኘም።". በ“ትይዩ ትርምስ” የተነሳ ሆስተፕድ የጀመረው ከርነል ሽቦ አልባ አስማሚውን ካገኘው በበለጠ ፍጥነት ነበር።

በይነመረቡ በመድሀኒት የተሞላ ነው፡ ዴሞንን ከመጀመርዎ በፊት ከግዳጅ ጊዜ ማብቂያ (በርካታ ደቂቃዎች)፣ የበይነገፁን ገጽታ የሚከታተል ሌላ ዴሞን እና (እንደገና) አስተናጋጅ ፓድ ይጀምራል። መፍትሄዎች በጣም ሊሰሩ የሚችሉ ናቸው, ግን በጣም አስቀያሚ ናቸው. ታላቁን ለእርዳታ እንጠይቃለን። ስርዓት ከ "ግቦቹ" እና "ተግባራት" እና "ጥገኛዎች" ጋር.

የማከፋፈያ አገልግሎት ፋይሉን ወደዚህ ይቅዱ /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 በይነገጽ። በይነገጹ ሲታይ ዴሞን ይጀምራል፤ ሲጠፋ ይቆማል። እና ይሄ ሁሉም በመስመር ላይ ነው - ስርዓቱን እንደገና ሳያስነሳው. ይህ ዘዴ በተለይ የዩኤስቢ ዋይ ፋይ አስማሚን ወደ Raspberry ሲያገናኙ ጠቃሚ ይሆናል።

አሁን የሚከተሉትን ማድረግ ይችላሉ:

# systemctl enable hostapd
# reboot

7. IPTABLES

"ምን???" © አዎ ፣ አዎ! ምንም ስርዓት. ምንም አዲስ የተዋሃዱ ጥምረት የለም (በቅጹ ውስጥ እሳት), እሱም ተመሳሳይ ነገር በማድረግ ያበቃል.

መልካሙን አሮጌውን እንጠቀም iptables, አገልግሎቶቹ ከጀመሩ በኋላ የኔትወርክ ደንቦችን ወደ ከርነል ይጫኑ እና ነዋሪ ሳይቀሩ እና ሀብቶችን ሳይወስዱ በጸጥታ ይዘጋሉ. systemd የሚያምር አለው IPMasquerade=ነገር ግን አሁንም የአድራሻውን ትርጉም (NAT) እና ፋየርዎልን ለ iptables አደራ እንሰጣለን።

ጫን ፦

# yum install iptables-services
# systemctl enable iptables ip6tables

የ iptables ውቅረትን እንደ ስክሪፕት ማከማቸት እመርጣለሁ (ለምሳሌ)

#!/bin/bash

#
# Disable IPv6
#
ip6tables --flush
ip6tables --delete-chain

ip6tables --policy INPUT   DROP
ip6tables --policy FORWARD DROP
ip6tables --policy OUTPUT  DROP

ip6tables-save > /etc/sysconfig/ip6tables
systemctl restart ip6tables

#
# Cleaning
#
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#
# Loopback, lan
#
iptables -A INPUT -i lo  -j ACCEPT
iptables -A INPUT -i lan -j ACCEPT

#
# Ping, Established
#
iptables -A INPUT -p icmp  --icmp-type echo-request    -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#
# NAT
#
iptables -t nat -A POSTROUTING -o wan -j MASQUERADE

#
# Saving
#
iptables-save > /etc/sysconfig/iptables
systemctl restart iptables

ከላይ ያለውን ስክሪፕት እናስፈጽማለን እና አዲስ ባለገመድ ኤስኤስኤች ግንኙነቶችን ከRaspberry ጋር የመመስረት ችሎታችንን እናጣለን ። ልክ ነው፣ የWi-Fi ራውተር ሠርተናል፣ መዳረሻ “በበይነመረብ በኩል” በነባሪነት የተከለከለ - አሁን “በአየር ላይ” ብቻ። የአቅራቢውን የኤተርኔት ገመድ እናገናኛለን እና ሰርፊንግ እንጀምራለን!

8. ጉርሻ: +2,4GHz

ከላይ የተገለጸውን ስዕል ተጠቅሜ የመጀመሪያውን Raspberry ራውተር ስሰበስብ በቤተሰቤ ውስጥ በWi-Fi ዲዛይን ውሱንነት የተነሳ “raspberry”ን ጨርሶ ማየት የማይችሉ በርካታ መግብሮችን አግኝቻለሁ። በ 802.11b/g/n ውስጥ እንዲሰራ ራውተርን እንደገና ማዋቀር ስፖርታዊ ጨዋነት የጎደለው ነበር ምክንያቱም በዚህ ሁኔታ ውስጥ ያለው ከፍተኛ ፍጥነት "በአየር ላይ" ከ 40 Mbit አይበልጥም, እና የእኔ ተወዳጅ የበይነመረብ አቅራቢ 100 (በኬብል) ይሰጠኛል.

እንደ እውነቱ ከሆነ, ለችግሩ መፍትሄ ቀድሞውኑ ተፈለሰፈ-ሁለተኛ የ Wi-Fi በይነገጽ በ 2,4 GHz ድግግሞሽ የሚሰራ እና ሁለተኛ የመዳረሻ ነጥብ. በአቅራቢያው ባለ ስቶር ውስጥ የመጀመሪያውን ሳይሆን የገዛሁት ሁለተኛውን የዩኤስቢ ዋይፋይ “ፉጨት” አገኘሁት። ሻጩ ስለ ቺፕሴት፣ ከአርኤም ሊኑክስ ከርነሎች ጋር ተኳሃኝነት እና በ AP ሁነታ የመሥራት እድል (የመጀመሪያው እሱ ነበር) በሚሉ ጥያቄዎች ተሠቃይቶ ነበር።

አብሮገነብ ከሆነው የዋይ ፋይ አስማሚ ጋር በማመሳሰል የ"ፉጨት"ን እናዋቅረዋለን።

መጀመሪያ፣ ስሙን እንደገና እንለውጠው 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

የአዲሱን ዋይ ፋይ በይነገጽ አስተዳደር ለተለየ hostapd daemon አደራ እንሰጣለን፣ ይህም የሚጀምረው እና የሚቆም በስርዓቱ ውስጥ በጥብቅ የተገለጸ “ፉጨት” እንዳለ ነው፡ 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]

የዚህ ፋይል ይዘት በቀጥታ በዩኤስቢ ዋይ ፋይ አስማሚ ሞዴል ላይ የተመሰረተ ነው፣ ስለዚህ የባናል ኮፒ/መለጠፍ ሊሳናችሁ ይችላል።

የማከፋፈያ አገልግሎት ፋይሉን ወደዚህ ይቅዱ /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

ይኼው ነው! "ፊሽካ" እና "raspberry" እራሱ ይጎትቱ, በዙሪያዎ ያሉትን ገመድ አልባ አውታሮች ይመልከቱ.

እና በመጨረሻም ስለ ዩኤስቢ Wi-Fi አስማሚ ጥራት እና ስለ Raspberry የኃይል አቅርቦት ላስጠነቅቅዎ እፈልጋለሁ። የተገናኘው "ትኩስ ፊሽካ" አንዳንድ ጊዜ በአጭር ጊዜ የኤሌክትሪክ ችግሮች ምክንያት "raspberry freezing" ሊያስከትል ይችላል.

ምንጭ: hab.com

አስተያየት ያክሉ