Páginas

jueves, 26 de septiembre de 2013

Gestores de ventanas y escritorios en Ubuntu

Al abrir una sesión en Ubuntu, el gestor de sesiones LightDM (la pantalla de acceso que pide usuario y contraseña) nos ofrece distintas opciones de escritorio que dependerán tanto de la versión de Ubuntu instalada como de los escritorios adicionales que hayamos podido añadir.

Conviene aclarar los conceptos porque hay mucha confusión:

Gestor de ventanas

Es el software que muestra por pantalla los diferentes programas que ejecutamos sobre nuestra interfaz gráfica X11. Algunos de los mas conocidos son: E17(Enlightenment), Metacity, KWin, Compiz, Xfwm, Openbox, Mutter, Muffin, ...

Escritorio (o Shell)

Es un conjunto de aplicaciones agrupadas para simplificar el uso del ordenador. Todo escritorio lleva un gestor de ventanas, un gestor de redes, un gestor de sonido, un gestor de archivos, etc. Algunos de los mas usados son:
  • Gnome 1.X y 2.X. Las distintas versiones han tenido varios gestores de ventanas. Por orden de antigüedad: Sawfish, Enlightenment y Metacity
  • Gnome-Shell (o Gnome 3.x). Tiene como gestor de ventanas Mutter.
  • KDE. Tiene como gestor de ventanas KWin.
  • Unity. Tiene como gestor de ventanas Compiz.
  • Xfce. Tiene como gestor de ventanas Xfwm.
  • Lxde. Tiene como gestor de ventanas Openbox.
  • Cinnamon. Tiene como gestor de ventanas Muffin.
Distribuciones

Hay muchas y muy variadas, vamos a comentar únicamente las basadas en Ubuntu (no conviene olvidar que Ubuntu es una distribución comercial basada a su vez en la distribución libre Debian):
  • Ubuntu. Escritorio Gnome ó Unity (según sube la versión).
  • Xubuntu. Viene con el escritorio Xfce
  • Kubuntu. Viene con el escritorio KDE
  • Lubuntu. Viene con el escritorio Lxde
  • Linux Mint. Escritorio KDE, Gnome, XFCE ó Cinnamon (según sube la versión). Las últimas versiones se basan directamente en Debian.
Y me pregunto ¿porqué habrá tanta confusión si es todo tan sencillo? ;-)

Notas.

Como oigo comentarios sobre lo maravilloso que es Cinnamon y lo malo que es Gnome-Shell, he probado a instalarlo en Ubuntu 12.04 LTS con:

sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable
sudo apt-get update
sudo apt-get install cinnamon


Próximamente comentaré qué tal va...

Un saludo

miércoles, 25 de septiembre de 2013

Utilidades Ubuntu vía terminal

En esta entrada vamos a ir recopilando una serie de comandos/aplicaciones Linux muy útiles, que en muchas ocasiones hemos usado pero que siempre terminamos olvidando.

Algunas de las aplicaciones son comunes en los menús de las distintas distribuciones, pero cada es más complicado encontrarlas con la creciente variedad de interfaces disponibles.

¿Cómo averiguar la versión de Ubuntu instalada por terminal? 

lsb_release -a 

¿Cómo monitorizar de forma gráfica los distintos ficheros de log de Ubuntu? 

gnome-system-log 

¿Cómo lanzar la herramienta gráfica de gestión de discos? 

palimpsest 

¿Cómo montar una carpeta remota como carpeta local vía SSH? 

sshfs uuuuuuu@xxx.xxx.xxx.xxx:/remote/folder /local/folder

Donde uuuuuuu es el nombre del usuario de la cuenta SSH
Donde xxx.xxx.xxx.xxx es la IP donde conectar
Donde /remote/folder es la carpeta remota
Donde /local/folder es la carpeta local donde será montada.
 

¿Cómo transferir un fichero vía SSH? 

scp fichero.txt uuuuuuu@xxx.xxx.xxx.xxx:/remote/folder

Donde fichero.zip es el fichero local que queremos copiar
Donde uuuuuuu es el nombre del usuario de la cuenta SSH
Donde xxx.xxx.xxx.xxx es la IP donde conectar
Donde /remote/folder  es el directorio remoto donde vamos a copiar

Actualizar Ubuntu a la siguiente versión

sudo apt-get update
sudo apt-get upgrade

sudo update-manager -c

Redirigir el tráfico a determinadas IP por cierta conexión

Si tenemos varios interfaces de red activos: eth0, wlan0, wlan1, tun0, etc. Podemos especificar por cual de ellos queremos que vayan las peticiones a determinado rango de IP. Para ello usamos:

sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw xxx.xxx.xxx.xxx dev tun0

Donde 10.0.0.0 son las direcciones IP de la red corporativa a las que necesitaríamos acceder, en el ejemplo accedemos a todas las que sean 10.XXX.XXX.XXX
Donde 255.0.0.0 es la máscara para la red corporativa.
Donde xxx.xxx.xxx.xxx es la IP que tenemos asignada en el interfaz tun0.
Donde tun0 es el interfaz por donde queremos desviar éste tráfico en concreto.


