Difference between revisions of "NetworkManager (Español)"

From ArchWiki
Jump to: navigation, search
(Actualización)
Line 9: Line 9:
 
[[tr:NetworkManager]]
 
[[tr:NetworkManager]]
 
[[zh-CN:NetworkManager]]
 
[[zh-CN:NetworkManager]]
{{translateme}}
+
{{Article summary start|Sumario}}
 
+
{{Article summary text|Este artículo trata sobre la instalación y configuración de NetworkManager - un conjunto de herramientas cooperativas que hacen de la gestión de las redes algo simple y directo.}}
{{Article summary start}}
+
{{Article summary heading|Descripción}}
{{Article summary text|Covers installation and configuration of NetworkManager – a set of co-operative tools that make networking simple and straightforward.}}
+
{{Article summary text|Arch Linux provee [[netcfg (Español)|netcfg]] para la [[Configuring_Network_(Español)|gestión de la red]]. {{ic|netcfg}} proporciona soporte para conexiones cableadas en desktops y servidores, así como configuraciones de [[Wireless Setup (Español)|conexiones inalámbricas]] y roaming para la movilidad de los usuarios, permitiendo una fácil gestión de los perfiles de red. '''NetworkManager''' y [[Wicd (Español)|Wicd]] son alternativas populares de terceros.}}
{{Article summary heading|Overview}}
+
{{Article summary text|{{Networking overview}}}}
+
 
{{Article summary end}}
 
{{Article summary end}}
  
 +
