PDA

Ver la Versión Completa : Tutorial de eMule y eDonkey



Running Bear
19/10/2005, 23:26
Tutorial eMule :: Funcionamiento red eDonkey

La red eDonkey es una red p2p ("peer to peer" o, traducido al castellano, "entre pares", eso significa que los usuarios nos conectamos entre nosotros y nos enviamos archivos. Sin embargo, debe haber alguna forma de encontrar la gente que tiene los archivos que nos interesan, y ahí* es donde entran en juego los servidores. El funcionamiento esquemático será el siguiente:

1- Un cliente se conecta a un servidor. (Usando TCP).
2- El cliente le envía al servidor los archivos que comparte.
3- El servidor guarda en su ordenador una lista con todas las personas que están conectadas al y los archivos que comparten.
4- Preguntamos al servidor por personas que tengan los archivos que nos interesan.
5- El servidor mira en su lista y nos dice qué© personas conectadas a el comparten los archivos que queremos.
6- Recibimos la lista de gente que nos interesa y nos intentamos conectar a ellos. Si lo conseguimos, entramos en cola de esas personas.
7- Despues de este proceso, vamos probando de conectar a otros servidores por UDP para encontrar más fuentes. En este caso el proceso se reduce del punto 4 al 6. Es decir, al resto de servidores a los que no estamos conectados pero tenemos en la lista NO les enviamos la lista de archivos que compartimos.

Además, en el caso del eMule, se obtienen fuentes por intercambio entre clientes. Cada cierto tiempo (dependiendo del número de fuentes que tengamos en un archivo determinado) el emule se conecta con otro cliente emule y le pide las fuentes que tiene par aun determinado cliente. Esto ayuda a que, encontrando a un solo cliente en el servidor, podamos encontrar fuentes muy rápidamente.

En general, los puertos que se usan son:

Puerto TCP 4661: Para conectarse a los servidores (NOTA: Puede ser a un puerto diferente). El número de este puerto no depende de nosotros, sino del servidor: es el el que decide por que puerto debemos conectarnos a el. La conexión a los servidores es SIEMPRE de salida; es decir, la establecemos desde nuestro ordenador.

Puerto "Clientport"(TCP): Este es el puerto por el que el emule/eDonkey, espera las conexiones del resto de personas. Es por este puerto por el que el resto de clientes se intentaran conectar a nosotros para poder bajar archivos nuestros o bien para indicarnos que ya podemos empezar a bajar archivos suyos. Esta conexión es SIEMPRE de entrada, con lo que debemos asegurar que podemos recibirla. Por defecto, este puerto es el 4662, aunque más adelante explico como saber cual tenemos.

Puerto UDP 4665: Este puerto se usa para pedir a los servidores fuentes o realizar busquedas (no siempre es el 4665 ya que es función del puerto TCP que haya escogido el servidor para recibir las conexiones, pero son* generalmente). La conexión que se establece es siempre de salida.

Puerto "Clientport"(UDP): Este puerto es SOLO USADO POR EL EMULE, el eDonkey no lo usa. A través de el, el emule realiza el intercambio de fuentes con otros clientes y conoce las posiciones que ocupa en las colas de otras personas. Por ese puerto, el resto de gente, intenta conectarse para intercambiar fuentes y conocer que posición ocupan en nuestra cola (igual como nosotros hacemos al revés). Es decir, por este puerto, podemos tener conexiones de entrada. Por defecto, el emule usa el puerto 4672.

Este de aquí* arriba es el funcionamiento básico de la red eDonkey/emule. El problema viene principalmente en el punto número 6 y en el "Clientport"(TCP y UDP). Nosotros nos intentamos conectar a la gente para bajar archivos. Sin embargo, no todo el mundo permite recibir conexiones desde el exterior, con lo que esto plantea problemas. De aquí* salen las definiciones siguientes:

High ID un usuario que puede conectarse a otro y, lo más importante, que otros pueden conectársele a el.

Low ID: es un usuario que no puede recibir conexiones exteriores. Para poder bajar o subir, siempre debe establecer el la conexión con el otro cliente.

Con estas definiciones vemos que un cliente High ID no podrá conectarse directamente a un cliente Low ID (no acepta la conexión).

Para solucionar este problema, lo que se hace es que el cliente High ID se conecta al servidor al que el cliente Low ID está conectado y le pide al servidor que quiere bajar un archivo del cliente low ID. Como el cliente Low ID se conecta activamente al servidor, el servidor le dice: "Tal cliente High ID quiere tal archivo". En ese momento el cliente Low ID se conecta al Hihg ID y empieza a enviarle el archivo.

Este proceso, sin embargo, genera una sobrecarga importante a los servidores, por lo que en la medida de lo posible debe evitarse.

Otra cosa que se extrae de este proceso es que dos clientes low ID no se podrán conectar nunca. Ninguno de los dos puede aceptar conexiones directas de otros clientes.


Como saber si soy un Low ID o un High ID

Una persona puede ser low ID por diferentes razones.

1- Tiene un firewall de software. Este es un programa que nos instalamos que evita, si no lo sabemos configurar bien, que podamos recibir bien determinado tipo de conexiones. Esto podrá provocar que estuviéramos en low ID.

2- Tiene un router (Habitual en gente con ADSL). Este es un aparato que, tal como nos lo instala generalmente el proveedor del servicio en cuestión, no permite recibir ninguna conexión desde el exterior.

3- El servidor al que nos conectamos tiene un problema. Eso puede ser porque está sobrecargado y no puede funcionar bien.

4- Funciona desde una universidad o desde algunos puestos de trabajo, lo que será equivalente a tener un firewall de software que no nos permiten configurar.

En los dos primeros casos podremos resolver el problema (Si usamos el emule/eDonkey en casa, seguro que lo podemos solucionar), el tercer caso tampoco es muy problemático, pues podemos desconectarnos y buscar otro servidor y el cuarto caso es el más difícil (Posiblemente nos tendremos que conformar con continuar low ID).

En primer lugar comprobaremos si podemos recibir conexiones desde el exterior o no. Es decir, si deberíamos tener una ID alta o baja. Para hacerlo haremos lo siguiente:

1- Encender el emule/eDonkey.
2- Cancelar la conexión a cualquier servidor de momento.
3- Para emule: Ir a "Preferencias" y, en la pestaña de "conexión", apuntaremos el "clientport" (puerto traducido al castellano). Veremos que hay dos, el de la izquierda que es el TCDP y el de la derecha que es el UDP. Apuntamos los dos indicando cual es cual.
Para eDonkey: en la consola (ventana donde aparecen los mensajes de bienvenida de los servidores) escribir "vo"(sin las ""). De todos los datos que aparecen, apuntad el que pone "door port".
4- Abriremos nuestro navegador de internet e iremos a la siguiente dirección: http://www.thedonkeynetwork.com:90/connection_test.
5- En la casilla a la izquierda del botón "test", introduciremos el "clientport" (en el caso del emule, el TCP) que hemos apuntado antes.
6- Apretaremos el botón "test".

Una vez hecho esto, miramos el resultado.

Si es del estilo "success ... your id should be **********", significa que podemos tener una ID alta y, si alguna vez la tenemos baja, es culpa del servidor.

Si por el contrario el mensaje es

"timeout on ip ***.***.***.*** (6 sec)

this means, that we even did not receive a
RESET signal; maybe due to a 'stealth' firewall

Significa que SOMOS UN LOW ID, con lo que deberemos intentar cambiar la situación.


Como solucionar el problema si tenemos una Low ID

En el caso que estemos en una computadora desde casa, hay que mirar las siguientes cosas por este orden.

1- Si tienes Windows XP, comprobar que el fireweall de software que lleva por defecto está¡ desactivado y, si no lo está¡, desactivarlo. Para ello haced lo siguiente:

1.1- ID a Inicio > Panel de Control > Conexiones de Red > Conexión de Área Local
1.2- Botón derecho sobre Conexión de Ãrea Local > Propiedades.
1.3- En "propiedades", buscad la pestaña "avanzadas" y desactivad la casilla "Proteger mi equipo y mi red limitando o impidiendo el acceso a el desde Internet"

2- Mirar si tenemos un firewall de software conectado a nuestro ordenador. Si nosotros no lo sabemos y otra persona usa el ordenador, preguntarle a ella. Nombres típicos de firewalls de software son: ZoneAlarm, Sygate, Outpost Agnitum, Norton Firewall, Kerio... (Pronto hablaremos un poco más a fondo de como configurar correctamente el firewall para el emule)

En caso que así* sea, debemos configurarlo para que permita el uso al emule. Si no sabes muy bien como funciona, permítele acceso total a Internet, tanto como cliente como servidor (No hay ningún problema). Si sabes algo más de funcionamientos de firewalls, aquí* dejamos la que consideramos la mejor configuración:

En conexiones de entrada:

TCP: Permitir conexión a nuestro "clientport"(TCP) (El puerto que hemos apuntado antes, el de la izquierda) desde cualquier puerto.
(Es el puerto que usamos para que la gente pueda conectarse a nosotros y enviar/recibir datos).
UDP: Permitir conexión a nuestro "clientport"(UDP) (El puerto que hemos apuntado antes, el de la derecha) desde cualquier puerto. SOLO EN CASO DE USAR EL EMULE, si se usa el eDonkey, esta regla no se debe poner.

En conexiones de salida:

TCP: Permitir cualquier conexión de salida a cualquier puerto y desde cualquier puerto.
(Para poder conectarnos a cualquier servidor que no funcione por el 4661 y cliente que no use el puerto 4662 como clientport TCP)
UDP: Permitir cualquier conexión de salida a cualquier puerto y desde cualquier puerto.
(Para poder pedir fuentes a cualquier servidor de nuestra lista que no use el puerto UDP 4665 que generalmente se usa por defecto y poder intercambiar fuentes en el caso del emule)

Ejemplo de regla abierta para obtener el máximo número de fuentes para emule (valida para edonkey también), pero menos restrictiva:

TCP In: Local > Permitir -> any port - cualquier puerto
UDP In: Local > Permitir -> any port - cualquier puerto
TCP Out: Remoto > Permitir -> any port - cualquier puerto
UDP Out: Remoto > Permitir -> any port - cualquier puerto

Ejemplo de regla cerrada y más segura por el mayor control que tenemos con nuestras conexiones con el emule (también valida para edonkey).

TCP In: Local > Permitir -> Clientport (TCP). En el emule es que hemos apuntado de la izquierda.
UDP In: Local > Permitir -> Clientport (UDP). (NO NECESARIA SI USAMOS EL EDONKEY)

TCP Out: Remoto > Permitir -> Any port
(Para conectarnos a cualquier servidor y cualquier persona que no use el puerto por defecto, el 4662)
UDP Out: Remoto Permitir -> Any port
(Poder pedir más fuentes a los servidores que no usen el puerto UDP 4665 por defecto)

TCP In - Out: Local/Remoto > Denegar -> cualquier puerto. Al ser reglas jerárquicas, con esta última denegamos que el emule(edonkey) use cualquier puerto que no sea cualquiera de los anteriores
UDP In - Out: Local/Remoto > Denegar -> cualquier puerto. Al ser reglas jerárquicas, con esta última denegamos que el emule(edonkey) use cualquier puerto que no sea cualquiera de los anteriores

3- Mirar si tenemos un router. Si tenemos ADSL puede que tengamos uno.
Nota- Un MODEM USB NO ES UN ROUTER, pero en las páginas de abajo podáis encontrar información por si teníais problemas con vuestro modem (alto consumo, desconexión de Internet...)

En este caso, deberemos configurar el router. Para eso es necesario abrir en el router nuestros "clientport" (Son los dos puertos que hemos apuntado antes, uno TCP y el otro UDP). Si por alguna razón cambiamos nuestros "clientport", debemos acordarnos de cambiar los puertos abiertos.

Para abrir puertos en routers os remito al foro de ADSL en esta misma página y/o mirad estas páginas:

Información general sobre ADSL en formato FAQ:
http://www.terra.es/personal4/antoniomartos/ADSLFAQ.html

Información de routers y módems específicos y ADSL en general. Muy completa:
http://www.adslayuda.com/

Información de ADSL y routers/módems en concreto. También muy completa y recomendada:
http://www.adslnet.ws/

4- En caso estemos desde universidad o trabajo, cambiar puertos.
Esta opción es solo valida para aquellos que están en la universidad o el trabajo.

4.1- Una opción es probar a cambiar el puerto y mirar si así* obtenéis una ID alta. Las universidades acostumbran a cerrar los puertos para evitar conexiones desde el exterior, pero puede que tengan algunos abiertos para determinadas funciones. Lo ideal seria poder escanear los puertos que están abiertos (miraremos si encontramos algún programa o, si alguien conoce alguno, que lo diga) y usar alguno de los que salieran abiertos. Sino, solo podemos proponer que probéis con estos a ver si lo consigues:

Puertos: 125, 21, 440,443.

Si con estos puertos no conseguís una ID alta, probad con otros.
Nota- Emule: El puerto se cambia en la pestaña de "conexión", el lugar donde pone "clientport"(puerto). eDonkey: El puerto se cambia escribiendo en la consola "port ****". Para volver a comprobar si tenemos un High ID reiniciad el emule/eDonkey.

4.2- De momento esta opción no es posible con el emule, pero si* con el eDonkey. Se trata de usar un proxy. Para usarla, os remito a la guía de Letrico.


Consideraciones adicionales

1- Que puertos es mejor usar en el emule/eDonkey ??

Por defecto el emule/eDonkey trae unos puertos TCP (4662) y UDP (4672) (Este solo lo usa el emule). Sin embargo, yo soy de la opinión que es conveniente no usar estos, ya que creo que todos podemos salir beneficiados.
La razón es que es fácil que en universidades o los mismos proveedores de Internet, detecten el alto tráfico por estos puertos y, como consecuencia, restrinjan el tráfico. Si la gente usa puertos variados, esto será¡ mucho más difícil de detectar. Además, si no usamos estos puertos, gente desde las universidades o el trabajo podrán conectar con nosotros y, seguramente, podremos bajar de ellos a una velocidad muy buena (recordad que tienen muy buenas conexiones).
Así* que aquí* tenéis mi consejo: usad la inventiva. La única restricción es que el "clientport" debe estar comprendido entre 1-65500 (tanto el TCP como el UDP).
NOTA 1: algunos puertos para aquellos que no tengan inventiva: 6969, 8003, 2135, 4592, 9245, 18592, 47895, 1243, 9876, 4321, 23456... (Sirven tanto para UDP como para TCP)

2- Afecta en algo el proxy de telefónica y otros proveedores ?

SÃ* que afecta, pero en casos muy restringidos. En primer lugar, para saber si estáis detrás de un proxy, id a esta dirección: http://www.internautas.org/detectaproxy.php
Si os indica que estáis detrás de un proxy, entonces VIGILAD SI PONEIS COMO CLIENTPORT LOS SIGUIENTES PUERTOS: 80, 1755, 554 y 7070. Podéis probar con ellos, ya que si el proxy funciona perfectamente no deberá haber problemas, pero si detectáis problemas (como low ID o bajadas drásticas de velocidad), pensad en que podrá ser por el proxy y es mejor que cambiáis los puertos. En el resto de cosas y puertos usados, no os afectara¡ para nada.

3- Tengo más de una computadora en casa, qué© hago ?

Bueno, en ese caso debes investigar un poquito. A ver si podemos hacer una guía paso a paso:

3.1 - Mirar qué© sistema de conexión a Internet tenemos.
Básicamente pueden ser 2, a través de un router exterior o a través de un proxy instalado en una computadora. Para saber como lo hacéis haced la siguiente prueba. Probad a conectaros desde cada ordenador a Internet teniendo el resto de ordenadores apagados. Si desde todos ellos puedes conectarte es que usas un router, sino es que usas un programa que está¡ instalado en algún ordenador y hace las funciones de proxy.

3.1.1 - Si tenemos un router.
En ese caso, podemos instalar el emule en el ordenador que queramos o incluso en más de uno de ellos. Para ellos tendremos que abrir dos puertos para cada emule que instalemos. Procedemos de la siguiente manera: instalamos el emule en todas las computadoras que queramos, vamos a "preferencias", "connection" y en la configuración del "clientport", NOS ASEGURAMOS QUE EN TODAS LAS COMPUTADORAS LOS PUERTOS TCP (El de la izquierda) Y UDP SON DIFERENTES. Por defecto no lo estarán, con lo que seremos nosotros quienes deberemos cambiarlos. Después de cambiarlos, nos apuntamos qué© puertos usa cada ordenador y qué© IP local tiene y, en el router, los abrimos. (Mirad el apartado c), punto 3).

