Настройте беспроводной адаптер USB при подключении к сети

У меня есть компьютер, подключенный к Интернету на eth0, и у меня есть ключ usb wifi: мне удалось настроить его как точку доступа, к которой я могу подключиться с мобильных устройств, чтобы я мог совместно использовать интернет-соединение с ПК.

Для этого я написал два сценария: ap-on для активации AP и ap-off для его деактивации, и они работают нормально. (Я буду включать их в конце сообщения, для справки).

Я бы хотел, чтобы они автоматически запускались, когда я вставлял ключ usb. Поэтому я написал правило udev, которое выглядит

 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:13:46:78:c5:4e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan2", RUN+="/usr/local/bin/ap-on > /dev/null 2>&1" 

Случается, что ap-on запускается на hotplug, но устройство wlan2 не настроено должным образом: с ifconfig я получаю

 wlan2 Link encap:Ethernet IndirizzoHW 00:13:46:78:c5:4e UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisioni:0 txqueuelen:1000 Byte RX:0 (0.0 B) Byte TX:0 (0.0 B) 

тогда как когда я запускаю его вручную, я получаю

 mon.wlan2 Link encap:UNSPEC IndirizzoHW 00-13-46-78-C5-4E-3A-30-00-00-00-00-00-00-00-00 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisioni:0 txqueuelen:1000 Byte RX:0 (0.0 B) Byte TX:0 (0.0 B) wlan2 Link encap:Ethernet IndirizzoHW 00:13:46:78:c5:4e indirizzo inet:192.168.23.1 Bcast:192.168.23.255 Maschera:255.255.255.0 indirizzo inet6: fe80::213:46ff:fe78:c54e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:43 errors:0 dropped:0 overruns:0 carrier:0 collisioni:0 txqueuelen:1000 Byte RX:0 (0.0 B) Byte TX:7751 (7.7 KB) 

Почему это происходит?

Второй вопрос: как изменить правило, чтобы запустить ap-off когда я удаляю ключ usb?

Здесь ap-on :

 #!/bin/bash # Config files hotspotconfig="/etc/hostapd/my-ap-hotspot.conf" dhcpdconfig="/etc/dhcp/my-dhcpd-hotspot.conf" # Network interface to the internet NETnic=eth0 # Wireless network interface for the access point APnic=wlan2 # Write the hostapd config file cat <<EOF | tee "$hotspotconfig" > /dev/null 2>&1 interface=$APnic driver=nl80211 ssid=hotspot-$APnic hw_mode=g channel=2 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=3 wpa_passphrase=bhu87ygv wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP EOF # Write the dhcpd config file cat <<EOF | tee "$dhcpdconfig" > /dev/null 2>&1 default-lease-time 86400; max-lease-time 864000; subnet 192.168.23.0 netmask 255.255.255.0 { range 192.168.23.20 192.168.23.25; option domain-name-servers 8.8.8.8; option routers 192.168.23.1; option broadcast-address 192.168.23.255; } EOF #set IP address ifconfig $APnic 192.168.23.1 ## start hostapd hostapd -d $hotspotconfig > /var/log/hostapd.log & sleep 2 # launch dhcpd daemon dhcpd -cf $dhcpdconfig $APnic sleep 2 # set kernel variable(s) echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/conf/all/forwarding echo "1" > /proc/sys/net/ipv6/conf/default/forwarding # create iptables rules iptables -t nat -A POSTROUTING -s 192.168.23.0/24 -o $NETnic -j MASQUERADE exit 0 и #!/bin/bash # Config files hotspotconfig="/etc/hostapd/my-ap-hotspot.conf" dhcpdconfig="/etc/dhcp/my-dhcpd-hotspot.conf" # Network interface to the internet NETnic=eth0 # Wireless network interface for the access point APnic=wlan2 # Write the hostapd config file cat <<EOF | tee "$hotspotconfig" > /dev/null 2>&1 interface=$APnic driver=nl80211 ssid=hotspot-$APnic hw_mode=g channel=2 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=3 wpa_passphrase=bhu87ygv wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP EOF # Write the dhcpd config file cat <<EOF | tee "$dhcpdconfig" > /dev/null 2>&1 default-lease-time 86400; max-lease-time 864000; subnet 192.168.23.0 netmask 255.255.255.0 { range 192.168.23.20 192.168.23.25; option domain-name-servers 8.8.8.8; option routers 192.168.23.1; option broadcast-address 192.168.23.255; } EOF #set IP address ifconfig $APnic 192.168.23.1 ## start hostapd hostapd -d $hotspotconfig > /var/log/hostapd.log & sleep 2 # launch dhcpd daemon dhcpd -cf $dhcpdconfig $APnic sleep 2 # set kernel variable(s) echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/conf/all/forwarding echo "1" > /proc/sys/net/ipv6/conf/default/forwarding # create iptables rules iptables -t nat -A POSTROUTING -s 192.168.23.0/24 -o $NETnic -j MASQUERADE exit 0 и #!/bin/bash # Config files hotspotconfig="/etc/hostapd/my-ap-hotspot.conf" dhcpdconfig="/etc/dhcp/my-dhcpd-hotspot.conf" # Network interface to the internet NETnic=eth0 # Wireless network interface for the access point APnic=wlan2 # Write the hostapd config file cat <<EOF | tee "$hotspotconfig" > /dev/null 2>&1 interface=$APnic driver=nl80211 ssid=hotspot-$APnic hw_mode=g channel=2 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=3 wpa_passphrase=bhu87ygv wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP EOF # Write the dhcpd config file cat <<EOF | tee "$dhcpdconfig" > /dev/null 2>&1 default-lease-time 86400; max-lease-time 864000; subnet 192.168.23.0 netmask 255.255.255.0 { range 192.168.23.20 192.168.23.25; option domain-name-servers 8.8.8.8; option routers 192.168.23.1; option broadcast-address 192.168.23.255; } EOF #set IP address ifconfig $APnic 192.168.23.1 ## start hostapd hostapd -d $hotspotconfig > /var/log/hostapd.log & sleep 2 # launch dhcpd daemon dhcpd -cf $dhcpdconfig $APnic sleep 2 # set kernel variable(s) echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/conf/all/forwarding echo "1" > /proc/sys/net/ipv6/conf/default/forwarding # create iptables rules iptables -t nat -A POSTROUTING -s 192.168.23.0/24 -o $NETnic -j MASQUERADE exit 0 

