dimarts, 21 d’octubre de 2008

Fitxer /etc/hosts

Ah! amics!

Resulta que ara tenim internet a casona! Arran d’aquest esdeveniment, vaig portar el servidor al menjador de casa. Evidentment, no podia ser tant fàcil, i el router de telèfonica CT-5361 feia de les seves. Per obrir els ports trobareu tutorials per tot arreu, però veure la pàgina dins la própia LAN, això és una altra cosa. Si quan us connecteu al vostre domini us surt la pàgina del router, mentre que si us connecteu des de qualsevol xarxa, tot va com una seda, això és degut a una funcionalitat del router anomenada NAT loopback.

Evidentment, els routers de telefònica no l’implementen (mentre que els Speedtouch d’alpi si). M’he barallat amb inútils de telefònica com per tenir-ne una idea (nota: si voleu servei tècnic de debó, truqueu al servei tècnic per Pymes encara que sigueu un hombre de apié normal i corrent). Bé doncs eus ací un workaround per a tots aquells usuaris de linux que us evitarà canviar-vos el router: el fitxer hosts.

El fitxer /etc/hosts us permet assignar dominis a IPs com ho faria un DNS. Només us cal afegir-hi el seguent codi:

#aquests hosts me’ls invento jo per a veure el bloc
#
192.168.1.71 closca.sytes.net
192.168.1.71 eter.serveblog.net
192.168.1.71 eawars.sytes.net

Ja sabeu! Però adoneu-vos que ara, si agafeu el portàtil i aneu fora de casa deixarà de funcionar i haureu de tornar a canviar-ho. Per això també he pensat que podria haver-hi un script que fes ping a la ip i si hi ha resposta, et copiés un fitxer hosts i si no, un altre amb les linees comentades. Alguna cosa així:

#! /bin/bash

pingcount=$(ping -c 1 192.168.1.71 |grep received|awk -F’,’ ‘{print $2}’|awk ‘{print $1}’)
if [ $pingcount -eq 0 ]; then
echo “Server[192.168.1.71] not found on lan, setting hosts as hosts_abroad”;
sudo cp -f /home/pol/Config/hosts_abroad /etc/hosts
else
echo “Server[192.168.1.71] found on lan, setting hosts as hosts_home”;
sudo cp -f /home/pol/Config/hosts_home /etc/hosts
fi

[fitxer hosts_replace_sh]

On hosts_abroad i hosts_home són els diferents fitxers hosts.
I ja per últim, només caldria que s’executés al iniciar, que encara no m’ho he mirat, o fer-ne una llançadora amb la ordre gksudo sh /home/pol/Config/hosts_replace_sh. Que podem exectutar amb un parell de clics quan canviem de xarxa.