Conectar dos computadoras directamente y compartir Internet

Si el título es algo raro. Verán, hace poco tuve que hacer algo poco usual en mi cuarto. El problema fue el siguiente:

Tengo dos computadoras. Una, la de escritorio, grande, con un amplio monitor y teclado para poder programar cómodamente. Dos, la portátil, una ultramóvil, super pequeña y super liviana para poder llevar a todo lado. Ambas con Ubuntu GNU/Linux Intrepid Ibex 8.10.

Se trata de una HP Pavilion Slimline s3020n y la portatil de una Acer Aspire One 110L.

Verán, por alguna razón se jodió la tarjeta inalámbrica de mi computadora de escritorio (aka, Desktop). No sabía si era un problema de software o de hardware. Mientras averiguaba tenía que usar la portatil (aka Laptop), pero después de varias horas de pasar archivos de la llave ida y vuelva, de estar cambiando de teclado, saltando del mouse al touchpad, tuve que pensar en una alternativa. Bien, vamos a usar el internet inalámbrico de mi Laptop en la Desktop.

Más fácil decirlo que hacerlo. La idea es esta:

Mi Laptop tiene dos dispositivos de red, el inalámbrica y el cableada. Y mi Desktop también, sin embargo la inalámbrica no funciona. Entonces, conectamos las tarjetas de red de las computadoras directamente entre si con un cable Ethernet y accedo a Internet por la tarjeta inalámbrica de mi Laptop. Simple, no?

1) Bien, lo primero, ¿Cómo conecto las dos computadoras? ¿Cual cable Ethernet?

Yo sabía que se necesitaba un tipo de cable particular conocido como Crossover para poder conectar dos computadoras entre si. Que no es más que una organización particular de un cable UTP. Sin embargo, yo solo tenía a mano un cable straight through (el standard) que por afuera se ve igualito pero que tiene una organización del cableado distinta. Así que busqué si existía una forma de lograrlo con un cable de este tipo pero parecía que era imposible, y no encontré ningún evento documentado… hasta que encontré en la entrada de Wikipedia una tecnología conocida como Auto-MDIX, que automáticamente detecta qué tipo de cable se requiere y configura la tarjeta. Sin embargo, esta tecnología es una característica opcional del Gigabit Ethernet [1], y para mi desgracia, ambas de mis tarjetas de red eran Fast Ethernet (el standard viejo). Me dije, que diablos! Vamos a probar a ver que pasa. Asumamos que es un cable crossover y sigamos tutoriales en red de como conectar dos computadoras por medio de un crossover, y si no funcionan, es porque se necesita un crossover y tendré que ir a buscar uno.

Por lo tanto, la conexión quedó:

Internet <-> Router <-> Inalámbrico <-> Interfaz de red inalámbrica ath0 <-> Laptop <-> interfaz de red cableada eth0 1 <-> cable Ethernet straight through <-> interfaz de red cableada etho 2 <-> Desktop

[1] Según la entrada de en.Wikipedia Crossover que apunta a la cláusula 40.4.4 del IEEE 802.3-2008. Sin embargo, Iridium nos cuenta que también se encuentran en algunas NICs y switch Fast Ethernet.

2) IPs, Máscaras de Red, Puertas de enlace, DNS, y más.

Decirles que llegar a esta configuración me tomó 6 horas. Entre lecturas de tutoriales, revisar los fundamentos de redes, probar sin parar, etc. Para configurar todos los aspectos creé un perfil con el network manager y me conecté a ese perfil, cualquier dato no especificado se deja en blanco. Para configurar estos parámetros dan click derecho sobre el ícono del Network Manager – Editar conexiones – Cableada/Inalámbrica – Añadir – Ajustes de IPv4 – Manual

Laptop:

  • ath0: (Wifi, acceso a Internet) DHCP en una primera instancia. Luego con el comando «ifconfig ath0» pude ver los datos asignados por el router y colocarlos como estáticos para evitarme problemas futuros, aunque se supone que puede quedar como DHCP:
    • IP: 192.168.1.102
    • Subnet: 255.255.255.0
    • Gateway: 192.168.1.1
  • eth0: (tarjeta de red 1)
    • IP: 192.168.0.1
    • Subnet: 255.255.255.0
    • Gateway: 192.168.1.1

