핫 플러그 ​​시 USB 무선 어댑터 구성

핫 플러그 ​​시 USB 무선 어댑터 구성

eth0을 통해 인터넷에 연결된 컴퓨터가 있고 USB Wi-Fi 동글이 있습니다. 컴퓨터 인터넷 연결을 공유할 수 있도록 모바일 장치에서 연결할 수 있는 핫스팟으로 성공적으로 구성했습니다.

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핫플러그로 부팅하지만 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

이것은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

관련 정보