Гостьовий Wi-Fi через CLI

Ця сторінка надає скрипт, що створює окрему гостьову мережу та нову зону брандмауера для неї на вашому пристрої OpenWrt.
Іншими словами — створюється гостьова Wi-Fi мережа, яка має доступ до Інтернету, але не може отримати доступ до вашої локальної мережі (LAN).

  • Перед початком уважно прочитайте всю цю сторінку. Сформуйте хоча б загальне уявлення про те, що саме налаштовує код нижче.
  • Створіть гостьову WLAN як додаткову конфігурацію на радіо 2,4 ГГц або 5 ГГц, зазвичай це буде @wifi-iface[0] або @wifi-iface[1]. Нова гостьова мережа буде працювати на тій самій частоті, що й наявні WLAN.
  • Скопіюйте увесь блок коду нижче в SSH-консоль вашого пристрою OpenWrt і натисніть Enter. Або ж створіть shell-скрипт і виконайте його на вашому пристрої OpenWrt.
# Configuration parameters
NET_ID="guest"
WIFI_DEV="$(uci -q get wireless.@wifi-iface[0].device)"
 
# Fetch upstream zone
. /lib/functions/network.sh
network_flush_cache
network_find_wan NET_IF
FW_WAN="$(fw4 -q network ${NET_IF})"
 
# Set up guest WLAN
uci -q batch << EOI
delete network.${NET_ID}_dev
set network.${NET_ID}_dev=device
set network.${NET_ID}_dev.type=bridge
set network.${NET_ID}_dev.name=br-${NET_ID}
delete network.${NET_ID}
set network.${NET_ID}=interface
set network.${NET_ID}.proto=static
set network.${NET_ID}.device=br-${NET_ID}
set network.${NET_ID}.ipaddr=192.168.3.1/24
commit network
delete wireless.${NET_ID}
set wireless.${NET_ID}=wifi-iface
set wireless.${NET_ID}.device=${WIFI_DEV}
set wireless.${NET_ID}.mode=ap
set wireless.${NET_ID}.network=${NET_ID}
set wireless.${NET_ID}.ssid=${NET_ID}
set wireless.${NET_ID}.encryption=none
commit wireless
delete dhcp.${NET_ID}
set dhcp.${NET_ID}=dhcp
set dhcp.${NET_ID}.interface=${NET_ID}
set dhcp.${NET_ID}.start=100
set dhcp.${NET_ID}.limit=150
set dhcp.${NET_ID}.leasetime=1h
commit dhcp
delete firewall.${NET_ID}
set firewall.${NET_ID}=zone
set firewall.${NET_ID}.name=${NET_ID}
set firewall.${NET_ID}.network=${NET_ID}
set firewall.${NET_ID}.input=REJECT
set firewall.${NET_ID}.output=ACCEPT
set firewall.${NET_ID}.forward=REJECT
delete firewall.${NET_ID}_${FW_WAN}
set firewall.${NET_ID}_${FW_WAN}=forwarding
set firewall.${NET_ID}_${FW_WAN}.src=${NET_ID}
set firewall.${NET_ID}_${FW_WAN}.dest=${FW_WAN}
delete firewall.${NET_ID}_dns
set firewall.${NET_ID}_dns=rule
set firewall.${NET_ID}_dns.name=Allow-DNS-${NET_ID}
set firewall.${NET_ID}_dns.src=${NET_ID}
set firewall.${NET_ID}_dns.dest_port=53
add_list firewall.${NET_ID}_dns.proto=tcp
add_list firewall.${NET_ID}_dns.proto=udp
set firewall.${NET_ID}_dns.target=ACCEPT
delete firewall.${NET_ID}_dhcp
set firewall.${NET_ID}_dhcp=rule
set firewall.${NET_ID}_dhcp.name=Allow-DHCP-${NET_ID}
set firewall.${NET_ID}_dhcp.src=${NET_ID}
set firewall.${NET_ID}_dhcp.dest_port=67
set firewall.${NET_ID}_dhcp.proto=udp
set firewall.${NET_ID}_dhcp.family=ipv4
set firewall.${NET_ID}_dhcp.target=ACCEPT
commit firewall
EOI
service network reload
service dnsmasq restart
service firewall restart

Усі зміни будуть видимі у веб-інтерфейсі після застосування:

  • створюється гостьова мережа з іменем “guest”
  • створюється DHCP-конфігурація для гостьової мережі (припускається, що 192.168.3.1/24 не конфліктує з іншими мережами у вашій мережі)
  • створюється зона брандмауера з назвою “guest” для цієї мережі
  • створюється правило переспрямування трафіку з гостьової зони до зони “wan” (але не навпаки)
  • створюється правило брандмауера для доступу гостьової мережі до DHCP-сервісу OpenWrt
  • створюється правило брандмауера для доступу гостьової мережі до DNS-сервісу OpenWrt

Можливості для персоналізації майже безмежні:

  • Зверніть увагу, що за замовчуванням не застосовуються спеціальні обмеження доступу до Інтернету для гостей. Якщо хочете дозволити тільки HTTP(S) або заблокувати UDP — доведеться вручну додати відповідні правила брандмауера.
  • Також ви можете налаштувати винятки, якщо гості повинні мати доступ до вашого принтера чи стрімінгу з телефона на телевізор. На жаль, універсального шаблону для всіх випадків не існує.
  • За бажанням можна навіть виділити один LAN-порт на маршрутизаторі через VLAN і прив’язати його до гостьової мережі, якщо гості хочуть користуватися дротовим підключенням.

Якщо ви колись захочете видалити зміни, створені цим скриптом, зробіть наступне у веб-інтерфейсі OpenWrt:

  • Видаліть гостьовий інтерфейс у вкладці «Інтерфейси»
  • Видаліть гостьову зону брандмауера у вкладці «Брандмауер»
  • Усі правила брандмауера будуть автоматично видалені разом із зоною
  • Конфігурація DHCP також буде автоматично видалена разом з інтерфейсом
  • Потім натисніть «Зберегти та застосувати»

Можливо, гості не знаходяться у вашому домі постійно.
Вам не потрібно повністю видаляти конфігурацію після їхнього відходу.
Просто відкрийте веб-інтерфейс OpenWrt та увімкніть або вимкніть гостьову Wi-Fi мережу в будь-який момент.

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/06/06 14:38
  • by vazaz