Compartir Internet en 3 líneas.

Hasta que me compré el cacharrito, para tener internet en mi portátil tenía dos opciones. La primera era tirar del wifi del vecino, que siempre tenía puesto el emule bajando porno japonés (en serio), lo que hacía que todo fuera lentísimo, y que siempre tuviera la tentación de cortarle el tráfico a lo bruto. La otra era conectarme por cable, pero dado que mi estúpido DLink está considerablemente lejos de mi habitación, tenía que hacerlo a través de chelestra, mi ordenador de sobremesa, que tiene dos tarjetas de red. Con esto perdía un poco de movilidad (no podia alejarme más de dos metros del ordenador xD) pero al menos podía tumbarme en la cama con el portátil o tener los dos para trabajar encima de la mesa y poder hacer transferencias de ficheros o cualquier cosa que necesitara. El script en cuestión es este:

modprobe iptable_nat
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

EDIT Con mi micro-pantalla de 15 pulgadas a 1024×768 MASQUERADE se pasa a la siguiente línea, así que parecen 4 líneas, pero NO! XDD Si lo usáis, poned MASQUERADE después del -j

Lo saqué de algún sitio hace un mogollón de tiempo así que no puedo citar fuentes porque llevo usándolo casi dos años. Lo que hace el script es redireccionar las conexiones que vengan de la ip 192.168.0.* a la tarjeta de red eth0, que es la que está conectada al router y que lleva por IP 192.168.1.90.

La configuración queda así:
Chelestra (sobremesa)
Tarjeta eth0 : conectada al router. IP 192.168.1.90.
Tarjeta eth1 : conectada al portátil (abarrach). IP 192.168.0.1

Abarrach (portátil)
Tarjeta eth0: conectada a chelestra. IP 192.168.0.90.
Puerta de enlace: 192.168.0.1.

Obviamente, al script le tendréis que dar permisos de ejecución (chmod +x nombre_fichero), y por si alguien lo dudaba, la máquina en la que se ejecuta es aquella que está conectada a internet xD.

El script también resulta especialmente útil para dar wifi a varios ordenadores cuando sólo se tiene una toma de red por cable, como me pasa a mí en la universidad. En unas clases tenemos red y en otras no, así que suelo “distribuirlo amablemente” para que mis amigos puedan estar conectados desde otras clases. Para ello solo hay que crear una red ad-hoc (iwconfig eth1 essid pasardelprofe mode ad-hoc), y configurar las IPs que previamente hayáis acordado ( a no ser que además queráis montar un servidor DHCP xD).

¡Espero que a alguno le sirva!

Más tips para consola

Cuando la consola se queda con “caracteres extraños” o sin responder, como cuando hacemos un less/more/cat de un binario o cuando salimos de un programa de forma incorrecta, podemos usar el comando reset para repararlo.

Midnight Commander (mc) te permite ver los archivos de un tar.gz posicionandote sobre el y pulsando enter.

Con cat -vet archivo podemos ver todos los caracteres del fichero, incluidos los caracteres de control.

No leas este post si no quieres perder el tiempo.

¿Nunca habéis hecho algo genial para descubrir instantes más tarde que nadie lo ha visto? Ir conduciendo y encestar una lata en una papelera, tirar el paquete de tabaco y el mechero en la mesa y que ambos cayeran de pie, que se os cayera una botella y la cogierais antes de que cayera… seguro que sí. Sin embargo, lo único que ven los demás son los fracasos. La lata que tiras desde el coche y le da a la vieja, el paquete que tiras abierto y se vacía por el suelo de la habitación, la botella de whisky que habéis roto y que hará que nunca más os podáis acercar a un cristal sin que alguien diga “anda trae, que como nos vuelvas a joder otro botellón….”.

Pues bien, yo acabo de hacer algo así, ahora mismo, a las 4 menos 20 de la madrugada y nadie me va a creer cuando diga “yo ya lo sabía”. El caso es que leyendo esta noticia en menéame he dicho: Martes… así, como si fuera sobrado. Así que después de pensarlo he hecho lo siguiente:

rootzero@chelestra:~$ cal 1931 . Los linuxeros podrán comprobar que soy $DEITY, y los windowseros piensan que usan el mejor sistema operativo del mundo porque lo programó el inventor de internet así que me creerán si les digo que acerté.

No, no hay nada más. Este no es un post interesante. Si quereis aprender algo… veamos lo que es una variable!!! [mode intentando_salvar_el_post=on]

Creeis en el FSM, ¿verdad?, pues ahora podeis hacer que Linux sepa quién es su dios. Para esto usaremos una variable que llamaremos DEITY y haremos:

DEITY=FSM

Ahora supongamos que un super juanker os ha metido un SPAN y se dispone a borrar todos vuestros contactos de messenger cuando decide que se apiadaría de vosotros si fuerais pastafaris. ¿Cómo comprobaría cuál es vuestra religión? Pues consultando el valor de la variable DEITY, y eso ¿cómo se hace?

echo $DEITY

Por supuesto hay otras variables algo más interesantes, como PATH o LS_COLORS.

Lo he intentado, aunque no creo que haya conseguido que penséis que este post no es una chorrada ;) Eso sí, yo acerté el día y me siento feliz. :P

Algunos atajos de bash.

control+k : corta desde donde esté el cursor hasta el final de la línea
control+w : corta una palabra hacia atrás
control+u : corta desde donde esté el cursor hasta el principio de la línea
control+y : copia lo cortado con los comandos anteriores
control+r : busca comandos anteriores, usadlo y escribid las primeras letras de algún comando que ya hayáis usado. Es muy útil para comandos largos.

Beep!!

El comando echo -en “\x07″ “imprime” el caracter BELL, un pitido que de sobra conocereis los que os cebais con el autocompletar del tabulador xD. Este comando nos puede ser bastante útil en nuestros scripts.

Un ejemplo de mosca cojonera xD

for i in $(seq 300) ; do echo -en “\x07″ && sleep 0.2 ; done &

Shell temporal en vi

Si queremos acceder momentáneamente a una shell desde vi podemos introducir el comando :shell. Cuando hayamos terminado, escribimos exit en la consola y volveremos a vi recuperando la sesión