30-05-2013, 16:20
Przedstawiam tutaj prosty sposób na udostępnianie internetu mobilnego (tu Aero2) na Linuksie (Ubuntu). Nie potrzeba tworzyć żadnych sieci ad-hoc, z których rozpoznaniem np. przez smartfony różnie bywa. Wystarczy,że mamy w swojej maszynie wolną kartę wifi,któratonie musi wcale wspierać master mode.
Oczywiście udostępnianie Aero2 jest wyłącznie na potrzeby własne!
Co będzie potrzebne, instalujemy:
Reszta powinna być już w systemie.
Konfiguracja wvdial:
Dodajemy, odhashowujemy:
Dodajemy, odhashowujemy:
Dodajemy, odhashowujemy:
Dodajemy, odhashowujemy:
Ustawiamy taką przykładową zawartość (sieć o SSID "necik", kanał 6, interfejs karty wifi wlan0, sieć bez szyfrowania, otwarta - można zmienić, dokumentacja hostapd jest w sieci, itp.):
Następujące linie odhashowujemy, ustawiamy:
wvdial coś nie chce wznawiać ostatnio połączenia automatycznie, zatem tworzymy do tego skrypt i przy okazji będzie łączył po wsunięciu modemu:
Treść
Nadajemy skryptowi uprawnienia wykonalności.
Edytujemy:
i dodajemy do crona na końcu linijkę:
Oczywiście udostępnianie Aero2 jest wyłącznie na potrzeby własne!
Co będzie potrzebne, instalujemy:
Kod:
sudo apt-get install wvdial hostapd dnsmasq
Konfiguracja wvdial:
Kod:
sudo gedit /etc/wvdial.conf
Cytat:[Dialer Defaults]Dodatkowo:
Modem Type = Analog Modem
Phone = *99#
ISDN = 0
Username =;
Password =;
Init1 = AT+CGDCONT=1,"IP","darmowy","",0,0
Init2 = AT^SYSCFG=14,0,3FFFFFFF,1,2 # wymuszenie 3G
;Init2 = AT^SYSCFG=2,2,2000000000000,1,2 # wymuszenie wcdma900
Modem = /dev/ttyUSB0
Baud = 460800
Carrier Check = no
Dial Command = ATDTW
Stupid Mode = 1
Auto DNS = 1
Kod:
sudo gedit /etc/ppp/peers/wvdial
Cytat:defaultroute
Kod:
sudo gedit /etc/ppp/options
Dodajemy, odhashowujemy:
Cytat:-chap
Kod:
sudo gedit /etc/ppp/options
Cytat:persistKonfiguracja demona hostapd:
Kod:
sudo gedit /etc/default/hostapd
Cytat:DAEMON_CONF="/etc/hostapd.conf"
RUN_DAEMON=yes
Kod:
sudo gedit /etc/hostapd.conf
Cytat:interface=wlan0Konfiguracja interfejsów sieciowych i przy okazji ustawienie iptables:
driver=nl80211
ssid=necik
channel=6
ignore_broadcast_ssid=0
country_code=PL
ieee80211d=1
hw_mode=g
# supported_rates=10 20 55 110 60 90 120 180 240 360 480 540
# ieee80211n=1
# ht_capab=[HT40+][SHORT-GI-40][DSSS_CCK-40]
beacon_int=100
dtim_period=2
macaddr_acl=0
max_num_sta=20
rts_threshold=2347
fragm_threshold=2346
#auth_algs=3
# wmm
wmm_enabled=0
Kod:
sudo gedit /etc/network/interfaces
Cytat:auto loUstawiamy demona dnsmasq:
iface lo inet loopback
auto ppp0
iface ppp0 inet wvdial
auto wlan0
iface wlan0 inet static
address 192.168.3.1
netmask 255.255.255.0
broadcast 192.168.3.255
up /sbin/iptables -F
up /sbin/iptables -X
up /sbin/iptables -t nat -F
up iptables -A FORWARD -o ppp0 -i wlan0 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
up iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
up iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
up sysctl -w net.ipv4.ip_forward=1
Kod:
sudo gedit /etc/dnsmasq.conf
Cytat:interface=wlan0
no-dhcp-interface=ppp0
dhcp-range=interface:wlan0,192.168.3.20,192.168.3.200,infinite
wvdial coś nie chce wznawiać ostatnio połączenia automatycznie, zatem tworzymy do tego skrypt i przy okazji będzie łączył po wsunięciu modemu:
Kod:
sudo gedit /usr/local/bin/wznawiaj_ppp0
Cytat:#!/bin/bash
LOGGER=/usr/bin/logger
MSG="$0 (PID:$$) uruchomiony"
echo $MSG
$LOGGER "$MSG"
PROG="wvdial"
PID=`pidof $PROG`
if test "$PID" != "" ;
then
echo "$PROG jest uruchomiony (PID: $PID)..."
exit 0
fi
MSG="$0 (PID:$$): $PROG nie jest uruchomiony!! Uruchamianie $PROG ..."
echo $MSG
$LOGGER "$MSG"
CMD="/sbin/ifdown ppp0"
MSG="$0 (PID:$$): wykonywanie polecenia: $CMD "
echo $MSG
$LOGGER "$MSG"
$CMD
CMD="/sbin/ifup ppp0"
MSG="$0 (PID:$$): wykonywanie polecenia: $CMD "
echo $MSG
$LOGGER "$MSG"
$CMD
exit 0
Nadajemy skryptowi uprawnienia wykonalności.
Edytujemy:
Kod:
sudo gedit /etc/crontab
Cytat:*/1 * * * * root /usr/local/bin/wznawiaj_ppp0