Comandos de terminal equivalentes à opção "Usar como ponto de acesso" do NetworkManager


10

Estou criando um aplicativo GUI que controlará meu laptop para que ele atue como um hotspot wifi. Posso alterar as distribuições, por isso quero encontrar uma solução que funcione geralmente para todas as distribuições. Atualmente, estou fazendo isso no Fedora 17.

O uso do botão "Usar como ponto de acesso" do NetworkManager funciona muito bem para criar um ponto de acesso ad-hoc: insira a descrição da imagem aqui

Eu quero recriar essa funcionalidade com comandos de terminal.

Abaixo estão dois métodos que tentei fazer isso, mas ainda não encontrei uma solução.


Método 1: iwconfig
Usando pesquisas de toda a web, tentei o seguinte comando:

# 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

Onde saved-hotspot-iptablesestá um arquivo que eu gerei com iptables-save > saved-hotspot-iptableso iptables definido pela função "Use as Hotspot".

Método 1 Problema Os
dispositivos podem ver o SSID, mas não conseguem se conectar. A execução ip arevela o seguinte sobre o wlan0:

...
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT qlen 1000
...

O aviso NO-CARRIERestá presente e o estado está em DORMANTvez de UP.

A execução ifconfig wlan0mostra o seguinte:

...
wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
...

Observe que RUNNINGestá faltando como um dos sinalizadores.


Método 2: nmcli
Se o botão "Usar como ponto de acesso" do NetworkManager for pressionado pelo menos uma vez no sistema, ele /etc/sysconfig/network-scripts/ifcfg-Hotspotserá criado e eu posso usar o seguinte comando para iniciar um ponto de acesso em funcionamento:

# ifconfig wlan0 up
# nmcli con up id Hotspot
# iwconfig wlan0 essid my-lappy key 0123456789

Método 2 Problema
Se o usuário nunca pressionou "Usar como ponto de acesso" no NetworkManager antes, nmcli con up id Hotspotnão funcionará. Eu olhei, nm-connection-editor --createmas não consegui encontrar muita informação. Também procurei criar manualmente, /etc/sysconfig/network-scripts/ifcfg-Hotspotmas esse método não parece elegante nem extensível a outras distribuições.


Por favor, não cruze .
mgorven

1
Tente wicd . É semelhante ao NetworkManager, mas possui uma interface em modo de texto. Não sei se ele possui um recurso de ponto de acesso.
Gilles 'SO- stop be evil'

Obrigado pela dica Gilles, vou experimentá-lo imediatamente.
Daniel

@ Gilles eu tentei wicd, mas parece ter ainda menos funcionalidade, em seguida, nmcli.
6174 Daniel

Respostas:


1

Consulte minha resposta para "Criar ponto de acesso sem fio e compartilhar conexão com a Internet nmcli"

Eu criei um ponto de acesso com o GNOME Network-Manager. O problema era que não consigo configurar o SSID e a senha na GUI. Se você criar o Hotspot com a GUI do Network-Manager, ele criará o arquivo /etc/NetworkManager/system-connections/Hotspot. Nesse arquivo, é possível editar o SSID e a senha.

sudo vim /etc/NetworkManager/system-connections/Hotspot

O conteúdo do arquivo fica assim:

[connection]
id=Hotspot
uuid=0bf627gd-8e34-48c6-865a-06f898b4y1hb
type=wifi
autoconnect=false
permissions=
secondaries=

[wifi]
hidden=false
mac-address=YOUR_WIFI_INTERFACE_MAC_ADDRESS
mac-address-blacklist=
mode=ap
seen-bssids=
ssid=SSID_NAME

[wifi-security]
group=ccmp;
key-mgmt=wpa-psk
pairwise=ccmp;
proto=rsn;
psk=YOUR_WIFI_AP_PASSWORD

[ipv4]
dns-search=
method=shared

[ipv6]
dns-search=
method=auto

Apenas alterei ssidas pskpropriedades e as de acordo com minhas necessidades. Em seguida, reiniciei o computador porque o comando: sudo systemctl restart NetworkManagerpara reinicialização da rede parece não funcionar corretamente, porque na GUI do Network-Manager não tenho mais configurações de rede sem fio e também o comando a seguir não funcionou antes da reinicialização. Após a reinicialização, você pode usar o nmclicomando para iniciar o ponto de acesso.

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACEvocê pode descobrir com o comando iwconfig.


1

Existe uma opção dedicada em nmcli:

nmcli device wifi hotspot ifname wlan0 ssid toto password toto

Mais informações do manual :

wifi hotspot [ifname ifname] [con-name name] [ssid SSID] [ band { a | bg } ] [channel channel] [password password] 

0

Um servidor DHCP era necessário para atribuir endereços IP a conexões wifi. Eu usei dnsmasq, um servidor DNS e DHCP.

A seguir, são apresentados os comandos para iniciar um ponto de acesso wifi ad-hoc:

# 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
# dnsmasq -C /dev/null >/dev/null 2>&1 --bind-interfaces --listen-address=10.42.0.1 --dhcp-range=10.42.0.10,10.42.0.200,12h
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.