آموزش‌های کاربردیبایگانی مطالبپروژه‌های Raspberry Pi

افزایش رنج رزبری پای با راه اندازی Wi-Fi Extender

یه روش ارزون‌قیمت و کارآمد برای افزایش رنج شبکه وایفای، استفاده از Wi-Fi Extender رزبری پای است. Wi-Fi Extender کمی با نقطه دسترسی(Access point) وایفای فرق داره.

آموزش راه اندازی Wi-Fi Extender در Raspberry Pi

تفاوت اصلی که میان این دو تا وجود داره اینه که Wi-Fi Extender به جای اتصال به شبکه اترنت به آداپتور Wi-Fi وصل میشه.

به همین دلیل، برای انجام این پروژه به دو تا آداپتور Wi-Fi نیاز دارین که یکیشون باید بتونه از نقطه اتصال پشتیبانی کنه. زمانی که به Wi-Fi repeater وصل می‌شید سرعت اتصال به شبکه کمی پایین میاد. مهمترین دلیلش هم اینه که باید منتظر بمونین تا ترافیک به اتصال اولیه Wi-Fi منتقل بشه و دوباره از RPi تکرار بشه تا دستگاه‌ها بتونن بهش وصل بشن!

آموزش نصب اندروید در رزیری پای


تجهیزات مورد نیاز

یه فهرست از تمامی قطعات و تجهیزاتی که برای این Wi-Fi Extender رزبری پای استفاده شده تهیه کردم. برای کامل کردن این پروژه به دو تا دانگل وایفای(Wi-Fi dongle) نیاز دارین و حداقل یکیشون باید بتونه به عنوان نقطه دسترسی عمل کنه.

قطعات مورد نیاز برای راه اندازی Wi-Fi Extender

لیست قطعات مورد نیاز

رزبری پای


کارت حافظه MicroSD و یا اگه از نسخه قدیمی Pi استفاده می‌کنین یه SD card


آداپتور برق


دانگل وای فای (درصورتی که رزبری پای مورد استفاده شما Wi-Fi داخلی داره فقط به 1 دانگل نیاز دارید در غیر اینصورت داشتن 2 دانگل Wi-Fi برای این پروژه الزامیه.)



راه‌اندازی Wi-Fi Extender

برای راه‌اندازی Wi-Fi Extender رزبری پای از پکیج dnsmasq استفاده می‌کنیم، این پکیج برای اتصالات ما هم به عنوان DNS و هم به عنوان سرور DHCP عمل می‌کنه و به همین دلیل خیلی از کارای سخت تو این پروژه رو انجام می‌ده. از پکیج hostapd هم باید استفاده کنیم، این پکیج به ما اجازه می‌ده یکی از ماژول‌های Wi-Fi رو به عنوان نقطه دسترسی راه‌اندازی کنیم.

طریقه نصب انتی ویروس clamav در رزبری پای

یادتون باشه برای انجام این پروژه به یه روتر فعال Wi-Fi نیاز دارید تا بهش وصل بشد و یک دستگاه اترنت نیاز دارید تا اتصال Wi-Fi رو بهش منتقل کنید.

قبل از نصب و راه‌اندازی پکیج‌ها، با اجرای دو فرمان زیر در ترمینال (terminal) RPi رو به روزرسانی می‌کنیم:

sudo apt-get update
sudo apt-get upgrade

پس از به روزرسانی RPi می‌توانیم پکیج‌های dnsmasq و hostapd رو نصب کنیم. برای نصب این دو تا پکیج فرمان زیر رو اجرا کنین:

sudo apt-get install dnsmasq
sudo apt-get install hostapd

قبل از هر چیز، اتصال wlan0 رو راه‌اندازی کنید. در غیر این صورت با اجرای فرمان زیر در RPi پوشه  wpa-supplicant.conf را باز کنین:

sudo nano  /etc/wpa_supplicant/wpa_supplicant.conf

فرمان زیر رو به این فایل اضافه کنین، حتماً SSID رو با نام شبکه‌ای که قصد دارید بهش وصل شید و PSK value رو با رمز عبور شبکه جایگزین کنین:

network={
        ssid="networkname"
        psk="networkpassword"
}

پس از وارد کردن نام و رمزعبور شبکه فایل رو با زدن کلید CTRL + x و سپس Y و در نهایت ENTER ذخیره کنین.


پس از نصب پکیج‌ها و راه‌اندازی Wi-Fi، برای تعیین یه آدرس IP ثابت برای رزبری پای dhcpcd رو راه‌اندازی می‌کنیم. برای تغییر پوشه dhcpcd.conf فرمان زیر رو اجرا کنین:

sudo nano /etc/dhcpcd.conf

در انتهای این فایل باید خطوط زیر را اضافه کنیم. این فرمان اتصال wlan1 رو راه‌اندازی می‌کنه.

interface wlan1
static ip_address=192.168.220.1/24
static routers=192.168.220.0

برای ذخیره کردن و خروج از این پوشه کلید CTRL + x و سپس Y و در نهایت ENTER رو بزنین.


الان باید سرویس dhcpd رو Restart کنیم تا تمامی تغییراتی که در پیکربندی ایجاد شدن بارگذاری بشن:

sudo service dhcpcd restart

حالا باید پیکربندی hostapd رو تغییر بدین. برای انجام این کار باید با اجرای فرمان زیر در RPi خود، فایل پیکربندی رو ویرایش کنین:

sudo nano /etc/hostapd/hostapd.conf

در این فایل باید خطوط زیر را بنویسیم، این خطوط نحوه تعامل ما با دستگاه wlan رو مشخص می‌کنن. تنها خطوطی که باید نگران‌شون باشین خط  =ssid و خط  =wpa_passphrase هست.

نکته: ممکنه مجبور بشین خط =driver رو به بهترین driver برای دستگاه‌تون تغییر بدین، چون بعضی از دستگاه‌های Wi-Fi شرایط و الزامات خاصی برای driver دارن. برای اینکه متوجه بشید چه driverی مناسب شماست بهتره از گوگل کمک بگیرین.

interface=wlan1
driver=nl80211

hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
macaddr_acl=0
ignore_broadcast_ssid=0

auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

ssid=Pi3-Extender
wpa_passphrase=raspberry

حتماً wpa_passphrase رو به رمز عبور خودتون تغییر بدین و یک رمز قوی انتخاب کنید تا دیگران نتونن به Wi-Fi Extender شما وصل بشن. برای ذخیره و خروج از این پوشه کلید CTRL + x و سپس Y و در نهایت ENTER رو بزنین.


در مرحله بعد باید فایل hostapd رو در /etc/default/ و /etc/init.d/ تغییر بدین. Hostapd برای پیدا کردن فایل پیکربندی جدید که قبلاً ایجاد کرده بویم این فایل‌ها رو می‌خونه.

برای ویرایش اولین پوشه فرمان زیر رو اجرا کنید:

sudo nano /etc/default/hostapd

در این پوشه، باید خط زیر رو پیدا و جایگزین کنیم.

این خط رو پیدا کنین:

#DAEMON_CONF=""

با این خط جایگزین کنین:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

برای ذخیره و خروج از این پوشه کلید CTRL + x و سپس Y و در نهایت ENTER رو بزنین.


حالا باید دومین فایل پیکربندی رو ویرایش کنیم، این فایل در پوشه init.d قرار داره. برای تغییر این پوشه فرمان زیر رو اجرا کنین:

sudo nano /etc/init.d/hostapd

در این پوشه، باید خط زیر رو پیدا و جایگزین کنیم. این خط رو پیدا کنین:

#DAEMON_CONF=

با این خط جایگزین کنین:

DAEMON_CONF=/etc/hostapd/hostapd.conf

برای ذخیره و خروج از این پوشه کلید CTRL + x و سپس Y و در نهایت ENTER رو بزنین.


پس از راه‌اندازی hostapd باید dnsmasq رو راه‌اندازی کنیم. قبل از تغییر پیکربندی dnsmasq حالت پیش‌فرض اول را به یه جای جدید منتقل می‌کنیم. برای انجام این کار می‌تونیم از فرمان زیر کمک بگیریم:

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

حالا که جای پوشه اصلی پیکربندی رو تغییر دادیم می‌توانیم فایل پیکربندی خودمون رو ایجاد کنیم. برای ایجاد و تغییر فایل جدید فرمان زیر رو اجرا کنین:

sudo nano /etc/dnsmasq.conf

خطوط زیر رو به این فایل اضافه کنین، این خطوط برای dnsmasq مشخص می‌کنه که چجوری اتصالات رو کنترل کنه.

interface=wlan1       # Use interface wlan1 
listen-address=192.168.220.1   # Specify the address to listen on 
bind-interfaces      # Bind to the interface
server=8.8.8.8       # Use Google DNS 
domain-needed        # Don't forward short names 
bogus-priv           # Drop the non-routed address spaces. 
dhcp-range=192.168.220.50,192.168.220.150,12h # IP range and lease time

برای ذخیره و خروج از این پوشه کلید CTRL + x و سپس Y و در نهایت ENTER رو بزنین.