Desktop:

  • eth0: (tarjeta de red 2)
    • IP: 192.168.0.2
    • Subnet: 255.255.255.0
    • Gateway: 192.168.0.1
    • DNS: 192.168.0.1

Como podrán observar la clave está en que la puerta de enlace (gateway) de la Desktop es la dirección IP de la tarjeta de red de la Laptop. Lo mismo para el DNS. Además, es esencial que el LAN, o la red privada, en este caso las tarjetas cableadas, estén en una subnet diferente. Como pueden observar, la inalámbrica y el router se encuentran en el rango 192.168.1.X mientras que la LAN está en el rango 192.168.0.X

A este punto pueden verificar que ambas computadoras se responden la una a la otra. En consola:

Desde la Laptop:

ping 192.168.0.2

Desde la Desktop:

ping 192.168.0.1

Felicidades, ya se comunican entre si! Sin embargo, por alguna razón, ninguna de las dos computadoras es ahora capáz de comunicarse con otros servidores en Internet.

Nota: Si desean saber el por qué de esa dirección IP consulten: Assigning Private Network Addresses to the Internal LAN.

3) Compartir la conexión a Internet.

Primero se debe transferir todo el tráfico de una interfaz a otra. Esto se logra por medio de una característica conocida como Masquerade. De nuevo, existe un muy extenso documento acerca de ello aquí.

1. Para ello primero instalamos el paquete ipmasq.

sudo apt-get install ipmasq

2. Configuramos el ipmasq. Después de escribir este comando, seleccionar en el menú que aparece que ipmasq inicie después de que la red esté establecida.

sudo dpkg-reconfigure ipmasq

3. Ahora, habilitamos el IP fordwarding.

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

Además, editamos el archivo /etc/sysctl.conf y descomentamos la línea «net.ipv4.ip_forward = 1», es decir, le quitamos el caracter # frente a la línea.

sudo gedit /etc/sysctl.conf

4. Configuramos la NAT de la siguiente forma:

iptables -t nat -A POSTROUTING -o ath0 -j MASQUERADE

Ojo en mi caso el argumento ath0 es la interfaz de red con acceso a internet.

Bien! A este punto ambas computadoras se pueden conectar con el mundo exterior, desde ambas el servidor de Google responde. Sin embargo, sólo la Laptop puede resolver los nombres de Dominios (DNS), por lo que el navegador de la Desktop todavía no funciona.

5. Para ello necesitamos el paquete dnsmasq.

sudo apt-get install dnsmasq

6. Reiniciamos el dnsmasq

sudo /etc/init.d/dnsmasq restart

Listo! Nuestra conexión de Internet en la Desktop funciona!

Nota: No estoy seguro, pero creo que es necesario repetir el paso 4 y 6 cada reinicio. Voy a asegurarme y actualizo.

Lo más impresionante de todo, estamos usando un cable straight through! Recuerdan? Supongo que ambas NICs tienen Auto-MDIX o algo similar, aunque no sean Gigabit. Pero funciona 😀 Si alguien es experto en redes que me lo explique jeje

Etiquetado , , , , , ,