Medir el ancho de banda de una conexión VPN

Hola

Supongamos que todo un grupo de usuarios tienen que conectar al escritorio remoto de sus máquinas de la oficina a través de la VPN de la empresa, pero no tenemos muy claro cual es el ancho de banda disponible en la VPN ni cual será el límite impuesto para cada conexión.

Sin éste dato es difícil asegurar qué herramientas de acceso remoto no serán adecuadas por el consumo de ancho de banda que implican sus protocolos:
  • VNC (protocolo RFB)
  • Terminal Server (protocolo RDP)
  • NX (protocolo X11)
Para medir el ancho de banda de la conexión VPN podemos usar la utilidad iperf. Ésta utilidad deberá ser instalada en dos máquinas, la primera sería nuestro portatil (en casa) y la segunda nuestra máquina de la oficina a la que nos debemos conectar de forma remota.

Para instalarlo lanzamos el mismo comando en ambas máquinas:

    sudo apt-get install iperf

Primero configuramos iperf en la máquina de la oficina para que actúe como servidor:

    iperf -s -p XXXXX -f KBytes

    Donde -p XXXXX define el puerto de escucha, por defecto 5001.
    Donde -f KBytes define que los resultados sea generen en KBytes.

Seguidamente configuramos iperf en el portatil para que actúe como cliente y lance las pruebas:

    iperf -c XXX.XXX.XXX.XXX -p XXXXX -t 100 -P 1

    Donde -c XXX.XXX.XXX.XXX define la dirección IP de la máquina 'servidor'.
    Donde -p XXXXX define el puerto donde iperf escucha en el servidor.
    Donde -t 100 define el tiempo que dura el test, por defecto 10 segundos.
    Donde -P 1 define el número de clientes concurrentes, por defecto 1.

Por defecto, es el cliente es el que manda datos al servidor durante 10 segundos.

Nota 1. Éstas medidas varían dependiendo del tráfico de la VPN y del tráfico en la red de la oficina. Es interesante repetirlas a distintas horas para observar las diferencias.

Nota 2. Si queremos realizar pruebas de velocidad en el otro sentido (subida desde el server al cliente) podemos intercambiar los roles de ambas máquinas.

Nota 3. Evidentemente podemos usar iperf para medir el ancho de banda disponible en cualquier conexión entre dos máquinas, ésto es sólo un ejemplo de uso.

Ejemplo.

Se puede jugar con la herramienta en local para probar los distintos parámetros (iperf --help). Veamos un ejemplo:

1) En un terminal de nuestro portatil levantamos el servidor iperf escuchando en el puerto 9999:

eduardo@Dune:~$ iperf -s -p 9999 -f KBytes
------------------------------------------------------------
Server listening on TCP port 9999
TCP window size: 85.3 KByte (default)
------------------------------------------------------------


2) En un segundo terminal de nuestro portatil lanzamos el cliente, simulando 10 usuarios concurrentes y durante un tiempo de 100 segundos:

eduardo@Dune:~$ iperf -c 127.0.0.1 -p9999 -t 100 -P 10
------------------------------------------------------------
Client connecting to 127.0.0.1, TCP port 9999
TCP window size:  167 KByte (default)
------------------------------------------------------------
[  4] local 127.0.0.1 port 48966 connected with 127.0.0.1 port 9999
[  5] local 127.0.0.1 port 48967 connected with 127.0.0.1 port 9999
[  7] local 127.0.0.1 port 48969 connected with 127.0.0.1 port 9999
[  8] local 127.0.0.1 port 48970 connected with 127.0.0.1 port 9999
[  9] local 127.0.0.1 port 48971 connected with 127.0.0.1 port 9999
[  6] local 127.0.0.1 port 48968 connected with 127.0.0.1 port 9999
[ 10] local 127.0.0.1 port 48972 connected with 127.0.0.1 port 9999
[  3] local 127.0.0.1 port 48965 connected with 127.0.0.1 port 9999
[ 11] local 127.0.0.1 port 48973 connected with 127.0.0.1 port 9999
[ 12] local 127.0.0.1 port 48974 connected with 127.0.0.1 port 9999
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-100.0 sec  13.2 GBytes  1.13 Gbits/sec
[  7]  0.0-100.0 sec  11.1 GBytes   950 Mbits/sec
[  8]  0.0-100.0 sec  11.9 GBytes  1.02 Gbits/sec
[  6]  0.0-100.0 sec  16.6 GBytes  1.43 Gbits/sec
[  3]  0.0-100.0 sec  11.8 GBytes  1.02 Gbits/sec
[  5]  0.0-100.0 sec  12.0 GBytes  1.03 Gbits/sec
[  9]  0.0-100.0 sec  10.9 GBytes   940 Mbits/sec
[ 10]  0.0-100.0 sec  13.0 GBytes  1.12 Gbits/sec
[ 11]  0.0-100.0 sec  13.0 GBytes  1.11 Gbits/sec
[ 12]  0.0-100.0 sec  10.8 GBytes   924 Mbits/sec
[SUM]  0.0-100.0 sec   124 GBytes  10.7 Gbits/sec


Qué buen canuto ¿verdad? ;-)

Un saludo