[http://projects.gnome.org/NetworkManager/ NetworkManager] es un programa que proporciona a los sistemas la detección y configuración automática para conectarse a la red. Las funcionalidades de NetworkManager son útiles tanto para redes inalámbricas como por cable. Para las redes inalámbricas, NetworkManager prefiere las redes conocidas y tiene la capacidad de cambiar a la red más confiable. NetworkManager permite que las aplicaciones puedan cambiar de modalidad en línea y fuera de línea. NetworkManager da preferencia a las conexiones por cable antes que a las inalámbricas, tiene soporte para conexiones por módem y para ciertos tipos de VPN. NetworkManager fue originariamente desarrollado por Red Hat y ahora es respaldado por el proyecto [[GNOME]].
  
= Introduccion =
+
== Intalación base ==
Network Manager es un set de herramientas co-operativas que hacen de la creación de redes simple y directa. Sea cableada o inalámbrica, Network Manager te permite mover rapidamente de una conexión a otra: una ves que NetworkManager se ha configurado y conectado a una red, esta puede ser detectada y re-conectada automáticamente a posteriori.
+
  
La versión 0.7 es una versión importante de Network Manager.
+
NetworkManager se puede instalar con el paquete {{Pkg|networkmanager}}, disponible en los [[official repositories|repositorios oficiales]].
  
Algunas de las nuevas características incluyen:
+
=== Soporte VPN ===
  
    * Soporte para tarjetas de datos celulares
+
Network Manager tiene soporte para las redes VPN mediante un sistema basado en plug-ins. Si necesita asistencia técnica VPN a través del gestor de la red hay que instalar uno de los siguientes paquetes de los [[official repositories|repositorios oficiales]]:
    * Diversos dispositivos activos
+
    * Configuración global del sistema
+
    * Interfaz de control dbus wpa_supplicant
+
    * Mas métodos de autenticación para redes cableadas/inalámbricas
+
  
==Paso 1: Instalación==
+
    networkmanager-openvpn
{{Pkg|NetworkManager}} esta disponible en el repositorio {{Ic|[extra]}}:
+
    networkmanager-pptp
# pacman -S networkmanager
+
    networkmanager-vpnc
  
==Paso 2: GUIs==
+
== Interfaces gráficas ==
  
===GNOME===
+
Para configurar y acceder fácilmente a NetworkManager la mayoría de los usuarios desearán instalar un applet. Esta GUI normalmente se ubica en la bandeja del sistema (o área de notificación) y permite la selección de red y la configuración de NetworkManager. Existen distintos tipos de applets para los diferentes tipos de entornos de escritorio.
network-manager-applet (anteriormente gnome-network-manager) también esta ahi:
+
# pacman -S network-manager-applet
+
  
Si ningún icono de nm-applet esta en uno de tus paneles en GNOME, y si embargo estas seguro de que se esta ejecutando, intenta agregando un "Área de notificación" al panel.
+
=== GNOME ===
  
===KDE===
+
El applet de GNOME {{Pkg|network-manager-applet}} (anteriormente gnome-network-manager) es lo suficientemente ligero y funciona en todos los entornos.
KNetworkManager proporciona un icono en la bandeja del sistema y la configuración:
+
# pacman -S kdeplasma-applets-networkmanagement
+
  
====KDE3====
+
Si desea guardar los datos de autentificación (Wireless/DSL) y activar la configuración global de las conexiones, es decir, «disponible para todos los usuarios» instale y configure [[GNOME Keyring]].
Puedes intentar usar knetworkmanager el cual ''ya no es mantenido en ningún repositorio oficial de Arch''. Puedes obtenerlo desde [[AUR]].
+
  
===Xfce===
+
=== KDE4 ===
Xfce usa el mismo paquete que GNOME:
+
# pacman -S network-manager-applet
+
  
También podes instalar el plugin xfapplet, el cual permite que los applets de GNOME sean visualizados en el panel de xfce4:
+
El front-end para KNetworkManager se ha hecho disponible desde KDE 4.4 como un widget de Plasma disponible en los repositorios oficiales:
# pacman -S xfce4-xfapplet-plugin
+
{{Pkg|kdeplasma-applets-networkmanagement}}.
  
Si después de la instalación tenes cuatro o más instancias de nm-applet ejecutándose cuando los servicios de gnome inician automáticamente y vos no estas usando un administrador de sesión, considera hacer lo siguiente:
+
En comparación con GNOME funciona igual de bien, o incluso mejor (tiene más características y detecta más hardware).
#Matar todos los procesos de nm-applet
+
#Agregar {{Ic|nm-applet --sm-disable}} a la lista de aplicaciones al inicio
+
#Salir de Xfce
+
#Borrar el archivo de sesión de XFCE (en {{ic|~/.cache/sessions/}})
+
#Ingresar en Xfce
+
  
===Fluxbox y otros WMs===
+
{{Nota|Si va a cambiar a otra herramienta para gestionar la red como [[Wicd]], no se olvide ajustar el valor predefinido 'Network Management Backend' en
Necesitarás el tema hicolor para poder ejecutar nm-applet:
+
Configuración del sistema -> Hardware -> Fuentes de información}}
# pacman -S network-manager-applet hicolor-icon-theme gnome-icon-theme
+
  
Después de configurar tu sistema para usarlo con NetworkManager, el inicio automático del applet se hace yendo a ''Configuración → Aplicaciones al inicio'' luego agrega, {{Ic|"nm-applet --sm-disable &"}}. Esto deberia iniciar el network manager applet al inicio. La opción {{Ic|"--sm-disable"}} es usada para prevenir multiples instancias de el nm-applet, y solo lo necesitas si multiples instancias se estan ejecutando cuando inicias sesión.
+
Si tiene instalado tanto el widget Plasma como {{ic|nm-applet}} y no desea iniciar {{ic|nm-applet}} cuando usa KDE, añada la siguiente línea a {{ic|/etc/xdg/autostart/nm-applet.desktop}}:
 +
NotShowIn=KDE
  
*NetworkManager parece tener problemas para cargar en varios box-environments y compiz. Usando el prefijo '''ck-launch-session''', nm-applet parece trabajar bien.
+
=== KDE3 ===
Ex.,
+
Aunque ya no es compatible, el paquete {{AUR|kdemod3-knetworkmanager}} se puede encontrar en [[AUR]]. Esta es una versión modificada de KNetworkManager para el DE [[Trinity]] y requiere NetworkManager 0.8.
exec ck-launch-session startlxde
+
  
===Linea de Comandos===
+
=== XFCE ===
[https://aur.archlinux.org/packages.php?ID=29595 cnetworkmanager], disponible en [[AUR]], puede ser usada para configurar conexiones desde la linea de comandos.
+
El paquete {{Pkg|network-manager-applet}} no tendrá ningún problema en XFCE, pero para ver las notificaciones, ''incluidos los mensajes de error'', necesitará {{ic | nm-applet}}, una específica implementación de Freedesktop (consulte [http://www.galago-project.org/specs/notification/0.9/index.html Proyecto Galapago]) para mostrar las notificaciones. Para activar las notificaciones, instale {{pkg | xfce4-notifyd}}, un paquete que proporciona una implementación de la especificación.
  
==Paso 3: Configuración==
+
Sin un demonio de notificación, {{ic|nm-applet}} generará los siguientes errores en stdout/stderr:
  
===Desactivar las interfaces===
+
  (nm-applet:24209): libnotify-WARNING **: Failed to connect to proxy
Si queres usar NetworkManager en una interfaz tendrás que desactivar las interfaces en {{ic|/etc/[[rc.conf]]}}. Lo podes hacer poniendo un {{Ic|"!"}} al frente de la interfaz de tu elección, por ejemplo:
+
  INTERFACES=(!eth0 !ath0)
+
  
{{Note|Tal vez necesites activar (es decir, quitar el {{Ic|"!"}}) de eth0 de nuevo para que tu tarjeta funcione. Confirmado con el módulo ath_pci madwifi - también puede ser que tangas que volver a activar las tarjetas de red para que funcionen.}}
+
** (nm-applet:24209): WARNING **: get_all_cb: couldn't retrieve
 +
system settings properties: (25) Launch helper exited with unknown
 +
return code 1.
  
NetworkManager analiza {{ic|/etc/rc.conf}} para ver si queres una IP estática o dinámica, entonces expresa tu configuración preferia ahí.
+
** (nm-applet:24209): WARNING **: fetch_connections_done: error
 +
fetching connections: (25) Launch helper exited with unknown return
 +
code 1.
  
Ejemplo para IP estática:
+
** (nm-applet:24209): WARNING **: Failed to register as an agent:
  eth0="eth0 172.19.3.18 netmask 255.255.255.0 broadcast 172.19.3.255"
+
(25) Launch helper exited with unknown return code 1
  
Ejemplo para Ip dinámica:
+
{{ic|nm-applet}} funciona normalmente, pero sin notificaciones.
  eth0="dhcp"
+
  
===Establecer hostname===
+
=== Openbox ===
Por defecto NetworkManager 0.7 hará una búsqueda inversa de tu IP para determinar tu hostname. Generalmente, esto dará "localhost" o "localhost.localdomain". También intentará manipular el hostname de el sistema sobre la marcha lo cual ocasionalmente romperá Xorg.
+
La solución es crear el archivo {{ic|/etc/NetworkManager/nm-system-settings.conf}}, y agregar lo siguiente:
+
[main]
+
plugins = keyfile
+
 
+
[keyfile]
+
hostname = <your hostname>
+
  
Asegurate de verificar que {{ic|/etc/hosts}} esta bien antes de continuar porque NetworkManager puede haberlo alterado antes de que tuvieras la oportunidad de cambiar esta configuración.
+
Para que NetworkManager funcione correctamente en Openbox, el applet de GNOME requiere el demonio de notificación {{pkg|xfce4-notifyd}}, por la misma razón que en XFCE, y el paquete {{pkg|gnome-icon-theme}} para poder mostrar el applet en la bandeja del sistema.
  
===Editar daemons===
+
Si desea guardar los datos de autentificación (Wireless/DSL) instale y configure [[gnome-keyring]].
Debes deshabilitar el daemon ''network'' y agregar los daemons ''hal'' y ''networkmanager'' en este orden:
+
DAEMONS=( ... !network '''hal networkmanager''' ... )
+
{{Warning|No uses hal y networkmanager en segundo plano, ya que puede causar la congelación de las entradas de los dispositivos de entrada al inicio de Xorg.}}
+
  
{{Note|si te sucede que especificaste el daemon ''fam'', este ''debe'' aparecer ''después'' de networkmanager. Lo mismo se aplica para  '''portmap''' y '''netfs''' si se especifica.}}
+
{{Nota|Si el demonio ''networkmanager'' se encuentra en {{ic | rc.conf}}, las configuraciones siguientes están obsoletas y el applet se iniciará dos veces.}}
  
===Ingresar al grupo Network===
+
Para poder iniciar automáticamnte {{ic|nm-applet}} correctamente al arranque de Openbox, puede que tenga que eliminar el archivo {{ic|/etc/xdg/autostart/nm-applet.desktop}} (Es posible que necesite eliminar este archivo de nuevo después de cada actualización del paquete {{pkg|network-manager-applet}}).
Agregate al grupo network, reemplazando {{Ic|USUARIO}} con el nombre de usuario apropiado:
+
  # gpasswd -a USUARIO network
+
  
===Configurando los servicios de Red===
+
Luego, en {{ic|autostart}}, active el inicio de {{ic|nm-applet}} con la siguiente línea:
Ahi unos cuanto sevicios de red que vos no querrás que se ejecuten hasta que aparezca la interfaz de NM. Algunos buenos ejemplos son {{Ic|ntpd}} y montaje de sistemas de archivos de red de varios tipos. NetworkManager puede empezar esos servicios cunado inicies la interfaz de NetworkManager, y detenerlos cuando la cierres.
+
  
Para usar esta característica, agrega scripts a {{ic|/etc/NetworkManager/dispatcher.d}} y hacelos ejecutables para todos los usuarios. Por seguridad, hacelos propiedad de '''root:root''' y editables solo por el propietario. Los scripts serán ejecutados en orden alfabético en el momento en que la interfaz inicie(con los argunmentos ''interface'' '''up'''), y en orden alfabético inverso cunado la interfaz se cierra (con argumentos ''interface'' '''down'''). Para asegurarse en que orden inician, simplemente agrega un caracter alfabetico y una guión bajo al frente del nombre del script; por ejemplo, '''a_portmap''' y '''b_netfs''' (lo cual asegura que el asignador de puertos (portmapper) inicie antes de intentar montar NFS).
+
(sleep 3 && /usr/bin/nm-applet --sm-disable) &
  
Un esquema de nombres útiles: '''a_portmap  b_netfs  c_ntpdate  d_ntpd  e_cups  f_clamav'''. Typical usage for this is running a local NTP server on a system that does not connect to foreign wireless networks, and that also employs NFS mounts. There is no point in cups if you are not on the network. Clamav's '''freshclam''' signature updater requires networking to connect.
+
Si se producen errores de conexión, asegúrese de que tiene [[D-Bus]] iniciado en la sesión de usuario.
  
{{Warning|If you connect to foreign or public networks, be aware of what services you are starting and what servers you expect to be available for them to connect to. You could make a security hole by starting the wrong services while connected to a public network.}}
+
=== Otros escritorios y gestores de ventanas ===
  
===Proxy settings===
+
En todos los demás casos, se recomienda usar el applet de GNOME. Deberá asegurarse que tiene instalado el paquete {{pkg|gnome-icon-theme}} para poder ver el applet.
Network Manager does not directly handle proxy settings.
+
  
See: [[Proxy settings]]
+
Para guardar información confidencial sobre las conexiones instale y configure [[gnome-keyring]].
  
===PolicyKit issues===
+
Para ejecutar {{ic | nm-applet}} en un entorno sin una bandeja de sistema, puede utilizar {{pkg|trayer}} o {{pkg|stalonetray}}. Por ejemplo, puede agregar un script como este a su propia ruta:
{{Note|Following is probably not need for KDE 4 anymore, as there should be PolicyKit integration as of KDE 4.3. At least with knetworkmanager from [kdemod-core], the author did not run into any troubles.}}
+
{{hc|nmgui|<nowiki>
 +
#!/bin/sh
 +
nm-applet    > /dev/null 2>/dev/null &
 +
stalonetray  > /dev/null 2>/dev/null
 +
killall nm-applet
 +
</nowiki>}}
  
Because many Display Managers (including KDM) do not natively support policykit at login, you will run into some permission issues with D-Bus and NetworkManager.
+
Al cerrar la ventana de stalonetray, cierra {{ic|nm-applet}} también, así que no consume memoria extra una vez que haya terminado con la configuración de red.
  
While there are several options to resolve this issue, choose ''only'' one:
+
=== Desde la línea de comandos ===
  
* Install Consolekit and add the following line to {{ic|/etc/pam.d/kde}}:
+
La paquete {{pkg|networkmanager}} contiene [http://manpages.ubuntu.com/manpages/maverick/man1/nmcli.1.html nmcli] desde la versión 0.8.1.
  session      optional        pam_ck_connector.so
+
{{Warning|This may cause the malfunction of KDE PowerDevil.}}
+
  
* Add the following lines to {{ic|/etc/dbus-1/system.d/NetworkManager.conf}}:
+
== Configuración ==
        <policy group="users">
+
                <allow send_destination="org.freedesktop.NetworkManager"/>
+
                <allow send_interface="org.freedesktop.NetworkManager"/>
+
        </policy>
+
:If this does not work, check if there are any policy errors by starting NetworkManager manually:
+
  # kill `pidof NetworkManager`
+
  # NetworkManager --no-daemon
+
  
* Put the following script in ~/.kde4/Autostart or similar for other WMs or DEs:
+
NetworkManager requiere algunos pasos adicionales para ser capaz de ejecutarse correctamente.
  #!/bin/bash
+
  ck-launch-session
+
  
* If none of those work, refer to this thread: http://bbs.archlinux.org/viewtopic.php?id=63576
+
Antes de comenzar, compruebe que {{ic|/etc/hosts}} está configurado correctamente. Si ya ha intentado conectarse antes de realizar este paso, NetworkManager puede haberlo modificado. He aquí un ejemplo de línea hostname en {{ic|/etc/hosts}}:
  
==Troubleshooting==
+
{{bc|
 +
#<ip-address> <hostname.domain.org>          <hostname>                       
 +
127.0.0.1    localhost.localdomain localhost dell-latitude
 +
}}
  
===DHCP problems===
+
=== Desactivar la configuración de la red actual ===
If you have problems with getting an IP via DHCP try to add the following to your {{ic|/etc/dhclient.conf}}:
+
 
 +
Si ya tiene configurada la red es aconsejable deshabilitarla para poder probar correctamente NetworkManager:
 +
# Si utiliza los scripts de red de Arch Linux, ejecute el demonio de red [[Daemon|stop]].
 +
# Desactive el propio NIC (Network Interface Controllers, es decir, las tarjetas de red). Por ejemplo (usando el paquete {{pkg|iproute2}}): {{bc|<nowiki>
 +
ip link set down eth0
 +
ip link set down wlan0
 +
</nowiki>}}
 +
# Edite {{ic|/etc/rc.conf}} donde se define DHCP o las direcciones IP estáticas, comentando las salidas: {{Nota|Los siguientes ajustes están obsoletos para el rc.conf más reciente.}} {{bc|<nowiki>
 +
#eth0="hcp"                                                         
 +
#wlan0="dhcp"                                                                 
 +
INTERFACES=(!eth0 !wlan0)
 +
</nowiki>}}
 +
# Por último, edite {{ic|/etc/rc.conf}} para '''eliminar network''', el demonio de red por defecto, o cualquier otro demonio de gestión de red que pueda estar usando.
 +
 
 +
=== Habilitar NetworkManager ===
 +
 
 +
La forma de habilitar NetworkManager dependerá de cómo esté configurado el sistema. Las nuevas instalaciones utilizan ahora [[systemd]] de forma predeterminada. Muchos usuarios han hecho la transición a systemd, que se convertirá en el futuro en el sistema predeterminado.
 +
 
 +
Una vez que el demonio NetworkManager se ha iniciado, se conectará automáticamente a cualesquiera «conexiones del sistema» disponibles que estén configuradas. Las «conexiones del usuario» o las conexiones no configuradas necesitarán {{ic|nmcli}} o un applet para la configuración y la conexión.
 +
 
 +
==== Habilitar NetworkManager con initscripts ====
 +
 
 +
Para habilitar NetworkManager en el arranque, edite la línea ''DAEMONS'' en {{ic|/etc/rc.conf}} para '''añadir''' el demonio ''NetworkManager'', después del demonio dbus:
 +
 
 +
DAEMONS=( ...'''dbus networkmanager'''... )
 +
 
 +
Asegúrese de que el paquete {{pkg|dbus}} está instalado para cuando sea requerido por NetworkManager. Para iniciar otros servicios (daemons) que requieren una conexión de red consulte la siguiente sección sobre cómo configurarlos.
 +
 
 +
Puede iniciar el demonio NetworkManager inmediatamente con las siguientes órdenes:
 +
 
 +
{{bc|# rc.d start dbus}}
 +
{{bc|# rc.d start networkmanager}}
 +
 
 +
==== Habilitar NetworkManager con systemd ====
 +
 
 +
Puede activar NetworkManager para que se inicie en el arranque con la siguiente orden:
 +
 
 +
{{bc|# systemctl enable NetworkManager.service}}
 +
 
 +
Puede iniciar el demonio NetworkManager inmediatamente con la siguiente orden:
 +
 
 +
{{bc|# systemctl start NetworkManager.service}}
 +
 
 +
{{Nota|Si tiene servicios que no logran iniciarse correctamente antes de que la red esté operativa, tiene que usar {{ic|NetworkManager-wait-online.service}} en su lugar. Sin embargo, esto casi nunca será necesario, ya que la mayoría de los demonios de red se inician sobre la marcha muy bien, incluso si la red no se ha configurado todavía.}}
 +
 
 +
=== Configurar permisos PolicyKit ===
 +
 
 +
Véase [[General Troubleshooting#Session permissions]] para la creación de una sesión de trabajo.
 +
 
 +
Con una sesión de trabajo, tiene varias opciones para la concesión de los privilegios necesarios para NetworkManager:
 +
 
 +
''Opción 1.'' Ejecute un agente de autenticación [[PolicyKit]] cuando se conecte, como {{ic|/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1}} (es parte del paquete {{pkg|polkit-gnome}}). Se le pedirá la contraseña cada vez que agregue o quite una conexión de red.
 +
 
 +
''Opción 2.'' Añada su usuario al grupo {{ic|wheel}}. No tendrá que introducir su contraseña, pero necesitará garantizar los permisos particulares a los usuarios tales como la capacidad de usar [[sudo]] sin introducir la contraseña de root.
 +
 
 +
=== Servicios de red con NetworkManager dispatcher===
 +
 
 +
Hay algunos servicios de red que no se desean ejecutar hasta que NetworkManager crea la interfaz. Algunos ejemplos son [[OpenNTPD]] y diversos tipos de montajes de sistemas de archivos de red (por ejemplo, '''netfs'''). NetworkManager tiene la capacidad de iniciar estos servicios cuando se conecta a una red y detenerlos cuando se desconecta.
 +
 
 +
Para utilizar esta característica, se pueden añadir los scripts apropiados  a la carpeta  {{ic|/etc/NetworkManager/dispatcher.d}}. Estos scripts necesitan los permisos de ejecución del usuario. Por seguridad, es una buena práctica que sean propiedad de '''root: root''' y  con permisos de escritura únicamente para el propietario.
 +
 
 +
Los scripts se ejecutan en orden alfabético durante la fase de conexión, y en orden alfabético inverso durante la fase de desconexión. Reciben dos argumentos: el nombre de la interfaz (por ejemplo, ''eth0'') y el estado (''up'' o ''down''). A fin de garantizar el orden en que vayan surgiendo, es común el uso de caracteres numéricos puestos como prefijos delante del nombre del script (por ejemplo, {{ic|10_portmap}} o {{ic|30_netfs}} (que asegura que el mapeador de puertos se levante antes de que se intente montar NFS).
 +
 
 +
{{Advertencia|Por razones de seguridad, debe desactivar el acceso de escritura para el grupo y otro. Por ejemplo, utilice el filtro 755.
 +
En otro caso, puede ser denegada la ejecución del script con el mensaje de error:  «nm-dispatcher.action: Script could not be executed: writable by group or other, or set-UID» en {{ic|/var/log/messages.log}} }}
 +
{{Advertencia|Si se conecta a redes extranjeras o públicas, debe estar al tanto de cuáles son los servicios que están empezando y qué servidores se espera que estén disponibles para ellos al conectarse. Podría crear un agujero de seguridad al iniciar los servicios equivocados mientras está conectado a una red pública.}}
 +
 
 +
==== Iniciar OpenNTPD ====
 +
 
 +
El siguiente ejemplo de script inicia el demonio OpenNTPD cuando una interfaz se conecta. Guarde el archivo como {{ic|/etc/NetworkManager/dispatcher.d/20_openntpd}} y hágalo ejecutable.
 +
{{bc|<nowiki>
 +
#!/bin/sh
 +
 
 +
INTERFACE=$1 # The interface which is brought up or down
 +
STATUS=$2 # The new state of the interface
 +
 
 +
case "$STATUS" in
 +
    'up') # $INTERFACE is up
 +
exec /etc/rc.d/openntpd start
 +
;;
 +
    'down') # $INTERFACE is down
 +
# Check for active interface and down if no one active
 +
if [ ! `nm-tool|grep State|cut -f2 -d' '` == "connected" ]; then
 +
exec /etc/rc.d/openntpd stop
 +
fi
 +
;;
 +
esac
 +
</nowiki>}}
 +
 
 +
==== Montar carpeta remota con sshfs ====
 +
 
 +
Dado que el script viene ejecutado en un entorno muy restrictivo, es necesario exportar la variable {{ic|SSH_AUTH_SOCK}} para poder conectarse al propio agente SSH. Hay diferentes maneras para lograr esto, vea [https://bbs.archlinux.org/viewtopic.php?pid=1042030#p1042030 este link] para más información. El siguiente ejemplo funciona con [[gnome-keyring]], y le pedirá la contraseña si no está desbloqueada ya. En caso de que NetworkManager se conecte automáticamente al iniciar sesión, es probable gnome-keyring aún no se haya iniciado, de modo que la exportación fallará (de ahí que entre en modo de espera). Conocer la {{ic|UUID}} necesaria para comprobar que coincide se puede encontrar en {{ic|/etc/NetworkManager/system-connections/}}). 
 +
 
 +
#!/bin/bash
 +
USER=<your sshfs user>
 +
if [ $CONNECTION_UUID == <connection UUID> ]; then
 +
        case "$2" in
 +
 +
                up)
 +
                    #sleep 10
 +
                    export SSH_AUTH_SOCK=$(find /tmp/keyring-*/ -type s -user $USER -group users -name ssh)
 +
                    su $USER -c "/usr/bin/sshfs user@host:/remote/folder /local/folder/"
 +
                  ;;
 +
 +
                down)
 +
                    fusermount -u /local/folder
 +
                  ;;
 +
        esac
 +
  fi
 +
 
 +
==== Usar dispatcher para conectarse a VPN despues de establecer una conexión a red ====
 +
 
 +
En este ejemplo, conectaremos automáticamente a una conexión VPN, previamente definida en NetworkManager, después de conectarse a una red Wi-Fi específica. Lo primero que hay que hacer es crear el script dispatcher que define el comportamiento a realizar después de conectarse a la red.
 +
 
 +
:1. Cree el script dispatcher:
 +
{{hc|/etc/NetworkManager/dispatcher.d/vpn-up|<nowiki>
 +
  VPN_NAME=<name of VPN connection defined in NetworkManager>
 +
  ESSID=<wifi network ESSID (not connection name)>
 +
  if [ "$2" = "up" -o "$2" = "vpn-down" ]; then          # -o "$2" = "vpn-down" makes VPN reconnect after VPN connection interrupt
 +
    if [ "$(iwgetid | grep ':"'$ESSID'"')" ]; then      # check for ESSID match
 +
      nmcli con up id "$VPN_NAME";                      # parentheses needed for VPN connection names with spaces
 +
    fi
 +
  elif [ "$2" = "down" ]; then                          # disconnect VPN prior to disconnecting from the network
 +
    if [ "$(iwgetid | grep ':"'$ESSID'"')" ]; then      # check for ESSID match and that VPN is actually connected
 +
      if [ $(nmcli con status id "$VPN_NAME" | grep -c activated) ]; then
 +
        nmcli con down id "$VPN_NAME";
 +
      fi
 +
    fi
 +
  fi
 +
</nowiki>}}
 +
Recuerde que debe hacerlo ejecutable con {{ic|chmod +x}} y establecer la conexión VPN a disposición de todos los usuarios.
 +
 
 +
Intentando conectar usando esta configuración, se producirá un error y NetworkManager mostrará un mensaje de 'no valid VPN secrets', debido al [http://projects.gnome.org/NetworkManager/developers/migrating-to-09/secrets-flags.html método para guardar secretos de VPN] que nos lleva al paso 2:
 +
 
 +
:2. Edite el archivo de configuración de la conexión VPN para señalar a NetworkManager como el almacen de los parámetros confidenciales propios en vez incluirlo en el depósito de claves [https://bugzilla.redhat.com/show_bug.cgi?id=710552 que será inaccesible para el usuario root]: abra {{ic|/etc/NetworkManager/system-connections/<name of your VPN connection>}} y modifique {{ic|password-flags}} y {{ic|secret-flags}} de {{ic|1}} a {{ic|0}}.
 +
 
 +
{{Nota|Ahora es necesario volver a editar la configuración de la conexión de NetworkManager y volver a introducir las contraseñas/secretos de VPN.}}
 +
 
 +
=== Configuración del proxy ===
 +
 
 +
NetworkManager no gestona directamente la configuración del proxy, pero si está usando GNOME, puede usar [http://marin.jb.free.fr/proxydriver/ proxydriver], el cual se encarga de configurar el proxy utilizando la información de NetworkManager. Puede encontrar el paquete {{AUR|proxydriver}} en [[AUR]].
 +
 
 +
Para que proxydriver pueda cambiar la configuración del proxy, tendrá que ejecutar la siguiente orden, como parte del proceso de inicio de GNOME (Sistema -> Preferencias -> Aplicaciones de inicio):
 +
 
 +
xhost +si:localuser:your_username
 +
 
 +
Consulte: [[Proxy settings]]
 +
 
 +
== Comprobación ==
 +
 
 +
Los applets de NetworkManager están diseñados para cargarse al iniciar sesión, por lo que no debería ser objeto de configuración adicional para la mayoría de los casos. Si ya ha desactivado la configuración de red existente y ha desconectado la red, ahora puede comprobar si NetworkManager funciona. El primer paso es [[Daemon|iniciar]] el demonio ''networkmanager''.
 +
 
 +
Algunos applets proveen un archivo {{ic|.desktop}} para que el applet de NetworkManager se puede cargar a través del menú de la aplicación. Si no lo hace, tendrá que descubrir la orden para iniciarlo o reiniciar sesión otra vez para iniciar el applet. Una vez que el applet se inicia, es probable que comience a interrogar y ordenar conexiones de red, para después autoconfigurarse con un servidor DHCP.
 +
 
 +
Para iniciar el applet de GNOME en los gestores de ventanas no  compatibles con xdg como [[Awesome]]:
 +
 
 +
nm-applet --sm-disable &
 +
 
 +
Para las direcciones IP estáticas, tendrá que configurar NetworkManager para que las identifique. El proceso suele implicar pulsar con el botón derecho del ratón en el applet y seleccionar un menú similar a 'Editar las conexiones'.
 +
 
 +
== Solución de problemas ==
 +
 
 +
Algunas soluciones para los problemas más comunes.
 +
 
 +
=== Problemas con el tráfico de datos a través del canal PPTP ===
 +
 
 +
Puede suceder que el login a la conexión PPTP se haga de manera correcta, y vea que la interfaz ppp0 tiene una IP VPN exacta, y, sin embargo, no puede hacer ping a ninguna IP remota. Ello es debido a la falta del soporte MPPE (Microsoft Point-to-Point Encryption) que se encuentra en el paquete pppd de Arch. Se recomienda probar primero con el paquete estándar {{pkg|ppp}} de Arch que podría funcionar como es debido.
 +
 
 +
Para resolver el problema será suficiente instalar {{AUR|ppp-mppe}} desde [[AUR]].
 +
 
 +
=== Deshabilitada la gestión de Red ===
 +
 
 +
A veces, cuando NetworkManager se apaga, el archivo del PID (estado) no se retira y recibirá el mensaje de «Network management disabled». Si esto sucede, tendrá que quitarlo manualmente:
 +
 
 +
# rm /var/lib/NetworkManager/NetworkManager.state
 +
 
 +
Si esto sucede en el arranque, se puede añadir una acción al archivo {{ic|/etc/rc.local}} para que lo retire en el arranque:
 +
 
 +
{{bc|<nowiki>nmpid=/var/lib/NetworkManager/NetworkManager.state
 +
[ -f $nmpid ] && rm $nmpid</nowiki>}}
 +
 
 +
=== NetworkManager impide a DHCPCD el uso de resolv.conf.head y resolv.conf.tail ===
 +
 
 +
A veces es problemático agregar elementos estáticos a {{ic|resolv.conf}} cuando dicho archivo se está constantemente reescribiendo por NetworkManager y {{ic|dhcpcd}}. Una solución simple es usar el siguiente script:
 +
{{bc|<nowiki>
 +
#!/bin/bash
 +
#
 +
# /etc/NetworkManager/dispatcher.d/99-resolv.conf-head_and_tail
 +
# Include /etc/resolv.conf.head and /etc/resolv.conf.tail to /etc/resolv.conf
 +
#
 +
# scripts in the /etc/NetworkManager/dispatcher.d/ directory
 +
# are called alphabetically and are passed two parameters:
 +
# $1 is the interface name, and $2 is “up” or “down” as the
 +
# case may be.
 +
 
 +
resolvconf='/etc/resolv.conf';
 +
cat "$resolvconf"{.head,,.tail} 2>/dev/null > "$resolvconf".tmp
 +
mv -f "$resolvconf".tmp "$resolvconf"
 +
</nowiki>}}
 +
 
 +
=== Guardar los cambios en resolv.conf ===
 +
 
 +
NetworkManager intentará escribir la información del DNS de DHCP en {{ic|/etc/resolv.conf}}, sobreescribiendo el contenido existente. Para evitar este comportamiento, se puede establecer el «bit inmutable» en el archivo:
 +
# chattr +i /etc/resolv.conf
 +
 
 +
Para modificar el archivo en el futuro, retire primero el bit inmutable:
 +
# chattr -i /etc/resolv.conf
 +
 
 +
=== Problemas con DHCP ===
 +
 
 +
Si tiene problemas para obtener una dirección IP mediante DHCP, intenta agregar lo que sigue al archivo {{ic|/etc/dhclient}}:
 
   interface "eth0" {
 
   interface "eth0" {
 
     send dhcp-client-identifier 01:aa:bb:cc:dd:ee:ff;
 
     send dhcp-client-identifier 01:aa:bb:cc:dd:ee:ff;
 
   }
 
   }
Where {{Ic|aa:bb:cc:dd:ee:ff}} is the MAC-adress of this NIC.
 
  
===Problems starting nm-applet as normal user===
+
Donde {{ic|aa:bb:cc:dd:ee:ff}} es la dirección MAC del NIC (la tarjeta de red). La dirección MAC se puede encontrar utilizando la orden {{ic|ip link show eth0}} proporcionada por el paquete {{pkg|iproute2}}.
Sometimes, the GNOME applet fails to start with the following error:
+
** (nm-applet:2941): WARNING **: <WARN>  applet_dbus_manager_start_service(): Could not acquire the NetworkManagerUserSettings
+
service.
+
  Message: 'Connection ":1.19" is not allowed to own the service "org.freedesktop.NetworkManagerUserSettings" due to security
+
policies in the configuration file'
+
This depends on NetworkManager changing its behavior since version 0.7, ignoring the {{Ic|network}} group altogether and instead uses ConsoleKit, which seems to be problematic at times. This solution was provided by ''madhatter'':
+
  
Edit your {{ic|/etc/dbus-1/system.d/NetworkManager.conf}} to read:
+
Con algunos routers, resultará imposible conectarse correctamente, a menos que comente la línea:
<!DOCTYPE busconfig PUBLIC
+
require dhcp_server_identifier
  "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+
en {{ic|/etc/dhcpcd.conf}} (advierta que este archivo es un archivo distinto de {{ic|dhcpd.conf}}). Esto no debería causar problemas a menos que tenga varios servidores DHCP en la red (no habitual); consulte [http://technet.microsoft.com/en-us/library/cc977442.aspx esta página] para obtener más información.
  "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+
<busconfig>
+
        <policy user="root">
+
                <allow own="org.freedesktop.NetworkManager"/>
+
                <allow send_destination="org.freedesktop.NetworkManager"/>
+
                <allow send_interface="org.freedesktop.NetworkManager"/>
+
+
        <allow own="org.freedesktop.NetworkManager.PPP"/>
+
                <allow send_destination="org.freedesktop.NetworkManager.PPP"/>
+
                <allow send_interface="org.freedesktop.NetworkManager.PPP"/>
+
        </policy>
+
    <!-- My hack -->
+
        <policy group="network">
+
                <allow send_destination="org.freedesktop.NetworkManager"/>
+
                <allow send_interface="org.freedesktop.NetworkManager"/>
+
        </policy>
+
        <!-- End of my hack -->
+
        <policy at_console="true">
+
                <allow send_destination="org.freedesktop.NetworkManager"/>
+
                <allow send_interface="org.freedesktop.NetworkManager"/>
+
        </policy>
+
        <policy context="default">
+
                <deny own="org.freedesktop.NetworkManager"/>
+
                <deny send_destination="org.freedesktop.NetworkManager"/>
+
                <deny send_interface="org.freedesktop.NetworkManager"/>
+
+
                <deny own="org.freedesktop.NetworkManager.PPP"/>
+
                <deny send_destination="org.freedesktop.NetworkManager.PPP"/>
+
                <deny send_interface="org.freedesktop.NetworkManager.PPP"/>
+
        </policy>
+
+
        <limit name="max_replies_per_connection">512</limit>
+
</busconfig>
+
  
Also, change your {{ic|/etc/dbus-1/system.d/nm-applet.conf}} to read:
+
=== Falta la ruta predeterminada ===
<!DOCTYPE busconfig PUBLIC
+
  "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+
  "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+
<busconfig>
+
    <policy user="root">
+
        <allow own="org.freedesktop.NetworkManagerUserSettings"/>
+
+
        <allow send_destination="org.freedesktop.NetworkManagerUserSettings"/>
+
        <allow send_interface="org.freedesktop.NetworkManagerSettings"/>
+
+
        <!-- Only root can get secrets -->
+
        <allow send_interface="org.freedesktop.NetworkManagerSettings.Secrets"/>
+
    </policy>
+
    <!-- My hack -->
+
    <policy group="network">
+
        <allow own="org.freedesktop.NetworkManagerUserSettings"/>
+
        <allow send_destination="org.freedesktop.NetworkManagerUserSettings"/>
+
        <allow send_interface="org.freedesktop.NetworkManagerUserSettings"/>
+
+
        <deny send_interface="org.freedesktop.NetworkManagerSettings.Secrets"/>
+
    </policy>
+
        <!-- end of my hack -->
+
    <policy at_console="true">
+
        <allow own="org.freedesktop.NetworkManagerUserSettings"/>
+
+
        <allow send_destination="org.freedesktop.NetworkManagerUserSettings"/>
+
        <allow send_interface="org.freedesktop.NetworkManagerSettings"/>
+
+
        <!-- Only root can get secrets -->
+
        <deny send_interface="org.freedesktop.NetworkManagerSettings.Secrets"/>
+
    </policy>
+
    <policy context="default">
+
        <deny own="org.freedesktop.NetworkManagerUserSettings"/>
+
+
        <allow send_destination="org.freedesktop.NetworkManagerUserSettings"/>
+
        <allow send_interface="org.freedesktop.NetworkManagerSettings"/>
+
        <!-- Only root can get secrets -->
+
        <deny send_interface="org.freedesktop.NetworkManagerSettings.Secrets"/>
+
    </policy>
+
+
    <limit name="max_replies_per_connection">512</limit>
+
</busconfig>
+
  
For OpenVPN, you need to add the following lines to {{ic|/etc/dbus-1/system.d/NetworkManager.conf}}
+
Si con un sistema de KDE4, no se creó ninguna ruta por defecto a la hora de establecer conexiones inalámbricas con NetworkManager, en general se puede resolver modificando la configuración de la ruta de la conexión inalámbrica para eliminar la selección por defecto «Use only for resources on this connection».
<allow send_destination="org.freedesktop.NetworkManager" />
+
<allow send_interface="org.freedesktop.NetworkManager.openvpn"/>
+
in the section {{Ic|<nowiki><policy at_console="true"></nowiki>}}.
+
  
===Missing default route===
+
=== Modem 3G no detectado===
On at least one KDE4 system, no default route was created when establishing wireless connections with NetworkManager. Changing the route settings of the wireless connection to remove the default selection "Use only for resources on this connection" solved the issue.
+
  
==Tips and tricks==
+
Si NetworkManager (desde v0.7.999) no detecta el módem 3G, pero todavía se puede conectar usando [[wvdial]], pruebe a instalar el paquete {{Pkg|modemmanager}} y reinicie el demonio NetworkManager con {{ic|networkmanager rc.d restart}}. También puede ser necesario volver a conectar o reiniciar el módem. Esta utilidad proporciona soporte para el hardware no incluido por defecto en la base de datos de NetworkManager.
  
===Checking if networking is up inside a cron job or script===
+
=== Problemas con VPN en Networkmanager 0.7.999 ===
Some cron jobs require networking to be up to succeed. You may wish to avoid running these jobs when the network is down. To accomplish this, add an '''if''' test for networking that queries NetworkManager's '''nm-tool''' and checks the state of networking. The test shown here succeeds if any interface is up, and fails if they are all down. This is convenient for laptops that might be hardwired, might be on wireless, or might be off the network.  
+
 
 +
Si recibe el mensaje de error «invalid secrets» cuando intenta conectarse a su proveedor VPN utilizando el protocolo PPTP, pruebe a instalar las versiones de desarrollo (''«git»'') de [[AUR]]: {{AUR|networkmanager-git}}, {{AUR|network-manager-applet-git}} y el plugin PPTP {{AUR|networkmanager-pptp-git}}.
 +
 
 +
=== Desconexión de WLAN en portátiles ===
 +
 
 +
A veces, NetworkManager no funciona cuando se deshabilita el adaptador WiFi con el interruptor del portátil y se trata de activar de nuevo después. Esto suele ser debido a un problema con {{ic|rfkill}}. Instale {{pkg|rfkill}} de los [[official repositories|repositorios oficiales]] y use la siguiente orden:
 +
 
 +
$ watch -n1 rfkill list all
 +
 
 +
para comprobar si el controlador informa {{ic|rfkill}} sobre el estado del adaptador inalámbrico.
 +
Si un identificador permanece bloqueado después de conectar el adaptador se puede tratar de desbloquearlo de forma manual con la orden siguiente (donde X es el número del identificador proporcionado por la salida de la orden anterior):
 +
 
 +
# rfkill event unblock X
 +
 
 +
=== Ajustes a IP estáticas restaurado a DHCP ===
 +
 
 +
Para solucionar este problema hay que editar la conexión por defecto (por ejemplo, «Auto eth0») en {{ic|nm-applet}}, cambiando el nombre de la conexión (por ejemplo, «mi eth0»). Desactive la casilla «Disponible para todos los usuarios», cambie la configuración de las IP estáticas como se desee, y pulse en '''Aplicar'''. Esto guardará una nueva conexión con el nombre dado.
 +
 
 +
A continuación, si desea efectuar la conexión por defecto y no conectarse automáticamente, ejecute la siguiente orden:
 +
 
 +
$ sudo nm-connection-editor  # se debe usar sudo, no su
 +
 
 +
En el editor de conexión, modifique la conexión por defecto (por ejemplo, «Auto eth0») y desmarque la opción «Conectar automáticamente». Pulse en '''Aplicar''' para guardar los cambios y cierre el editor de conexión.
 +
 
 +
=== Eliminar una red oculta ===
 +
 
 +
Obviamente, una red oculta no se muestra en la lista de selección de la GUI Wireless, por lo que no puede ser eliminada desde la interfaz gráfica de usuario. Puede eliminarla usando la siguiente orden:
 +
 
 +
# rm /etc/NetworkManager/system-connections/[SSID]
 +
$ sudo rm /etc/NetworkManager/system-connections/[SSID] # sudo equivalent
 +
 
 +
Dicha orden funciona con cada red.
 +
 
 +
== Consejos y trucos ==
 +
 
 +
=== Comprobar la activación de la red en el interior de un proceso cron o script ===
 +
 
 +
 
 +
Algunos tareas de cron requieren de la red para poder funcionar. Es posible que desee evitar la ejecución de estos trabajos cuando la red no funciona. Para ello, agregue un '''if''' de prueba para las consultas de redes con {{ic|nm-tool}} de NetworkManager y compruebe el estado de las redes. La prueba tiene éxito si se muestra aquí cualquier interfaz activa, y fallida si no lo están. Esto es conveniente para los ordenadores portátiles que pueden tener conexión cableada, conexión inalámbrica, o podrían estar fuera de red.  
 
  if [ `nm-tool|grep State|cut -f2 -d' '` == "connected" ]; then
 
  if [ `nm-tool|grep State|cut -f2 -d' '` == "connected" ]; then
 
         #Whatever you want to do if the network is online
 
         #Whatever you want to do if the network is online
Line 271: Line 398:
 
  fi
 
  fi
  
This useful for a cron.hourly script that runs '''fpupdate''' for the F-Prot virus scanner signature update, as an example. Another way it might be useful, with a little modification, is to differentiate between networks using various parts of the output from '''nm-tool'''; for example, since the active wireless network is denoted with an asterisk, you could {{Ic|grep}} for the network name and then {{Ic|grep}} for a literal asterisk.
+
Es útil para un script {{ic|cron.hourly}} que ejecuta {{ic|fpupdate}} para la actualización del escáner de firmas del antivirus F-Prot, por ejemplo. Otra forma de ser útil, con una pequeña modificación, podría ser diferenciar entre redes que utilizan diferentes partes de la salida {{ic|nm-tool}}, por ejemplo, en cuanto que la red inalámbrica activa se indica con un asterisco, es posible, con la utilización de ''grep'', cambiar el nombre de la red orientando la busqueda de ''grep'' a la red del asterisco.
 +
 
 +
=== Desbloquear automáticamente keyring después del login ===
 +
 
 +
==== GNOME ====
  
===Automatically unlock keyring after login===
+
# Haga clic con el botón derecho en el icono {{ic|nm-applet}} del panel y seleccione ''«Configuración de la red»'' y abra la pestaña ''«Inalámbrica»''.
This will prevent nm-applet from asking for your keyring password.
+
# Seleccione la conexión que desee y haga clic en el botón ''«Configuración»''.
 +
# Marque las casillas ''«Conectar automáticamente»'' y ''«Disponible para todos los usuarios»''.
 +
Cierre la sesión y vuelva a entrar para completar el proceso.
  
*In {{ic|/etc/pam.d/gdm}} (or your corresponding daemon in {{ic|/etc/pam.d}}), add these lines at the end of the "auth" and "session" blocks if they do not exist already:  
+
{{Nota|El siguiente método es anticuado y puede no funcionar en todas algunas máquinas.}}
 +
* En {{ic|/etc/pam.d/gdm}} (o el demonio correspondiente en {{ic|/etc/pam.d}}), añada la siguiente línea al final de los bloques «auth» y «session», para el caso de que no existan:  
 
   auth            optional        pam_gnome_keyring.so
 
   auth            optional        pam_gnome_keyring.so
 
   session        optional        pam_gnome_keyring.so  auto_start
 
   session        optional        pam_gnome_keyring.so  auto_start
  
*In {{ic|/etc/pam.d/passwd}}, use this line for the 'password' block:
+
* En {{ic|/etc/pam.d/passwd}}, use la siguiente línea para el bloque del «password»:
 
   password    optional    pam_gnome_keyring.so
 
   password    optional    pam_gnome_keyring.so
  
:Next time you log in, you should be asked if you want the password to be unlocked automatically on login.
+
:La próxima vez que inicie sesión, debería preguntarle si desea que la contraseña se desbloquee automáticamente al iniciar sesión.
{{Note|See http://live.gnome.org/GnomeKeyring/Pam for reference, and if you are using KDE/KDM, you can use pam-keyring-tool from the [[AUR]].}}
+
  
*Put a script like the following in {{ic|~/.kde4/Autostart}}:
+
==== KDE ====
   $!/bin/sh
+
{{Note|Consulte http://live.gnome.org/GnomeKeyring/Pam para mayor información, y si se utiliza KDE con KDM, es posible usar {{AUR|pam-keyring-tool}} disponible desde [[AUR]].}}
 +
 
 +
Coloque un script como el siguiente en {{ic|~/.kde4/Autostart}}:
 +
   #!/bin/sh
 
   echo PASSWORD | /usr/bin/pam-keyring-tool --unlock --keyring=default -s
 
   echo PASSWORD | /usr/bin/pam-keyring-tool --unlock --keyring=default -s
:Similar should work with Openbox, lxde, etc.
+
Un script similar debe funcionar también con Openbox, LXDE, etc.
  
===Automatically connect on boot ===
+
==== SLiM login manager ====
Since version 0.7, NetworkManager is able to connect on boot, before a user has logged in and unlocked the keyring.
+
  
*First make sure that the keyfile plugin is loaded; {{ic|/etc/NetworkManager/nm-system-settings.conf}} should look like this:
+
*En {{ic|/etc/pam.d/slim}}, añada la siguiente línea al final de los bloques «auth» y «session», si no existen:  
   [main]
+
   auth            optional        pam_gnome_keyring.so
   plugins=keyfile
+
   session        optional        pam_gnome_keyring.so  auto_start
  
*If this was not in the file before, you have to restart '''nm-system-settings''':
+
*En {{ic|/etc/pam.d/passwd}}, añada la siguiente línea al bloque  «password»:
   # killall -TERM nm-system-settings
+
   password    optional    pam_gnome_keyring.so
:or simply reboot.
+
  
*Now grant your user the right to modify system-connections with:
+
*En {{ic|~/.xinitrc}}, añada la siguiente línea al principio, antes de lanzar window manager y otras aplicaciones:
   $ sudo polkit-auth --grant org.freedesktop.network-manager-settings.system.modify --user "YOURUSERNAME"
+
   # test for an existing bus daemon, just to be safe
 +
  if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
 +
    # if not found, launch a new one
 +
    eval `dbus-launch --sh-syntax --exit-with-session`
 +
    echo "D-Bus per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS"
 +
  fi
  
:Finally, in the connection-editor, check the '''Available to all users''' box.
+
:La próxima vez que inicie sesión, debería preguntarle si desea que la contraseña se desbloquee automáticamente al iniciar sesión.
  
The connection is now saved in {{ic|/etc/NetworkManager/system-connections/"CONNECTION NAME"}}. On reboot, NetworkManager will try to connect to it, when in range.
+
=== Ignorar dispositivos específicos ===
  
===Ignore specific devices===
+
A veces se puede desear que NetworkManager ignore algunos dispositivos específicos y no trate de configurar las direcciones y las rutas para ellos.
Sometimes it is desired that NetworkManager should ignore some devices and not try to get an IP address.
+
 
 +
:1.  Puede ignorar los dispositivos por la dirección MAC mediante la siguiente configuración en {{ic|/etc/NetworkManager/NetworkManager.conf}} :
 +
[keyfile]
 +
unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4
 +
:Después de poner esto [[Daemon|reinicie]] NetworkManager, y con ello debería ser capaz de configurar las interfaces de NetworkManager sin alterar lo que ha establecido.
  
*First you have to find out the HAL UDI (e.g. with lshal):
+
:2. Como alternativa puede usar HAL.
 +
::* Primero debe buscar la UDI de Hal (por ejemplo, con {{ic|lshal}}):
 
   ...
 
   ...
 
   info.product = 'Networking Interface'  (string)
 
   info.product = 'Networking Interface'  (string)
Line 321: Line 465:
 
   ...
 
   ...
  
*Add the udi to {{ic|/etc/NetworkManager/nm-system-settings.conf}}:
+
::* Añada la udi a {{ic|/etc/NetworkManager/nm-system-settings.conf}}:
 
   [keyfile]
 
   [keyfile]
 
     unmanaged-devices=/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55
 
     unmanaged-devices=/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55
  
:Multiple devices can be specified, delimited by a semi-colon:
+
:Puede especificar múltiples dispositivos, delimitándolos con punto y coma:
  
 
   [keyfile]
 
   [keyfile]
 
     unmanaged-devices=/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55;/org/freedesktop/Hal/devices/net_00_2c_6d_e2_08_af
 
     unmanaged-devices=/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55;/org/freedesktop/Hal/devices/net_00_2c_6d_e2_08_af
  
You do not need to restart NetworkManager for the changes to take effect.
+
:No es necesario reiniciar NetworkManager para que los cambios surtan efecto.
 +
 
 +
:3. Puede ignorar un tipo de dispositivo en fase de arranque usando el siguiente script (cambie {{ic|NetworkManager.conf}} con {{ic|nm-system-settings.conf}} si usa una versión de NetworkManager anterior a 0.8.1):
 +
  #!/bin/sh
 +
  # author: tim noise <darknoise@drkns.net>
 +
  COUNT=0
 +
  TARGET_FILE="/etc/NetworkManager/NetworkManager.conf"
 +
  for i in `lshal | grep -A6 'Networking Interface' | awk -F "'" '/info.udi = / {print $2}'`; do
 +
      if [ $COUNT = 0 ]; then
 +
          COUNT=$COUNT+1;
 +
          echo "unmanaged-devices=$i" >> $TARGET_FILE
 +
      else
 +
          echo -n ";$i" >> $TARGET_FILE
 +
      fi
 +
  done
 +
  printf "\n" >> $TARGET_FILE
 +
 
 +
:Dichos script pueden ser adaptados para ignorar dispositivos wireless, etc., que utilizan un sistema de archivos no persistente.
 +
 
 +
=== Conectar más rápido ===
 +
 
 +
==== Deshabilitar IPv6 ====
 +
 
 +
Las conexiones lentas o reconexiones a la red pueden ser debidas a las consultas superfluas de NetworkManager a las IPv6. Si no hay soporte para IPv6 en la red local, la conexión a una red puede tardar más de lo normal, mientras que NetworkManager intenta establecer una conexión IPv6 con resultado final de «time out». La solución es desactivar IPv6 en NetworkManager lo que hará que la conexión de red sea más rápida. Esto tiene que hacerse una sola vez para cada red a la cual se conecte.
 +
 
 +
* Haga clic en el icono del estado de la red.
 +
* Haga clic en «Configuración de la red».
 +
* Vaya a la  pestaña «Cableada» o «Inalámbrica», según corresponda.
 +
* Seleccione el nombre de la red.
 +
* Haga clic en «Configuración».
 +
* Vaya a «Ajustes de IPv6».
 +
* En el botón desplegable «Método», elija la opción «Ignorar».
 +
* Haga clic en «Guardar».
 +
 
 +
==== Acelerar DHCP mediante la desactivación de ARP sondeando DHCPCD ====
 +
 
 +
{{ic|dhcpcd}} contiene una implementación de una recomendación de la norma DHCP ([http://www.ietf.org/rfc/rfc2131.txt RFC2131 sección 2.2]) para comprobar a través de ARP si la dirección IP asignada  realmente no está en uso. Puede parecer innecesario en una red doméstica, pero puede ahorrar alrededor de 5 segundos en cada conexión añadiendo la siguiente línea a {{ic|/etc/dhcpcd.conf}}:
 +
 
 +
noarp
 +
 
 +
Esto equivale a lanzar {{ic|dhcpcd}} con el flag {{ic|--noarp}}, lo cual deshabilita el sondeo a ARP, acelerando las conexiones con DHCP.
 +
 
 +
==== Usar servidores OpenDNS ====
 +
 
 +
Cree el archivo {{ic|/etc/resolv.conf.opendns}} con los nombres de servidores:
 +
 
 +
nameserver 208.67.222.222
 +
nameserver 208.67.220.220
 +
 
 +
Para sustituir el servidor DHCP por los servidores OpenDNS:
 +
 
 +
{{hc|/etc/NetworkManager/dispatcher.d/dns-servers-opendns|<nowiki>
 +
#!/bin/bash
 +
# Use OpenDNS servers over DHCP discovered servers
 +
 
 +
cp -f /etc/resolv.conf.opendns /etc/resolv.conf</nowiki>}}
 +
 
 +
Haga ejecutable el script:
  
==See also==
+
# chmod +x /etc/NetworkManager/dispatcher.d/dns-servers-opendns
*[[Wireless Setup]]
+
*[http://www.gnome.org/projects/NetworkManager/ The official NetworkManager's website]
+

Revision as of 00:31, 11 November 2012

Sumario help replacing me
Este artículo trata sobre la instalación y configuración de NetworkManager - un conjunto de herramientas cooperativas que hacen de la gestión de las redes algo simple y directo.
Descripción
Arch Linux provee netcfg para la gestión de la red. netcfg proporciona soporte para conexiones cableadas en desktops y servidores, así como configuraciones de conexiones inalámbricas y roaming para la movilidad de los usuarios, permitiendo una fácil gestión de los perfiles de red. NetworkManager y Wicd son alternativas populares de terceros.

NetworkManager es un programa que proporciona a los sistemas la detección y configuración automática para conectarse a la red. Las funcionalidades de NetworkManager son útiles tanto para redes inalámbricas como por cable. Para las redes inalámbricas, NetworkManager prefiere las redes conocidas y tiene la capacidad de cambiar a la red más confiable. NetworkManager permite que las aplicaciones puedan cambiar de modalidad en línea y fuera de línea. NetworkManager da preferencia a las conexiones por cable antes que a las inalámbricas, tiene soporte para conexiones por módem y para ciertos tipos de VPN. NetworkManager fue originariamente desarrollado por Red Hat y ahora es respaldado por el proyecto GNOME.

Contents

Intalación base

NetworkManager se puede instalar con el paquete networkmanager, disponible en los repositorios oficiales.

Soporte VPN

Network Manager tiene soporte para las redes VPN mediante un sistema basado en plug-ins. Si necesita asistencia técnica VPN a través del gestor de la red hay que instalar uno de los siguientes paquetes de los repositorios oficiales:

   networkmanager-openvpn
   networkmanager-pptp
   networkmanager-vpnc

Interfaces gráficas

Para configurar y acceder fácilmente a NetworkManager la mayoría de los usuarios desearán instalar un applet. Esta GUI normalmente se ubica en la bandeja del sistema (o área de notificación) y permite la selección de red y la configuración de NetworkManager. Existen distintos tipos de applets para los diferentes tipos de entornos de escritorio.

GNOME

El applet de GNOME network-manager-applet (anteriormente gnome-network-manager) es lo suficientemente ligero y funciona en todos los entornos.

Si desea guardar los datos de autentificación (Wireless/DSL) y activar la configuración global de las conexiones, es decir, «disponible para todos los usuarios» instale y configure GNOME Keyring.

KDE4

El front-end para KNetworkManager se ha hecho disponible desde KDE 4.4 como un widget de Plasma disponible en los repositorios oficiales: kdeplasma-applets-networkmanagement.

En comparación con GNOME funciona igual de bien, o incluso mejor (tiene más características y detecta más hardware).

Nota: Si va a cambiar a otra herramienta para gestionar la red como Wicd, no se olvide ajustar el valor predefinido 'Network Management Backend' en Configuración del sistema -> Hardware -> Fuentes de información

Si tiene instalado tanto el widget Plasma como nm-applet y no desea iniciar nm-applet cuando usa KDE, añada la siguiente línea a /etc/xdg/autostart/nm-applet.desktop:

NotShowIn=KDE

KDE3

Aunque ya no es compatible, el paquete kdemod3-knetworkmanagerAUR se puede encontrar en AUR. Esta es una versión modificada de KNetworkManager para el DE Trinity y requiere NetworkManager 0.8.

XFCE

El paquete network-manager-applet no tendrá ningún problema en XFCE, pero para ver las notificaciones, incluidos los mensajes de error, necesitará nm-applet, una específica implementación de Freedesktop (consulte Proyecto Galapago) para mostrar las notificaciones. Para activar las notificaciones, instale xfce4-notifyd, un paquete que proporciona una implementación de la especificación.

Sin un demonio de notificación, nm-applet generará los siguientes errores en stdout/stderr:

(nm-applet:24209): libnotify-WARNING **: Failed to connect to proxy
** (nm-applet:24209): WARNING **: get_all_cb: couldn't retrieve
system settings properties: (25) Launch helper exited with unknown
return code 1.
** (nm-applet:24209): WARNING **: fetch_connections_done: error
fetching connections: (25) Launch helper exited with unknown return
code 1.
** (nm-applet:24209): WARNING **: Failed to register as an agent:
(25) Launch helper exited with unknown return code 1

nm-applet funciona normalmente, pero sin notificaciones.

Openbox

Para que NetworkManager funcione correctamente en Openbox, el applet de GNOME requiere el demonio de notificación xfce4-notifyd, por la misma razón que en XFCE, y el paquete gnome-icon-theme para poder mostrar el applet en la bandeja del sistema.

Si desea guardar los datos de autentificación (Wireless/DSL) instale y configure gnome-keyring.

Nota: Si el demonio networkmanager se encuentra en rc.conf, las configuraciones siguientes están obsoletas y el applet se iniciará dos veces.

Para poder iniciar automáticamnte nm-applet correctamente al arranque de Openbox, puede que tenga que eliminar el archivo /etc/xdg/autostart/nm-applet.desktop (Es posible que necesite eliminar este archivo de nuevo después de cada actualización del paquete network-manager-applet).

Luego, en autostart, active el inicio de nm-applet con la siguiente línea:

(sleep 3 && /usr/bin/nm-applet --sm-disable) &

Si se producen errores de conexión, asegúrese de que tiene D-Bus iniciado en la sesión de usuario.

Otros escritorios y gestores de ventanas

En todos los demás casos, se recomienda usar el applet de GNOME. Deberá asegurarse que tiene instalado el paquete gnome-icon-theme para poder ver el applet.

Para guardar información confidencial sobre las conexiones instale y configure gnome-keyring.

Para ejecutar nm-applet en un entorno sin una bandeja de sistema, puede utilizar trayer o stalonetray. Por ejemplo, puede agregar un script como este a su propia ruta:

nmgui
 #!/bin/sh
 nm-applet    > /dev/null 2>/dev/null &
 stalonetray  > /dev/null 2>/dev/null
 killall nm-applet

Al cerrar la ventana de stalonetray, cierra nm-applet también, así que no consume memoria extra una vez que haya terminado con la configuración de red.

Desde la línea de comandos

La paquete networkmanager contiene nmcli desde la versión 0.8.1.

Configuración

NetworkManager requiere algunos pasos adicionales para ser capaz de ejecutarse correctamente.

Antes de comenzar, compruebe que /etc/hosts está configurado correctamente. Si ya ha intentado conectarse antes de realizar este paso, NetworkManager puede haberlo modificado. He aquí un ejemplo de línea hostname en /etc/hosts:

#<ip-address> <hostname.domain.org>           <hostname>                        
127.0.0.1     localhost.localdomain localhost dell-latitude

Desactivar la configuración de la red actual

Si ya tiene configurada la red es aconsejable deshabilitarla para poder probar correctamente NetworkManager:

  1. Si utiliza los scripts de red de Arch Linux, ejecute el demonio de red stop.
  2. Desactive el propio NIC (Network Interface Controllers, es decir, las tarjetas de red). Por ejemplo (usando el paquete iproute2):
    ip link set down eth0
    ip link set down wlan0
    
  3. Edite /etc/rc.conf donde se define DHCP o las direcciones IP estáticas, comentando las salidas:
    Nota: Los siguientes ajustes están obsoletos para el rc.conf más reciente.
    #eth0="hcp"                                                          
    #wlan0="dhcp"                                                                   
    INTERFACES=(!eth0 !wlan0)
    
  4. Por último, edite /etc/rc.conf para eliminar network, el demonio de red por defecto, o cualquier otro demonio de gestión de red que pueda estar usando.

Habilitar NetworkManager

La forma de habilitar NetworkManager dependerá de cómo esté configurado el sistema. Las nuevas instalaciones utilizan ahora systemd de forma predeterminada. Muchos usuarios han hecho la transición a systemd, que se convertirá en el futuro en el sistema predeterminado.

Una vez que el demonio NetworkManager se ha iniciado, se conectará automáticamente a cualesquiera «conexiones del sistema» disponibles que estén configuradas. Las «conexiones del usuario» o las conexiones no configuradas necesitarán nmcli o un applet para la configuración y la conexión.

Habilitar NetworkManager con initscripts

Para habilitar NetworkManager en el arranque, edite la línea DAEMONS en /etc/rc.conf para añadir el demonio NetworkManager, después del demonio dbus:

DAEMONS=( ...dbus networkmanager... )

Asegúrese de que el paquete dbus está instalado para cuando sea requerido por NetworkManager. Para iniciar otros servicios (daemons) que requieren una conexión de red consulte la siguiente sección sobre cómo configurarlos.

Puede iniciar el demonio NetworkManager inmediatamente con las siguientes órdenes:

# rc.d start dbus
# rc.d start networkmanager

Habilitar NetworkManager con systemd

Puede activar NetworkManager para que se inicie en el arranque con la siguiente orden:

# systemctl enable NetworkManager.service

Puede iniciar el demonio NetworkManager inmediatamente con la siguiente orden:

# systemctl start NetworkManager.service
Nota: Si tiene servicios que no logran iniciarse correctamente antes de que la red esté operativa, tiene que usar NetworkManager-wait-online.service en su lugar. Sin embargo, esto casi nunca será necesario, ya que la mayoría de los demonios de red se inician sobre la marcha muy bien, incluso si la red no se ha configurado todavía.

Configurar permisos PolicyKit

Véase General Troubleshooting#Session permissions para la creación de una sesión de trabajo.

Con una sesión de trabajo, tiene varias opciones para la concesión de los privilegios necesarios para NetworkManager:

Opción 1. Ejecute un agente de autenticación PolicyKit cuando se conecte, como /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 (es parte del paquete polkit-gnome). Se le pedirá la contraseña cada vez que agregue o quite una conexión de red.

Opción 2. Añada su usuario al grupo wheel. No tendrá que introducir su contraseña, pero necesitará garantizar los permisos particulares a los usuarios tales como la capacidad de usar sudo sin introducir la contraseña de root.

Servicios de red con NetworkManager dispatcher

Hay algunos servicios de red que no se desean ejecutar hasta que NetworkManager crea la interfaz. Algunos ejemplos son OpenNTPD y diversos tipos de montajes de sistemas de archivos de red (por ejemplo, netfs). NetworkManager tiene la capacidad de iniciar estos servicios cuando se conecta a una red y detenerlos cuando se desconecta.

Para utilizar esta característica, se pueden añadir los scripts apropiados a la carpeta /etc/NetworkManager/dispatcher.d. Estos scripts necesitan los permisos de ejecución del usuario. Por seguridad, es una buena práctica que sean propiedad de root: root y con permisos de escritura únicamente para el propietario.

Los scripts se ejecutan en orden alfabético durante la fase de conexión, y en orden alfabético inverso durante la fase de desconexión. Reciben dos argumentos: el nombre de la interfaz (por ejemplo, eth0) y el estado (up o down). A fin de garantizar el orden en que vayan surgiendo, es común el uso de caracteres numéricos puestos como prefijos delante del nombre del script (por ejemplo, 10_portmap o 30_netfs (que asegura que el mapeador de puertos se levante antes de que se intente montar NFS).

Advertencia: Por razones de seguridad, debe desactivar el acceso de escritura para el grupo y otro. Por ejemplo, utilice el filtro 755. En otro caso, puede ser denegada la ejecución del script con el mensaje de error: «nm-dispatcher.action: Script could not be executed: writable by group or other, or set-UID» en /var/log/messages.log
Advertencia: Si se conecta a redes extranjeras o públicas, debe estar al tanto de cuáles son los servicios que están empezando y qué servidores se espera que estén disponibles para ellos al conectarse. Podría crear un agujero de seguridad al iniciar los servicios equivocados mientras está conectado a una red pública.

Iniciar OpenNTPD

El siguiente ejemplo de script inicia el demonio OpenNTPD cuando una interfaz se conecta. Guarde el archivo como /etc/NetworkManager/dispatcher.d/20_openntpd y hágalo ejecutable.

#!/bin/sh

INTERFACE=$1 # The interface which is brought up or down
STATUS=$2 # The new state of the interface

case "$STATUS" in
    'up') # $INTERFACE is up
	exec /etc/rc.d/openntpd start
	;;
    'down') # $INTERFACE is down
	# Check for active interface and down if no one active
	if [ ! `nm-tool|grep State|cut -f2 -d' '` == "connected" ]; then
		exec /etc/rc.d/openntpd stop
	fi
	;;
esac

Montar carpeta remota con sshfs

Dado que el script viene ejecutado en un entorno muy restrictivo, es necesario exportar la variable SSH_AUTH_SOCK para poder conectarse al propio agente SSH. Hay diferentes maneras para lograr esto, vea este link para más información. El siguiente ejemplo funciona con gnome-keyring, y le pedirá la contraseña si no está desbloqueada ya. En caso de que NetworkManager se conecte automáticamente al iniciar sesión, es probable gnome-keyring aún no se haya iniciado, de modo que la exportación fallará (de ahí que entre en modo de espera). Conocer la UUID necesaria para comprobar que coincide se puede encontrar en /etc/NetworkManager/system-connections/).

#!/bin/bash
USER=<your sshfs user>
if [ $CONNECTION_UUID == <connection UUID> ]; then
        case "$2" in

                up)
                   #sleep 10
                   export SSH_AUTH_SOCK=$(find /tmp/keyring-*/ -type s -user $USER -group users -name ssh)
                   su $USER -c "/usr/bin/sshfs user@host:/remote/folder /local/folder/"
                 ;;

                down)
                   fusermount -u /local/folder
                 ;;
        esac
 fi

Usar dispatcher para conectarse a VPN despues de establecer una conexión a red

En este ejemplo, conectaremos automáticamente a una conexión VPN, previamente definida en NetworkManager, después de conectarse a una red Wi-Fi específica. Lo primero que hay que hacer es crear el script dispatcher que define el comportamiento a realizar después de conectarse a la red.

1. Cree el script dispatcher:
/etc/NetworkManager/dispatcher.d/vpn-up
  VPN_NAME=<name of VPN connection defined in NetworkManager>
  ESSID=<wifi network ESSID (not connection name)>
  if [ "$2" = "up" -o "$2" = "vpn-down" ]; then          # -o "$2" = "vpn-down" makes VPN reconnect after VPN connection interrupt
    if [ "$(iwgetid | grep ':"'$ESSID'"')" ]; then       # check for ESSID match
      nmcli con up id "$VPN_NAME";                       # parentheses needed for VPN connection names with spaces
    fi
  elif [ "$2" = "down" ]; then                           # disconnect VPN prior to disconnecting from the network
    if [ "$(iwgetid | grep ':"'$ESSID'"')" ]; then       # check for ESSID match and that VPN is actually connected
      if [ $(nmcli con status id "$VPN_NAME" | grep -c activated) ]; then
        nmcli con down id "$VPN_NAME";
      fi
    fi
  fi

Recuerde que debe hacerlo ejecutable con chmod +x y establecer la conexión VPN a disposición de todos los usuarios.

Intentando conectar usando esta configuración, se producirá un error y NetworkManager mostrará un mensaje de 'no valid VPN secrets', debido al método para guardar secretos de VPN que nos lleva al paso 2:

2. Edite el archivo de configuración de la conexión VPN para señalar a NetworkManager como el almacen de los parámetros confidenciales propios en vez incluirlo en el depósito de claves que será inaccesible para el usuario root: abra /etc/NetworkManager/system-connections/<name of your VPN connection> y modifique password-flags y secret-flags de 1 a 0.
Nota: Ahora es necesario volver a editar la configuración de la conexión de NetworkManager y volver a introducir las contraseñas/secretos de VPN.

Configuración del proxy

NetworkManager no gestona directamente la configuración del proxy, pero si está usando GNOME, puede usar proxydriver, el cual se encarga de configurar el proxy utilizando la información de NetworkManager. Puede encontrar el paquete proxydriverAUR en AUR.

Para que proxydriver pueda cambiar la configuración del proxy, tendrá que ejecutar la siguiente orden, como parte del proceso de inicio de GNOME (Sistema -> Preferencias -> Aplicaciones de inicio):

xhost +si:localuser:your_username

Consulte: Proxy settings

Comprobación

Los applets de NetworkManager están diseñados para cargarse al iniciar sesión, por lo que no debería ser objeto de configuración adicional para la mayoría de los casos. Si ya ha desactivado la configuración de red existente y ha desconectado la red, ahora puede comprobar si NetworkManager funciona. El primer paso es iniciar el demonio networkmanager.

Algunos applets proveen un archivo .desktop para que el applet de NetworkManager se puede cargar a través del menú de la aplicación. Si no lo hace, tendrá que descubrir la orden para iniciarlo o reiniciar sesión otra vez para iniciar el applet. Una vez que el applet se inicia, es probable que comience a interrogar y ordenar conexiones de red, para después autoconfigurarse con un servidor DHCP.

Para iniciar el applet de GNOME en los gestores de ventanas no compatibles con xdg como Awesome:

nm-applet --sm-disable &

Para las direcciones IP estáticas, tendrá que configurar NetworkManager para que las identifique. El proceso suele implicar pulsar con el botón derecho del ratón en el applet y seleccionar un menú similar a 'Editar las conexiones'.

Solución de problemas

Algunas soluciones para los problemas más comunes.

Problemas con el tráfico de datos a través del canal PPTP

Puede suceder que el login a la conexión PPTP se haga de manera correcta, y vea que la interfaz ppp0 tiene una IP VPN exacta, y, sin embargo, no puede hacer ping a ninguna IP remota. Ello es debido a la falta del soporte MPPE (Microsoft Point-to-Point Encryption) que se encuentra en el paquete pppd de Arch. Se recomienda probar primero con el paquete estándar ppp de Arch que podría funcionar como es debido.

Para resolver el problema será suficiente instalar ppp-mppeAUR desde AUR.

Deshabilitada la gestión de Red

A veces, cuando NetworkManager se apaga, el archivo del PID (estado) no se retira y recibirá el mensaje de «Network management disabled». Si esto sucede, tendrá que quitarlo manualmente:

# rm /var/lib/NetworkManager/NetworkManager.state

Si esto sucede en el arranque, se puede añadir una acción al archivo /etc/rc.local para que lo retire en el arranque:

nmpid=/var/lib/NetworkManager/NetworkManager.state
[ -f $nmpid ] && rm $nmpid

NetworkManager impide a DHCPCD el uso de resolv.conf.head y resolv.conf.tail

A veces es problemático agregar elementos estáticos a resolv.conf cuando dicho archivo se está constantemente reescribiendo por NetworkManager y dhcpcd. Una solución simple es usar el siguiente script:

#!/bin/bash
# 
# /etc/NetworkManager/dispatcher.d/99-resolv.conf-head_and_tail
# Include /etc/resolv.conf.head and /etc/resolv.conf.tail to /etc/resolv.conf
#
# scripts in the /etc/NetworkManager/dispatcher.d/ directory
# are called alphabetically and are passed two parameters:
# $1 is the interface name, and $2 is “up” or “down” as the
# case may be.

resolvconf='/etc/resolv.conf';
cat "$resolvconf"{.head,,.tail} 2>/dev/null > "$resolvconf".tmp
mv -f "$resolvconf".tmp "$resolvconf"

Guardar los cambios en resolv.conf

NetworkManager intentará escribir la información del DNS de DHCP en /etc/resolv.conf, sobreescribiendo el contenido existente. Para evitar este comportamiento, se puede establecer el «bit inmutable» en el archivo:

# chattr +i /etc/resolv.conf

Para modificar el archivo en el futuro, retire primero el bit inmutable:

# chattr -i /etc/resolv.conf

Problemas con DHCP

Si tiene problemas para obtener una dirección IP mediante DHCP, intenta agregar lo que sigue al archivo /etc/dhclient:

 interface "eth0" {
   send dhcp-client-identifier 01:aa:bb:cc:dd:ee:ff;
 }

Donde aa:bb:cc:dd:ee:ff es la dirección MAC del NIC (la tarjeta de red). La dirección MAC se puede encontrar utilizando la orden ip link show eth0 proporcionada por el paquete iproute2.

Con algunos routers, resultará imposible conectarse correctamente, a menos que comente la línea:

require dhcp_server_identifier

en /etc/dhcpcd.conf (advierta que este archivo es un archivo distinto de dhcpd.conf). Esto no debería causar problemas a menos que tenga varios servidores DHCP en la red (no habitual); consulte esta página para obtener más información.

Falta la ruta predeterminada

Si con un sistema de KDE4, no se creó ninguna ruta por defecto a la hora de establecer conexiones inalámbricas con NetworkManager, en general se puede resolver modificando la configuración de la ruta de la conexión inalámbrica para eliminar la selección por defecto «Use only for resources on this connection».

Modem 3G no detectado

Si NetworkManager (desde v0.7.999) no detecta el módem 3G, pero todavía se puede conectar usando wvdial, pruebe a instalar el paquete modemmanager y reinicie el demonio NetworkManager con networkmanager rc.d restart. También puede ser necesario volver a conectar o reiniciar el módem. Esta utilidad proporciona soporte para el hardware no incluido por defecto en la base de datos de NetworkManager.

Problemas con VPN en Networkmanager 0.7.999

Si recibe el mensaje de error «invalid secrets» cuando intenta conectarse a su proveedor VPN utilizando el protocolo PPTP, pruebe a instalar las versiones de desarrollo («git») de AUR: networkmanager-gitAUR, network-manager-applet-gitAUR y el plugin PPTP networkmanager-pptp-gitAUR.

Desconexión de WLAN en portátiles

A veces, NetworkManager no funciona cuando se deshabilita el adaptador WiFi con el interruptor del portátil y se trata de activar de nuevo después. Esto suele ser debido a un problema con rfkill. Instale rfkill de los repositorios oficiales y use la siguiente orden:

$ watch -n1 rfkill list all

para comprobar si el controlador informa rfkill sobre el estado del adaptador inalámbrico. Si un identificador permanece bloqueado después de conectar el adaptador se puede tratar de desbloquearlo de forma manual con la orden siguiente (donde X es el número del identificador proporcionado por la salida de la orden anterior):

# rfkill event unblock X

Ajustes a IP estáticas restaurado a DHCP

Para solucionar este problema hay que editar la conexión por defecto (por ejemplo, «Auto eth0») en nm-applet, cambiando el nombre de la conexión (por ejemplo, «mi eth0»). Desactive la casilla «Disponible para todos los usuarios», cambie la configuración de las IP estáticas como se desee, y pulse en Aplicar. Esto guardará una nueva conexión con el nombre dado.

A continuación, si desea efectuar la conexión por defecto y no conectarse automáticamente, ejecute la siguiente orden:

$ sudo nm-connection-editor  # se debe usar sudo, no su

En el editor de conexión, modifique la conexión por defecto (por ejemplo, «Auto eth0») y desmarque la opción «Conectar automáticamente». Pulse en Aplicar para guardar los cambios y cierre el editor de conexión.

Eliminar una red oculta

Obviamente, una red oculta no se muestra en la lista de selección de la GUI Wireless, por lo que no puede ser eliminada desde la interfaz gráfica de usuario. Puede eliminarla usando la siguiente orden:

# rm /etc/NetworkManager/system-connections/[SSID]
$ sudo rm /etc/NetworkManager/system-connections/[SSID] # sudo equivalent

Dicha orden funciona con cada red.

Consejos y trucos

Comprobar la activación de la red en el interior de un proceso cron o script

Algunos tareas de cron requieren de la red para poder funcionar. Es posible que desee evitar la ejecución de estos trabajos cuando la red no funciona. Para ello, agregue un if de prueba para las consultas de redes con nm-tool de NetworkManager y compruebe el estado de las redes. La prueba tiene éxito si se muestra aquí cualquier interfaz activa, y fallida si no lo están. Esto es conveniente para los ordenadores portátiles que pueden tener conexión cableada, conexión inalámbrica, o podrían estar fuera de red.

if [ `nm-tool|grep State|cut -f2 -d' '` == "connected" ]; then
       #Whatever you want to do if the network is online
else
       #Whatever you want to do if the network is offline - note, this and the else above are optional
fi

Es útil para un script cron.hourly que ejecuta fpupdate para la actualización del escáner de firmas del antivirus F-Prot, por ejemplo. Otra forma de ser útil, con una pequeña modificación, podría ser diferenciar entre redes que utilizan diferentes partes de la salida nm-tool, por ejemplo, en cuanto que la red inalámbrica activa se indica con un asterisco, es posible, con la utilización de grep, cambiar el nombre de la red orientando la busqueda de grep a la red del asterisco.

Desbloquear automáticamente keyring después del login

GNOME

  1. Haga clic con el botón derecho en el icono nm-applet del panel y seleccione «Configuración de la red» y abra la pestaña «Inalámbrica».
  2. Seleccione la conexión que desee y haga clic en el botón «Configuración».
  3. Marque las casillas «Conectar automáticamente» y «Disponible para todos los usuarios».

Cierre la sesión y vuelva a entrar para completar el proceso.

Nota: El siguiente método es anticuado y puede no funcionar en todas algunas máquinas.
  • En /etc/pam.d/gdm (o el demonio correspondiente en /etc/pam.d), añada la siguiente línea al final de los bloques «auth» y «session», para el caso de que no existan:
 auth            optional        pam_gnome_keyring.so
 session         optional        pam_gnome_keyring.so  auto_start
  • En /etc/pam.d/passwd, use la siguiente línea para el bloque del «password»:
 password    optional    pam_gnome_keyring.so
La próxima vez que inicie sesión, debería preguntarle si desea que la contraseña se desbloquee automáticamente al iniciar sesión.

KDE

Note: Consulte http://live.gnome.org/GnomeKeyring/Pam para mayor información, y si se utiliza KDE con KDM, es posible usar pam-keyring-toolAUR disponible desde AUR.

Coloque un script como el siguiente en ~/.kde4/Autostart:

 #!/bin/sh
 echo PASSWORD | /usr/bin/pam-keyring-tool --unlock --keyring=default -s

Un script similar debe funcionar también con Openbox, LXDE, etc.

SLiM login manager

  • En /etc/pam.d/slim, añada la siguiente línea al final de los bloques «auth» y «session», si no existen:
 auth            optional        pam_gnome_keyring.so
 session         optional        pam_gnome_keyring.so  auto_start
  • En /etc/pam.d/passwd, añada la siguiente línea al bloque «password»:
 password    optional    pam_gnome_keyring.so
  • En ~/.xinitrc, añada la siguiente línea al principio, antes de lanzar window manager y otras aplicaciones:
 # test for an existing bus daemon, just to be safe
 if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
    # if not found, launch a new one
    eval `dbus-launch --sh-syntax --exit-with-session`
    echo "D-Bus per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS"
 fi
La próxima vez que inicie sesión, debería preguntarle si desea que la contraseña se desbloquee automáticamente al iniciar sesión.

Ignorar dispositivos específicos

A veces se puede desear que NetworkManager ignore algunos dispositivos específicos y no trate de configurar las direcciones y las rutas para ellos.

1. Puede ignorar los dispositivos por la dirección MAC mediante la siguiente configuración en /etc/NetworkManager/NetworkManager.conf :
[keyfile]
unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4
Después de poner esto reinicie NetworkManager, y con ello debería ser capaz de configurar las interfaces de NetworkManager sin alterar lo que ha establecido.
2. Como alternativa puede usar HAL.
  • Primero debe buscar la UDI de Hal (por ejemplo, con lshal):
 ...
 info.product = 'Networking Interface'  (string)
 info.subsystem = 'net'  (string)
 info.udi = '/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55'  (string)
 linux.hotplug_type = 2  (0x2)  (int)
 linux.subsystem = 'net'  (string)
 ...
  • Añada la udi a /etc/NetworkManager/nm-system-settings.conf:
 [keyfile]
   unmanaged-devices=/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55
Puede especificar múltiples dispositivos, delimitándolos con punto y coma:
 [keyfile]
   unmanaged-devices=/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55;/org/freedesktop/Hal/devices/net_00_2c_6d_e2_08_af
No es necesario reiniciar NetworkManager para que los cambios surtan efecto.
3. Puede ignorar un tipo de dispositivo en fase de arranque usando el siguiente script (cambie NetworkManager.conf con nm-system-settings.conf si usa una versión de NetworkManager anterior a 0.8.1):
  #!/bin/sh
  # author: tim noise <darknoise@drkns.net>
  COUNT=0
  TARGET_FILE="/etc/NetworkManager/NetworkManager.conf"
  for i in `lshal | grep -A6 'Networking Interface' | awk -F "'" '/info.udi = / {print $2}'`; do
      if [ $COUNT = 0 ]; then
          COUNT=$COUNT+1;
          echo "unmanaged-devices=$i" >> $TARGET_FILE
      else
          echo -n ";$i" >> $TARGET_FILE
      fi
  done
  printf "\n" >> $TARGET_FILE
Dichos script pueden ser adaptados para ignorar dispositivos wireless, etc., que utilizan un sistema de archivos no persistente.

Conectar más rápido

Deshabilitar IPv6

Las conexiones lentas o reconexiones a la red pueden ser debidas a las consultas superfluas de NetworkManager a las IPv6. Si no hay soporte para IPv6 en la red local, la conexión a una red puede tardar más de lo normal, mientras que NetworkManager intenta establecer una conexión IPv6 con resultado final de «time out». La solución es desactivar IPv6 en NetworkManager lo que hará que la conexión de red sea más rápida. Esto tiene que hacerse una sola vez para cada red a la cual se conecte.

  • Haga clic en el icono del estado de la red.
  • Haga clic en «Configuración de la red».
  • Vaya a la pestaña «Cableada» o «Inalámbrica», según corresponda.
  • Seleccione el nombre de la red.
  • Haga clic en «Configuración».
  • Vaya a «Ajustes de IPv6».
  • En el botón desplegable «Método», elija la opción «Ignorar».
  • Haga clic en «Guardar».

Acelerar DHCP mediante la desactivación de ARP sondeando DHCPCD

dhcpcd contiene una implementación de una recomendación de la norma DHCP (RFC2131 sección 2.2) para comprobar a través de ARP si la dirección IP asignada realmente no está en uso. Puede parecer innecesario en una red doméstica, pero puede ahorrar alrededor de 5 segundos en cada conexión añadiendo la siguiente línea a /etc/dhcpcd.conf:

noarp

Esto equivale a lanzar dhcpcd con el flag --noarp, lo cual deshabilita el sondeo a ARP, acelerando las conexiones con DHCP.

Usar servidores OpenDNS

Cree el archivo /etc/resolv.conf.opendns con los nombres de servidores:

nameserver 208.67.222.222
nameserver 208.67.220.220

Para sustituir el servidor DHCP por los servidores OpenDNS:

/etc/NetworkManager/dispatcher.d/dns-servers-opendns
#!/bin/bash
# Use OpenDNS servers over DHCP discovered servers

cp -f /etc/resolv.conf.opendns /etc/resolv.conf

Haga ejecutable el script:

# chmod +x /etc/NetworkManager/dispatcher.d/dns-servers-opendns