วิธีกำหนดค่า Raspberry Pi หรือระบบ Linux เป็น WiFi Router

ใด ลินุกซ์- ระบบปฏิบัติการที่ใช้สามารถกำหนดค่าได้ตามความเป็นจริง อินเตอร์เน็ตไร้สาย เราเตอร์ด้วยขั้นตอนง่ายๆ ตัวอย่างเช่นถ้าเราใช้ไฟล์ ราสเบอร์รี่ Pi ด้วยระบบปฏิบัติการ Raspbian (ซึ่งยังคงเป็นระบบปฏิบัติการที่ใช้ Linux) เราสามารถกำหนดค่าให้ใช้อินเทอร์เฟซเครือข่ายที่แตกต่างกันและสร้างเราเตอร์ WiFi ที่มีประสิทธิภาพที่ดีพอสมควร แต่เราต้องคำนึงถึงข้อ จำกัด ของพอร์ตด้วย ในบทช่วยสอนนี้เราจะสอนวิธีกำหนดค่า Raspberry Pi หรือระบบปฏิบัติการที่ใช้ Linux เพื่อทำหน้าที่เป็นเราเตอร์ Wi-Fi

ขั้นตอนเริ่มต้น

สิ่งแรกที่เราต้องทำคือติดตั้งระบบปฏิบัติการบน Raspberry Pi ของเรา ในกรณีของเราเราได้ใช้ Raspbian เวอร์ชันล่าสุดแม้ว่าระบบอื่น ๆ จะสามารถใช้งานได้ (แม้ว่าคำสั่งอาจแตกต่างกันไป)

กำหนดค่า Raspberry Pi หรือระบบ Linux เป็นเราเตอร์ WiFi

เมื่อติดตั้งระบบปฏิบัติการลงใน micro SD แล้วเราจะเรียกใช้เป็นครั้งแรกเพื่อทำการติดตั้งและกำหนดค่าให้เสร็จสมบูรณ์ (ตัวอย่างเช่นในกรณีของ Raspbian ให้ทำการ« Sudo Raspi-Config « พ่อมด ).

เมื่อกำหนดค่าและเมื่ออุปกรณ์ทำงานและเชื่อมต่อกับอินเทอร์เน็ตผ่าน RJ-45 แล้วเราจะอัปเดตแหล่งซอฟต์แวร์แอปพลิเคชันและระบบโดยพิมพ์:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

เมื่อใช้ระบบที่อัปเดตแล้วเราสามารถดำเนินการสอนต่อไปเพื่อกำหนดค่า Raspberry Pi ของเราให้ทำงานเป็นเราเตอร์ได้

ตรวจสอบว่าการ์ด USB Wi-Fi ของเราตรวจพบและทำงานในโหมด AP

สิ่งแรกที่เราจะทำคือตรวจสอบว่าอุปกรณ์ตรวจพบการ์ด ในการทำสิ่งนี้เราพิมพ์:

lsusb

และควรปรากฏในรายการ เมื่อปรากฏขึ้นเราจะดำเนินการคำสั่งอื่นเพื่อตรวจสอบว่าการ์ด Wi-Fi สามารถทำงานในโหมด AP ได้:

iw list

หากผลลัพธ์ที่ปรากฏบนหน้าจอเราสามารถเห็นบรรทัด: โหมด: AP แสดงว่าการ์ดนั้นรองรับการกำหนดค่านี้มิฉะนั้นเราจะต้องมองหาการ์ดอื่นที่ชิปเซ็ตอนุญาตให้กำหนดค่าเป็นจุดเชื่อมต่อหรือ AP.

ติดตั้งซอฟต์แวร์ที่จำเป็นและการอ้างอิง

ซอฟต์แวร์ที่จำเป็นส่วนใหญ่ได้รับการติดตั้งโดยค่าเริ่มต้นใน Raspbian แม้ว่าสิ่งเดียวที่อาจทำให้เรามีปัญหาคือเซิร์ฟเวอร์ DHCP และบริการสร้างจุดเชื่อมต่อซึ่งเราสามารถติดตั้งได้ด้วยตนเอง (หากไม่มี) โดยพิมพ์:

sudo apt-get install isc-dhcp-server hostapd