и здесь ap-off

 #!/bin/bash # Config files hotspotconfig="/etc/hostapd/my-ap-hotspot.conf" dhcpdconfig="/etc/dhcp/my-dhcpd-hotspot.conf" # Network interface to the internet NETnic=eth0 # Wireless network interface for the access point APnic=wlan2 # stop hostapd and dhcpd killall hostapd killall dhcpd # remove iptables rules iptables -t nat -F # set kernel variable(s) echo "0" > /proc/sys/net/ipv4/ip_forward echo "0" > /proc/sys/net/ipv4/conf/all/forwarding echo "0" > /proc/sys/net/ipv6/conf/default/forwarding # unconfig wifi nic ifconfig $APnic down # remove config files rm -f $hotspotconfig rm -f $dhcpdconfig exit 0 и #!/bin/bash # Config files hotspotconfig="/etc/hostapd/my-ap-hotspot.conf" dhcpdconfig="/etc/dhcp/my-dhcpd-hotspot.conf" # Network interface to the internet NETnic=eth0 # Wireless network interface for the access point APnic=wlan2 # stop hostapd and dhcpd killall hostapd killall dhcpd # remove iptables rules iptables -t nat -F # set kernel variable(s) echo "0" > /proc/sys/net/ipv4/ip_forward echo "0" > /proc/sys/net/ipv4/conf/all/forwarding echo "0" > /proc/sys/net/ipv6/conf/default/forwarding # unconfig wifi nic ifconfig $APnic down # remove config files rm -f $hotspotconfig rm -f $dhcpdconfig exit 0 и #!/bin/bash # Config files hotspotconfig="/etc/hostapd/my-ap-hotspot.conf" dhcpdconfig="/etc/dhcp/my-dhcpd-hotspot.conf" # Network interface to the internet NETnic=eth0 # Wireless network interface for the access point APnic=wlan2 # stop hostapd and dhcpd killall hostapd killall dhcpd # remove iptables rules iptables -t nat -F # set kernel variable(s) echo "0" > /proc/sys/net/ipv4/ip_forward echo "0" > /proc/sys/net/ipv4/conf/all/forwarding echo "0" > /proc/sys/net/ipv6/conf/default/forwarding # unconfig wifi nic ifconfig $APnic down # remove config files rm -f $hotspotconfig rm -f $dhcpdconfig exit 0 

Interesting Posts

Как udev получает номера устройств для создаваемых им устройств?

Различные программы, не работающие после yum, устанавливают некоторые пакеты

Рип аудио CD с сохранением выделения и кодирования отдельно

Howdo я избегаю старых версий mysqlclient

Как остановить .bashrc от запуска под-команды в псевдониме при запуске?

Linux mint 17 не запускается после спящего режима

Ошибка AIX tar: сейчас недостаточно памяти.

Как отладить экономию жесткого диска?

«Нет такого файла или каталога», когда я пытаюсь отформатировать логический том

Каково окно «pam-panel-icon»?

Инструменты для контроля времени кражи (st)

Применение математической функции к каждой строке в большом файле

малина pi продолжает убивать imagemagicks конвертировать

Как преобразовать смайлик, указанный кодом U + xxxxx, в utf-8?

Как захватить ввод командной строки в файл журнала и выполнить его одновременно?

Linux и Unix - лучшая ОС в мире.