소스 검색

More wifi settings

Bob Mottram 10 년 전
부모
커밋
73389be6dc
1개의 변경된 파일47개의 추가작업 그리고 15개의 파일을 삭제
  1. 47
    15
      install-freedombone.sh

+ 47
- 15
install-freedombone.sh 파일 보기

@@ -327,6 +327,22 @@ WIFI_HOTSPOT_CHANNEL=7
327 327
 # Mode such as "g" or "n"
328 328
 WIFI_HOTSPOT_MODE="g"
329 329
 
330
+# Static IP address for wifi hotspot
331
+WIFI_STATIC_IP_ADDRESS="192.168.1.53"
332
+
333
+# Subnet for wifi hotspot
334
+WIFI_SUBNET="192.168.1.0"
335
+
336
+# DHCP range for wifi hotspot
337
+WIFI_IP_RANGE_START="192.168.1.10"
338
+WIFI_IP_RANGE_END="192.168.1.20"
339
+
340
+# Broadcast address for wifi hotspot
341
+WIFI_BROADCAST_ADDRESS="192.168.1.255"
342
+
343
+# Comma separated list of DNS servers for wifi hotspot
344
+WIFI_DNS_SERVERS="213.73.91.35, 85.214.20.141"
345
+
330 346
 # message if something fails to install
331 347
 CHECK_MESSAGE="Check your internet connection, /etc/network/interfaces and /etc/resolv.conf, then delete $COMPLETION_FILE, run 'rm -fR /var/lib/apt/lists/* && apt-get update --fix-missing' and run this script again. If hash sum mismatches persist then try setting $DEBIAN_REPO to a different mirror and also change /etc/apt/sources.list."
332 348
 