เมื่อถึงจุดนี้เราสามารถรีสตาร์ท Raspberry ของเราเพื่อเริ่มต้นด้วยการกำหนดค่า

การตั้งค่า

การกำหนดค่าทั้งหมดทำจากเทอร์มินัลในโหมดข้อความ เราจะใช้ตัวแก้ไขนาโนและก่อนที่จะแก้ไขไฟล์เราจะสร้างสำเนาขึ้นมาเพื่อที่ว่าหากเกิดข้อผิดพลาดขึ้นเราสามารถกู้คืนได้

กำหนดค่าเซิร์ฟเวอร์ DHCP

สิ่งแรกที่เราจะกำหนดค่าคือเซิร์ฟเวอร์ DHCP สำหรับสิ่งนี้เราจะแก้ไขไฟล์ต่อไปนี้:

sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.orig
sudo nano /etc/dhcp/dhcpd.conf

ในไฟล์นี้เราต้องมองหาชุดของบรรทัด สิ่งต่อไปนี้เป็นค่าเริ่มต้นโดยไม่ต้องแสดงความคิดเห็นเราจะแสดงความคิดเห็นโดยมี # ข้างหน้าเพื่อไม่ให้เปิดใช้งานอีกต่อไปและเป็นดังนี้:

#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

เราจะมองหาองค์ประกอบ #authoritative; ซึ่งโดยค่าเริ่มต้นจะแสดงความคิดเห็นและเราไม่ใส่ความคิดเห็นเพื่อเปิดใช้งานโดยปล่อยให้

authoritative;

เพื่อเสร็จสิ้นเราจะกำหนดค่าเครือข่ายที่เซิร์ฟเวอร์ DHCP จะทำงาน (ในตัวอย่างของเราในเครือข่าย 192.168.2.0) สำหรับสิ่งนี้เราไปที่ส่วนท้ายของเอกสารและเพิ่ม:

subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.2 192.168.2.30;
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}

เราบันทึกการเปลี่ยนแปลงและปิดไฟล์

เราจะเปิดไฟล์กำหนดค่าเซิร์ฟเวอร์ใหม่โดยพิมพ์:

sudo cp /etc/default/isc-dhcp-server /etc/default/isc-dhcp-server.orig
sudo nano /etc/default/isc-dhcp-server

ในเอกสารนี้เราจะดู (ในตอนท้าย) สำหรับบรรทัด INTERFACES = »»และเปลี่ยนเป็น:

INTERFACES="wlan0"

เซิร์ฟเวอร์ DHCP ถูกกำหนดค่าไว้แล้ว เราดำเนินการสอนต่อ

กำหนดค่าการเชื่อมต่อ WLAN และอีเธอร์เน็ต

สิ่งแรกที่เราจะทำคือถอดการ์ด Wi-Fi ในการทำสิ่งนี้เราพิมพ์:

sudo ifdown wlan0

ต่อไปเราจะเปิดไฟล์«อินเทอร์เฟซ»:

sudo cp /etc/network/interfaces /etc/network/interfaces.orig
sudo nano /etc/network/interfaces

และเราจะกำหนดค่าดังต่อไปนี้:

auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.2.1
netmask 255.255.255.0

เราแสดงความคิดเห็นหรือลบบรรทัดอื่น ๆ เราบันทึกการเปลี่ยนแปลงและปิดเอกสาร หากต้องการใช้การเปลี่ยนแปลงในขณะนี้เราต้องพิมพ์:

sudo ifconfig wlan0 192.168.2.1

กำหนดค่าจุดเชื่อมต่อ

อีกครั้งเราจะแก้ไขไฟล์อื่นโดยพิมพ์:

sudo cp /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.orig
sudo nano /etc/hostapd/hostapd.conf

และในไฟล์นี้เราจะลบสิ่งที่มีอยู่ (ถ้ามี) และวาง:

interface=wlan0
ssid=RaspiAP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

เราสามารถเปลี่ยนทั้ง SSID ด้วยชื่อที่เราต้องการตั้งให้กับเครือข่ายของเราและช่องในช่องและ wpa_passphrase ด้วยรหัสผ่านเป็นข้อความธรรมดาที่เราต้องการใช้เชื่อมต่อ