34 pensamientos en “Conectar dos computadoras directamente y compartir Internet

  1. Iridium dice:

    Un post interesante. Felicidades.

    Yo no soy ningún experto en redes, pero te puedo asegurar que el cambio automático MDI/MDIX *no* es algo exclusivo de Gigabit Ethernet, que lo tienen muchos switches normalitos de 100Mbit/s. Seguro que si buceas en internet buscando la hojas de cararcterísiticas de tus tarjetas de red, verás que aparece lo de MDIX.

    Un par de errores tipográficos en tu post:
    *En la tarjeta eth0 del laptop, el gateway está mal. Debería ser:
    · Gateway: 192.168.0.1

    *En la tarjeta eth0 del desktop, faltan algunos puntos de separación entre los números. Deberían ser:
    · Gateway: 192.168.0.1
    · DNS: 192.168.0.1

    Saludos

  2. cjenkins dice:

    Gracias por las correcciones Iridium. Ya corregí los puntos.
    Sin embargo me fijé bien y el gateway de eth0 de la laptop que tengo ahora es el 192.168.1.1 Digo yo, se me hace complicado entender como le puedo poner como puerta de enlace predeterminada el mismo ip que la tarjeta. Por eso le puse el de la ath0 para que saliera por ahí… digo yo… por lo menos está funcionando.

    Saludos!

  3. Luis dice:

    No tendras algo parecido pero para Window$?

  4. yusbeidy dice:

    hola buenas tardes estoy viendo el foro y me parece muy practico lo que necesito es saber como puedo hacer una aplicacion en borland c++ para que mi computadora se comunique a otra computadora y despues de lograr eso necesito que se conecte con una aplicacion que se llama tcp test tools estoy urgida de eso ayudenme plis

  5. Araxhiel dice:

    Gracias por el excelente tutorial… nada mas me queda preguntar:

    ¿Forzosamente tienen que ser 2 maquinas con GNU/Linux?
    ¿Que procedimiento habria que realizar para poder conectar una Windows XP (Laptop) con una GNU/LInux (Desktop)?

    • cjenkins dice:

      ¿Forzosamente tienen que ser 2 maquinas con GNU/Linux?

      Claro que no, los protocolos de internet y de red son independientes del sistema operativo (osea, hay implementaciones en distintos SO, pero son interoperables, sino, no sería un protocolo abierto 🙂 )

      ¿Que procedimiento habría que realizar para poder conectar una Windows XP (Laptop) con una GNU/Linux (Desktop)?

      Mmm… exactamente no lo sé. Puedes realizar el procedimiento acá descrito de mi «netbook» en tu desktop GNU/Linux, que es la parte más «complicada», y luego conectar tu laptop con Windows XP configurandola como en a mi desktop con las herramientas de Windows XP.

      En cambio, si quieres que sea Windows XP quien haga de puente, ahí si te digo, ni idea.

      Saludos

      • Araxhiel Khy dice:

        De hecho ese es la idea… que la XP sea la que la haga de puente x’D

        La Desktop (a.k.a. La Gorda) no tiene intenet por si sola, de hecho la «enana» (a.k.a. Laptop) es la que le da el internet a La gorda… x’D.. digamos que un vecino «coopera» con el internet inalambrico y como la enana tiene la tarjeta inalambrica y la gorda no… pues ya sabras… de cualquier manera ahi le sigo intentando a ver que sale.. y si se que se puede hacer… ahi te platicare =D

        Largos dias y placenteras noches!

      • Tepeyolotli dice:

        Hola
        En realidad conectar una Linux con una Windows es muy sencillo. Desde linux nos vamos a >lugaresRed< y aqui aparecen las maquinas windows que estan en la misma red. En mi caso, elijo una Maquina y la abro como cualquier archivo. La windows debe tener configurado el compartir ciertos archivos y listo.

  6. Araxhiel Khy dice:

    P.D. aclaro… la gorda tiene sistema dual, es decir Ubuntu 8.10 y WinXP Pro… el como la enana comparte el inter a la gorda.. es cuando uso en ambas winxp…

  7. Araxhiel Khy dice:

    Mr. CJenkins… aqui dando lata de nuevo…

    He realizado el procedimiento en ambas maquinas (ahora ambas con Ubuntu: Laptop 9.10 y Desktop 8.10), peeeeeeeero… el detalle es que, en la Karmic, al conectar el cable de red, me desconecta totalmente de la inalambrica, es decir puedo hacer que ambas maquinas «se vean» pero NINGUNA puede hacer la conexion a Internet.

    Ya realize lo del Masquerade (ipmasq) y lo del dnsmasq, pero ni aun asi… ¿que estare haciendo mal o a que mas habra que meterle mano?

    Como dato adicional, hasta el momento (o sea, a esta fecha martes 24 de nov del 2009) el paquete ipmasq NO ESTA DISPONIBLE en los repositorios de Ubuntu 9.10, hay que buscarlo en los repositorios de Jaunty y posteriores (¿No sera ese el error?).

    De antemano, muchas gracias.

    Largos dias y placenteras noches…

  8. araxhiel dice:

    Actualizacion:

    No se si nada mas me pase a mi, pero para que quede como antecedente: despues de hacer todo el procedimiento que explica Cjenkins, en mi muy particular caso, al reiniciar la Laptop, NO ME DEJO CONECTARME AL INTERNET, cosa que se soluciono al desinstalar el ipmasq y dnsmasq y restaurar los valores por defecto de la conexion inalabrica/cableada.

    Aclaro: no se si esos paquetes fueran los responsables del desperfecto, ni mucho menos, pero, al ser la unica «metida de mano» al sistema, es lo unico que se me ocurre.

    Saludos!

    Largos dias…

  9. Araxhiel Khy dice:

    Bueno… ahi disculpa tanta lata:

    Ya por fin tengo el internet compartido en ambas maquinas =D!

    El detalle era que el gateway de la eth0 de la lap no tenia que llevar algo, debia estar en blanco o con 0’s. Es decir en lugar de poner 192.168.1.1 le cambie a 0.0.0.0 y listo! todo quedo funcionando =D

    De nuva cuenta, gracias por el tuto y perdon por tanta lata =P

  10. Matias dice:

    Una pregunta, a partir del paso 3, en que maquina se realiza?, en la laptop o en la desktop, o en las 2?

  11. Araxhiel Khy dice:

    Hola CJenkins, aqui andamos dando lata de nuevo (puedo ver un baneo a mi nick en el futuro xD).

    Una pregunta (han d decir: ¡¿otra?!), ¿tienes idea alguna para poder hacer el mismo procedimiento en alguna otra distribucion que no este basada en Debian (lease Mandriva, RedHat, etc…) o en su defecto algun recurso en linea donde consultarlo?

    Es que la verdad estoy muy bruto (o no se buscar) y no he encontrado nada similar a tu tuto pero para otras distros….

    De antemano muchas gracias… Saludos!

  12. Araxhiel Khy dice:

    @Tepeyolotli (22:29:39) —

    Pues es algo mas complicado que eso… ya que en este ejemplo también se comparte el Internet (sin usar un router o algo así) xD y bueno, al menos para mi, eso si fue ‘un poco’ mas complicado…

  13. gustavo yanes dice:

    hola sabes yo casi no entiendo nada pero mi pregunta es esta tengo dos laptop como puedo hacer para conectarlas y usar el internet de una para compartir con la otra?lo unico es que no tienens wi-fa ni dada quisiera saber si es posible conectarlas y usar internet en las dos??te agradecere muchisimo ayudame por favor gracias….

    • cjenkins dice:

      Heee…. hee…. de eso es exactamente el tutorial :S Leelo, si no lo entiendes, vuelvelo a leer, si todavía no lo entiendes y tienes preguntas concretas (no, «disculpá, me podés explicar todo lo que acabas de explicar») podés plantearlas, si no, pues, lo siento, no puedo ayudarte :S

      Asumo además, tienes Windows, dado que no entiendes casi nada, si es el caso, lo siento, tampoco puedo ayudarte, este tutorial no es para Windows, es para GNU/Linux.

      Finalmente, si no tienes Wi-Fi en ninguna de las dos… que otra interfaz pretendes usar para comunicar a las computadoras? Osea, aquí estamos usando la cableada para comunicar a una con la otra y la inalámbrica para conectarse a internet. Si no tienes dos interfaces, tampoco puedo ayudarte.

      Saludos

  14. ussjack dice:

    Hey hombre ese router no tenía salida para cable RJ-45 se ubieses ahorrado mucho time

  15. juanjo dice:

    Gracias por el tutorial. Me ha sido superutil ademas de claro!!!

  16. Graxias Araxhiel…
    Poner el gateway 0.0.0.0 en la tarjeta fija también libero el empleo de los dns tanto en la laptop como la PC.. ahora ambas maquinas hacen ping al gateway general y a los DNS ..y estoy trabajando sobre windows XP

  17. ..y muy interesantes todas sus pruebas

  18. carlos piña dice:

    alguien me puede decir como compartir internet desde un windows 7 a una Xp yo resivo el internet desde una tarjeta de red inalambrica y conecte las 2 pc desde las tarjeta de red integrada de cada una es decir, directamente entre si, yo habia colocado que se pusiera la IP automaticamente en los 2 equipos en el equipo con internet me quedo asi;
    Direccion IP: 192.168.137.1
    Mascara de sudred: 255.255.255.0

    y en el de Xp asi;
    Direccion IP: 192.168.137.112
    Mascara de subred: 255.255.255.0
    Puerta de enlace predeterminada: 192.168.137.1

    este se conecta pero se tarda en abrir el navegador casi 6 minuto y en otras ocaciones no abre nada y dice que no se encontro el servido

    ALGUIEN QUE ME PUEDA AYUDAR POR FAVOR CON ESTE PROBLEMA

  19. Eduardo dice:

    Alguien sabe como desactivar el auto MDI/MDIX en un pc ???

  20. Rubén dice:

    buenassssss ….. sabes tengo un problema estoy tratando de compartir internet a mi ps3 mediante iptables y nat en ubuntu,tengo una adaptador wifi(capta internet) conectado a mi pc(ubuntu), el pc conectado a mi ps3 mediante un cable de red cruzado, usando un script con iptables y nat logro conseguir enviar internet desde wlan0 (interfaz de red inalambrica) a mi eth0 (interfaz de area local), pero cuando paso a mi ps3 y le doy probar conexion a internet comprueba la ip hasta ahí bien pero al probar la conexion manda error y al revisar mi pc esta desconectada la red compartida solo esta conectada wlan0…….. nose si sepas sobre esto de compartir internet a ps3 en ubuntu pero cualquier cosa se agradece……. a todo esto ocupo wicd como gestor de redes, OS BackTrack 5 r3 GENOME 64bit

  21. Hola dice:

    Pues a mí no me va el botón de guardar. Y no sé que poner si la eth0 o ath0

    • cjenkins dice:

      1) No se a que te refieres con el botón de guardar, pero seguro te faltan permisos de escritura sobre el archivo.

      2) Si no sabes si poner ath0 o eth0 estoy seguro que no están comprendiendo lo que estás haciendo. Revisa de nuevo que interfaces deseas interconectar y cuales están en tu sistema y vuelve a intentarlo.

      A todo ésto, este tutorial es muy viejo, en nuevas versiones de Ubuntu es muy simple y se hace directamente con la GUI.

  22. Wilmer Santana dice:

    Hice todo! Hago ping entre las maquinas! Pero cuando hago la conexion entre las dos computadoras dejo de tener internet en la laptop!

  23. Sergio Rodr. dice:

    todo todo esta bien, yo ya configuré pero el asunto que como no se mucho de esto, las dos compus dicen estar conectadas, ahora la pregunta del millon, para pasar datos de una compu a otra como se hace? que direccion poner en el buscar o en que carpetas se transfieren, porque en publico no veo nada y si es en red me pide una poener contraseña y lo rechaza? ayuda???

  24. Max dice:

    Tomando en cuenta que este tutorial fue publicado hace más de 6 años tengo una pregunta, ¿aún tiene validez o los pasos han cambiado?

  25. I don’t even know the way I finished up here, but I believed this post was great.
    I do not understand who you’re however certainly you’re
    going to a well-known blogger in case you are not already.
    Cheers!

  26. I thought this article is relevant and timely, either) and living life in full appreciation of
    the randomness and patterns of nature, helps people feel sane and feeling joyous.
    Thinking about deep philosophical memes
    is likewise an experience of a different order that can aid us make the discovery of self understanding. http://health-topic.com/

Replica a cjenkins Cancelar la respuesta