@@ -409,6 +425,24 @@ function read_configuration {
409 425
       if grep -q "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE; then
410 426
           LOCAL_NETWORK_STATIC_IP_ADDRESS=$(grep "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
411 427
       fi
428
+      if grep -q "WIFI_STATIC_IP_ADDRESS" $CONFIGURATION_FILE; then
429
+          WIFI_STATIC_IP_ADDRESS=$(grep "WIFI_STATIC_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
430
+      fi
431
+      if grep -q "WIFI_SUBNET" $CONFIGURATION_FILE; then
432
+          WIFI_SUBNET=$(grep "WIFI_SUBNET" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
433
+      fi
434
+      if grep -q "WIFI_BROADCAST_ADDRESS" $CONFIGURATION_FILE; then
435
+          WIFI_BROADCAST_ADDRESS=$(grep "WIFI_BROADCAST_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
436
+      fi
437
+      if grep -q "WIFI_DNS_SERVERS" $CONFIGURATION_FILE; then
438
+          WIFI_DNS_SERVERS=$(grep "WIFI_DNS_SERVERS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
439
+      fi
440
+      if grep -q "WIFI_IP_RANGE_START" $CONFIGURATION_FILE; then
441
+          WIFI_IP_RANGE_START=$(grep "WIFI_IP_RANGE_START" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
442
+      fi
443
+      if grep -q "WIFI_IP_RANGE_END" $CONFIGURATION_FILE; then
444
+          WIFI_IP_RANGE_END=$(grep "WIFI_IP_RANGE_END" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
445
+      fi
412 446
       if grep -q "WIFI_INTERFACE" $CONFIGURATION_FILE; then
413 447
           WIFI_INTERFACE=$(grep "WIFI_INTERFACE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
414 448
       fi
@@ -7160,7 +7194,7 @@ function enable_wifi_hotspot {
7160 7194
       echo '# Wifi hotspot' >> /etc/network/interfaces
7161 7195
       echo "auto $WIFI_INTERFACE" >> /etc/network/interfaces
7162 7196
       echo "iface $WIFI_INTERFACE inet static" >> /etc/network/interfaces
7163
-      echo '    address 192.168.4.1' >> /etc/network/interfaces
7197
+      echo "    address $WIFI_STATIC_IP_ADDRESS" >> /etc/network/interfaces
7164 7198
       echo '    netmask 255.255.255.0' >> /etc/network/interfaces
7165 7199
       service networking restart
7166 7200
   fi
@@ -7190,16 +7224,14 @@ function enable_wifi_hotspot {
7190 7224
   service hostapd restart
7191 7225
   systemctl daemon-reload
7192 7226
 
7193
-  if ! grep -q "net.ipv4.ip_forward=1" /etc/sysctl.conf; then
7194
-	  echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
7195
-  fi
7196
-  if grep -q "#net.ipv4.ip_forward=" /etc/sysctl.conf; then
7197
-	  sed -i 's/#net.ipv4.ip_forward=.*/net.ipv4.ip_forward=1/g' >> /etc/sysctl.conf
7198
-  fi
7199
-  sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
7227
+  sed -i 's/#net.ipv4.ip_forward/net.ipv4.ip_forward/g' /etc/sysctl.conf
7228
+  sed -i 's/net.ipv4.ip_forward=.*/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
7229
+  echo 1 > /proc/sys/net/ipv4/ip_forward
7200 7230
 
7201
-  iptables -P INPUT ACCEPT
7202
-  iptables -F
7231
+  iptables --flush
7232
+  iptables --table nat --flush
7233
+  iptables --delete-chain
7234
+  iptables --table nat --delete-chain
7203 7235
   iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
7204 7236
   iptables -A FORWARD -i eth0 -o $WIFI_INTERFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
7205 7237
   iptables -A FORWARD -i $WIFI_INTERFACE -o eth0 -j ACCEPT
@@ -7209,15 +7241,15 @@ function enable_wifi_hotspot {
7209 7241
   sed -i 's/option domain-name-servers ns1.example.org, ns2.example.org;/#option domain-name-servers ns1.example.org, ns2.example.org;/g' /etc/dhcp/dhcpd.conf
7210 7242
   sed -i 's/#authoritative;/authoritative;/g' /etc/dhcp/dhcpd.conf
7211 7243
 
7212
-  if ! grep -q "subnet 192.168.4.0 netmask 255.255.255.0" /etc/dhcp/dhcpd.conf; then
7213
-	  echo 'subnet 192.168.4.0 netmask 255.255.255.0 {' >> /etc/dhcp/dhcpd.conf
7214
-	  echo '    range 192.168.4.2 192.168.4.10;' >> /etc/dhcp/dhcpd.conf
7215
-	  echo '    option broadcast-address 192.168.4.255;' >> /etc/dhcp/dhcpd.conf
7244
+  if ! grep -q "subnet $WIFI_SUBNET netmask 255.255.255.0" /etc/dhcp/dhcpd.conf; then
7245
+	  echo "subnet $WIFI_SUBNET netmask 255.255.255.0 {" >> /etc/dhcp/dhcpd.conf
7246
+	  echo "    range $WIFI_IP_RANGE_START $WIFI_IP_RANGE_END;" >> /etc/dhcp/dhcpd.conf
7247
+	  echo "    option broadcast-address $WIFI_BROADCAST_ADDRESS;" >> /etc/dhcp/dhcpd.conf
7216 7248
 	  echo "    option routers $ROUTER_IP_ADDRESS;" >> /etc/dhcp/dhcpd.conf
7217 7249
 	  echo '    default-lease-time 600;' >> /etc/dhcp/dhcpd.conf
7218 7250
 	  echo '    max-lease-time 7200;' >> /etc/dhcp/dhcpd.conf
7219 7251
 	  echo '    option domain-name "local";' >> /etc/dhcp/dhcpd.conf
7220
-	  echo '    option domain-name-servers 8.8.8.8, 8.8.4.4;' >> /etc/dhcp/dhcpd.conf
7252
+	  echo "    option domain-name-servers $WIFI_DNS_SERVERS;" >> /etc/dhcp/dhcpd.conf
7221 7253
 	  echo '}' >> /etc/dhcp/dhcpd.conf
7222 7254
   fi
7223 7255