เพื่อเสร็จสิ้นด้วยการกำหนดค่าเราเปิดไฟล์การกำหนดค่าใหม่โดยพิมพ์:

sudo cp /etc/default/hostapd /etc/default/hostapd.orig
sudo nano /etc/default/hostapd

เรายกเลิกการแสดงความคิดเห็นและเปลี่ยนบรรทัด # DAEMON_CONF = »»โดย:

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

เราบันทึกและปิดไฟล์เพื่อเสร็จสิ้น เกือบเสร็จแล้วเหลือการตั้งค่าเล็กน้อยเพียงเล็กน้อยและกำหนดค่า Raspbian เพื่อให้ทั้งหมดนี้ทำงานเมื่อเริ่มต้นระบบโดยอัตโนมัติ

การตั้งค่าขั้นสุดท้าย

แม้ว่าจุดเชื่อมต่อเราเตอร์ของเราจะได้รับการกำหนดค่าและใช้งานได้แล้ว แต่เราไม่สามารถเชื่อมต่อกับอินเทอร์เน็ตผ่านจุดนี้และการกำหนดค่าจะดำเนินการโดยอัตโนมัติเมื่อเริ่มต้น เพื่อให้ได้ผลเราต้องทำตามขั้นตอนสุดท้ายที่เราระบุไว้ด้านล่าง

กำหนดค่าการส่งต่อแพ็กเก็ต

เพื่อให้ Raspberry Pi ส่งต่อแพ็กเก็ตจากตัวเองไปยังเราเตอร์เพื่อให้สามารถไปยังอินเทอร์เน็ตได้เราต้องกำหนดค่าองค์ประกอบต่อไปนี้:

เราเปิดและแก้ไขไฟล์ sysctl:

sudo cp /etc/sysctl.conf /etc/sysctl.conf.orig
sudo nano /etc/sysctl.conf

ในเอกสารนี้เราจะค้นหาบรรทัด“ # net.ipv4.ip_forward = 1” และเราจะยกเลิกการแสดงความคิดเห็นโดยปล่อยให้:

net.ipv4.ip_forward=1

เราบันทึกและปิดเอกสาร เพื่อให้การเปลี่ยนแปลงมีผลทันทีเราจะพิมพ์:

sudo sysctl -p /etc/sysctl.conf

เราเปิดใช้งาน NAT โดยพิมพ์:

sudo iptables -t nat -A POSTROUTING -j MASQUERADE

และเราบันทึกกฎ iptables เพื่อให้การเปลี่ยนแปลงยังคงมีอยู่ (เราติดตั้งแพ็คเกจต่อไปนี้: sudo apt-get install iptables-persistent และเราทำตามวิซาร์ด)

กำหนดค่าการเริ่มอัตโนมัติ

เพื่อให้จุดเชื่อมต่อและเซิร์ฟเวอร์ DHCP เริ่มต้นโดยอัตโนมัติกับอุปกรณ์ของเราเราต้องระบุสิ่งนี้โดยเฉพาะและเปิดใช้งานบริการเพื่อเปิดใช้งานร่วมกับ Raspbian ในการดำเนินการนี้จากเทอร์มินัลเราพิมพ์:

sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable

การตั้งค่าล่าสุด

ก่อนที่จะเสร็จสิ้นมีไฟล์ WPAsupplicant ที่อาจทำให้เกิดปัญหาในบางโอกาสดังนั้นเพื่อให้แน่ใจว่าสิ่งนี้จะไม่เกิดขึ้นเราจึงย้ายไฟล์ไปยังเส้นทางที่ปลอดภัยโดยพิมพ์:

sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service /home/pi

Raspberry Pi ของเราทำงานเป็นเราเตอร์ Wi-Fi อยู่แล้ว

เมื่อเรามาถึงจุดนี้แล้วเราสามารถรีสตาร์ท Raspberry Pi ได้ เมื่อรีบูตเครื่องจะสร้างจุดเชื่อมต่อโดยอัตโนมัติกำหนดที่อยู่ IP ให้กับโฮสต์ที่เชื่อมต่อและกำหนดเส้นทางการรับส่งข้อมูลทั้งหมดจากการ์ด Wi-Fi ผ่านการ์ดเครือข่ายไปยังเราเตอร์ตราบใดที่เรายังเชื่อมต่ออยู่