حالا باید RPi رو پیکربندی کنیم تا تمامی ترافیک رو از اتصال wlan1 به اتصال wlan0 منتقل کنه. اول باید RPi رو از طریق فایل پیکربندی  sysctl.conf فعال کنیم، پس با اجرای فرمان زیر اون رو ویرایش می‌کنیم:

sudo nano /etc/sysctl.conf

در این فایل باید خط زیر رو پیدا کنید و هشتگ (#) رو حذف کنید:

#net.ipv4.ip_forward=1

با این خط جایگزین کنین یا بصورت دستی (#) رو حذف کنید:

net.ipv4.ip_forward=1

برای ذخیره و خروج از این پوشه کلید CTRL + x و سپس Y و در نهایت ENTER رو بزنین.


حالا چون نمی‌خواهیم منتظر بمونیم تا در boot بعدی فعال بشه، برای اینکه بلافاصله فعال بشه فرمان زیر رو اجرا می‌کنیم:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

حالا که IPv4 فعال شده می‌تونیم یک NAT رو بین رابط wlan0 و رابط wlan1 پیکربندی کنیم. در واقع این کُل ترافیک را از نقطه دسترسی ما به اتصال اترنت منتقل می‌کنه. برای اضافه کردن قوانین جدید به iptables فرمان زیر رو اجرا کنین:

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE 
sudo iptables -A FORWARD -i wlan0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT 
sudo iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT

نکته: اگه هنگام وارد کردن خطوط بالا به خطا مواجه شدین با استفاده از sudo reboot، پای رو reboot کنین.


البته iptableها هر بار بعد از اینکه RPi راه‌اندازی (boot) میشه، خالی میشن، بنابراین باید قوانین جدیدمون رو یه جایی ذخیره کنیم تا بعد هر بار راه‌اندازی بارگذاری بشن. برای ذخیره مجموعه قوانین جدید فرمان زیر رو اجرا کنین:

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

حالا که قوانین جدید رو ذخیره کردیم باید کاری کنیم تا بعد از هر بار راه‌اندازی این فایل بارگذاری بشه. آسون‌ترین روش برای انجام این کار باید فایل rc.local رو ویرایش کنیم. برای ویرایش فایل فرمان زیر رو اجرا کنین:

sudo nano /etc/rc.local

حالا باید خط زیر رو به این فایل اضافه کنیم. این خط حتما باید بالای exit 0 قرار بگیره. این خط در واقع تنظیمات فایل iptables.ipv4.nat رو می‌خونه و اونا رو در iptables بارگذاری می‌کنه.

آموزش نصب و راه اندازی نرم افزار AnyDesk در رزبری پای

این‌ خط رو پیدا کنین:

exit 0

دستور زیر رو که مشاهده می‌کنید در بالای دستور exit 0 اضافه کنید.

iptables-restore < /etc/iptables.ipv4.nat

برای ذخیره و خروج از این پوشه کلید CTRL + x و سپس Y و در نهایت ENTER رو بزنین.


حالا تنها کاری که باید بکنیم اینه که دو تا سرویس رو به کار بندازیم و در systemctl اونا رو فعال کنیم.  دو فرمان زیر رو اجرا کنین:

sudo service hostapd start
sudo service dnsmasq start

حالا باید یک RPi Wireless Access Point داشته باشین، برای اینکه مطمئن بشین به خوبی کار می‌کنه با استفاده از SSID و WPA Passphrase یکی از دستگاه‌های بی‌سیم‌تون رو به نقطه دسترسی جدیدتون وصل کنید.

برای اینکه مطمئن بشین همه چیز به خوبی کار می‌کنه بهتره RPi رو مجدداً راه‌اندازی (reboot) کنین. اینجوری می‌تونین مطمئن بشین که وقتی RPi مجدداً راه‌اندازی میشه همه چیز به خوبی کار می‌کنه. برای راه‌اندازی مجدد RPi فرمان زیر رو اجرا کنین:

sudo reboot

راه‌اندازی Wi-Fi Extender رزبری پای

حالا شما باید یک Raspberry Pi Wi-Fi Extender کاملاً آماده به کار داشته باشید. اگر با مشکلی برخورد کردید یا بازخوردی در رابطه با این آموزش دارید، می‌تونید در بخش نظرات، سوال و نظرتون رو مطرح کنید.

منبع

این مقاله چطور بود ؟
+1
1
+1
0
+1
0
مشاهده بیشتر

محمد حسنی

حدود 3 سالی هست که در تیم سخت افزار سازان نام آور با اشتیاق به تولید محتوا مشغول هستم. علاقه شدیدی نسبت به طراحی، تحولات دنیای فناوری هوش مصنوعی و اینترنت اشیا دارم.

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا