Tworzę aplikację GUI, która będzie kontrolować mój laptop, aby działał jak hotspot Wi-Fi. Mogę zmienić dystrybucje, więc chcę znaleźć rozwiązanie, które będzie działać ogólnie dla wszystkich dystrybucji. Obecnie robię to na Fedorze 17.
Użycie przycisku „Użyj jako hotspot” NetworkManagera działa bardzo dobrze, aby utworzyć hotspot ad-hoc:
Chcę odtworzyć tę funkcję za pomocą poleceń terminalu.
Poniżej znajdują się dwie metody, które starałem się osiągnąć, ale nie znalazłem jeszcze rozwiązania.
Metoda 1: iwconfig
Korzystając z badań z całej sieci, wypróbowałem następujące polecenie:
# ifconfig wlan0 10.42.0.1 netmask 255.555.255.0 broadcast 10.42.0.255 up
# iwconfig wlan0 essid my-lappy mode ad-hoc key 0123456789
# iptables-restore < saved-hotspot-iptables
# echo 1 > /proc/sys/net/ipv4/ip_forward
# dhclient wlan0
gdzie saved-hotspot-iptables
jest plik, który wygenerowałem za iptables-save > saved-hotspot-iptables
pomocą iptables ustawionych przez funkcję „Użyj jako hotspot”.
Metoda 1 Problem
Urządzenia widzą SSID, ale nie mogą się połączyć. Uruchomienie ip a
ujawnia następujące informacje o wlan0:
...
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT qlen 1000
...
Zawiadomienie NO-CARRIER
jest obecne, a stan jest DORMANT
zamiast UP
.
Uruchomienie ifconfig wlan0
pokazuje:
...
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
...
Zauważ, że RUNNING
brakuje jej jako jednej z flag.
Metoda 2: nmcli
Jeśli przycisk „Użyj jako hotspot” NetworkManagera zostanie naciśnięty co najmniej raz w systemie, /etc/sysconfig/network-scripts/ifcfg-Hotspot
zostanie utworzony i mogę użyć następującego polecenia, aby uruchomić działający hotspot:
# ifconfig wlan0 up
# nmcli con up id Hotspot
# iwconfig wlan0 essid my-lappy key 0123456789
Metoda 2 Problem
Jeśli użytkownik nigdy wcześniej nie nacisnął „Użyj jako hotspot” w NetworkManager, nmcli con up id Hotspot
nie będzie działać. Patrzyłem, nm-connection-editor --create
ale nie mogłem znaleźć wielu informacji. Zajrzałem także do ręcznego tworzenia, /etc/sysconfig/network-scripts/ifcfg-Hotspot
ale ta metoda nie wydaje się elegancka ani rozszerzalna na inne dystrybucje.
Odpowiedzi:
Zobacz moją odpowiedź na temat „Utwórz bezprzewodowy punkt dostępowy i udostępnij połączenie internetowe
nmcli
”Utworzyłem Hotspot za pomocą GNOME Network-Manager. Problem polegał na tym, że nie mogę skonfigurować SSID i hasła w GUI. Jeśli utworzysz punkt aktywny za pomocą interfejsu GUI menedżera sieci, plik zostanie utworzony
/etc/NetworkManager/system-connections/Hotspot
. W tym pliku można edytować identyfikator SSID i hasło.Zawartość pliku wygląda następująco:
Zmieniłem tylko
ssid
ipsk
właściwości do moich potrzeb. Następnie zrestartowałem komputer, ponieważ polecenie:sudo systemctl restart NetworkManager
dla restartu sieci wydaje się nie działać poprawnie, ponieważ w graficznym interfejsie menedżera sieci nie mam już żadnych ustawień sieci bezprzewodowej, a także następujące polecenie nie zadziałało przed restartem. Po ponownym uruchomieniu możesz użyćnmcli
polecenia, aby uruchomić punkt dostępu.YOUR_WIFI_INTERFACE
możesz dowiedzieć się za pomocą poleceniaiwconfig
.źródło
Istnieje dedykowana opcja w
nmcli
:Więcej informacji z instrukcji :
źródło
Serwer DHCP był potrzebny do przypisania adresów IP połączeniom Wi-Fi. Użyłem
dnsmasq
serwera DNS i DHCP.Oto polecenia, aby uruchomić hotspot Wi-Fi ad-hoc:
źródło