Ej.
Computadora 1: Clientport TCP: 6754 ClientPort UDP: 4532 IP local : 172.26.0.3
Computadora 2: Clientport TCP: 4444 ClientPort UDP: 3422 IP local : 172.26.0.4
El router deberemos abrir los puertos TCP 6754 y UDP 4532 para la IP 172.26.0.3 y los puertos TCP 4444 y 3422 para la IP 172.26.0.4.

3.1.2 - Si tenemos un programa tipo proxy instalado en una computadora.
En ese caso, podemos instalar el emule en el ordenador en el que tenemos instalado el proxy. Esa computadora es la que es necesario que esté encendida para que todos se puedan conectar a Internet. Si queremos instalar otro emule, hace falta que el proxy que tengamos instalado tenga soporte para NAT (como es el caso del Winroute). Si el proxy tiene soporte NAT, entonces debemos hacer lo mismo que en el apartado anterior. Es decir: asegurarnos que todos los emule usan puertos diferentes y, después, configurar el proxy con soporte NAT para abrir los puertos que usamos en cada emule al ordenador en el que funciona.

PILU.COM / Sebastián Gurá*

Running Bear
08/03/2007, 22:58
Manual para abrir puertos de emule (http://www.comunidadp2p.net/showthread.php?t=2276)

Que puerto escoger en TCP y UDP. (http://www.comunidadp2p.net/showthread.php?t=50)

Protege tus descargas del eMule y de BitTorrent (http://www.comunidadp2p.net/showthread.php?t=3634)

Como configurar el Ipfilter.dat manualmente para el eMule (http://www.comunidadp2p.net/showthread.php?t=3101)

Saturación de linea ¿Porque? (http://www.comunidadp2p.net/showthread.php?t=284)

Configurar routers (http://www.comunidadp2p.net/showthread.php?t=36)

Configurar el Firewall del XP (http://www.comunidadp2p.net/showthread.php?t=78)

Manual basico del ZoneAlarm (http://www.comunidadp2p.net/showthread.php?t=57&highlight=zonealarm)

Porque estoy Blacklist (lista negra] o Baneado ? (http://www.comunidadp2p.net/showthread.php?t=285)

Test's de velocidad (http://www.comunidadp2p.net/showthread.php?t=53)

Atención a los servidores falsos (http://www.comunidadp2p.net/showthread.php?t=93)