Comandos de terminal equivalentes a la opción "Usar como punto de acceso" de NetworkManager

10

Estoy haciendo una aplicación gui que controlará mi computadora portátil para que actúe como un punto de acceso wifi. Puedo cambiar las distribuciones, así que quiero encontrar una solución que funcione en general para todas las distribuciones. Actualmente estoy haciendo esto en Fedora 17.

El uso del botón "Usar como punto de acceso" de NetworkManager funciona muy bien para crear un punto de acceso ad-hoc: ingrese la descripción de la imagen aquí

Quiero recrear esta funcionalidad con comandos de terminal.

A continuación hay dos métodos que intenté lograr, pero aún no he encontrado una solución.


Método 1: iwconfig
Utilizando la investigación de toda la web, probé el siguiente 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

donde saved-hotspot-iptableses un archivo que generé con iptables-save > saved-hotspot-iptableslas iptables establecidas por la función "Usar como punto de acceso".

Método 1 Problema Los
dispositivos pueden ver el SSID pero no pueden conectarse. Correr ip arevela lo siguiente sobre wlan0:

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

El aviso NO-CARRIERestá presente y el estado es en DORMANTlugar de UP.

Correr ifconfig wlan0muestra lo siguiente:

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

Observe que RUNNINGfalta como una de las banderas.


Método 2: nmcli
Si se presiona el botón "Usar como punto de acceso " de NetworkManager al menos una vez en el sistema, /etc/sysconfig/network-scripts/ifcfg-Hotspotse crea y puedo usar el siguiente comando para iniciar un punto de acceso que funcione:

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

Método 2 Problema
Si el usuario nunca ha presionado "Usar como punto de acceso" en NetworkManager antes, nmcli con up id Hotspotno funcionará. Lo miré nm-connection-editor --createpero no pude encontrar mucha información. También he examinado la creación manual, /etc/sysconfig/network-scripts/ifcfg-Hotspotpero este método no parece elegante ni extensible a otras distribuciones.

Daniel
fuente
Por favor, no cruce .
mgorven
1
Prueba wicd . Es similar a NetworkManager pero tiene una interfaz de modo de texto. No sé si tiene una función de punto de acceso.
Gilles 'SO- deja de ser malvado'
Gracias por el consejo Gilles, voy a probarlo de inmediato.
Daniel
@Gilles Intenté wicd pero parece tener incluso menos funcionalidad que nmcli.
Daniel

Respuestas:

1

Vea mi respuesta a "Crear punto de acceso inalámbrico y compartir conexión a Internet con nmcli"

Creé un punto de acceso con el Administrador de red de GNOME. El problema era que no puedo configurar el SSID y la contraseña en la GUI. Si crea el Hotspot con la GUI de Network-Manager, crea el archivo /etc/NetworkManager/system-connections/Hotspot. En ese archivo es posible editar el SSID y la contraseña.

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

El contenido del archivo se ve así:

[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

Sólo cambió el ssidy las pskpropiedades a mis necesidades. Luego reinicié mi computadora porque el comando: sudo systemctl restart NetworkManagerpara reiniciar la red parece no funcionar correctamente, porque en la GUI de Network-Manager ya no tengo configuraciones de red inalámbrica y el siguiente comando no funcionó antes del reinicio. Después de reiniciar, puede usar el nmclicomando para iniciar el punto de acceso.

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACEpuedes averiguarlo con el comando iwconfig.

BuZZ-dEE
fuente
1

Hay una opción dedicada en nmcli:

nmcli device wifi hotspot ifname wlan0 ssid toto password toto

Más información del manual :

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

Se necesitaba un servidor DHCP para asignar direcciones IP a las conexiones wifi. Solía dnsmasqun servidor DNS y DHCP.

Los siguientes son los comandos para iniciar un punto de acceso 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
Daniel
fuente