security - language - Erlang: nodos no permitidos/tal vez pregunta sobre cookies
erlang org download otp win64 (6)
Además, cuando inicia el sistema Erlang, hay un indicador de línea de comando -setcookie
que le permitirá especificar la cookie en el momento del inicio.
erl -name fred@ipaddress -setcookie FOOBAR
Espero que eso ayude, Jacob
Intentando que dos nodos erlang se comuniquen entre sí: uno en una máquina Ubuntu y otro en Windows XP.
Estamos recibiendo un mensaje de " intento de conexión desde un nodo no permitido " que impide que un nodo reciba mensajes del otro.
Ambos usan versiones 5.XXX de Erlang OTP.
Ambos nodos tienen la misma cookie (.erlang.cookie)
Estamos comenzando el nodo receptor con:
erl -name fred@ipaddress
y llamando a la función con ''fred @ ipaddress'' (entre comillas simples)
Hemos desactivado los firewalls.
Entonces, ¿qué más puede estar impidiendo la conexión?
Actualización: estamos usando erlang: get_cookie () para verificar la cookie en ambos nodos, y los valores son diferentes. Entonces este es el problema. Creemos que estamos configurando la cookie colocando el mismo archivo .erlang.cookie en el directorio donde ejecutamos erlang en ambas máquinas. Pero tal vez este es el lugar equivocado?
Actualización 2: gracias por las respuestas a todos. Elegimos la de Ranok como nuestra respuesta porque funcionó bien para nosotros. Estoy seguro de que algunas de las formas alternativas de configurar la cookie también estarían bien.
Comience revisando las cookies de cada nodo. Desde el caparazón:
erlang:get_cookie().
Si no son lo mismo, cambie una de las cookies del nodo para que coincida con la otra:
erlang:set_cookie(node(), "newcookie").
Si todo funciona, necesita ver por qué la configuración de cookies no se está recogiendo desde el archivo de configuración o la línea de comando arg.
La cookie Erlang debe estar en el directorio de usuarios. No es el directorio de la aplicación.
Entonces el tuyo es algo así como:
C:/Documents and Settings/InterstarUser/.erlang.cookie
Puede ver la ubicación de HOME con el comando env
en la línea de comandos si recuerdo correctamente de mis días de Windows.
Un par de cosas vienen a la mente:
- ¿Has intentado configurar la cookie a través de erlang: set_cookie en ambos nodos?
- Si no se encuentra un archivo .erlang.cookie en el directorio $ HOME, se creará uno. ¿Podría ser que uno de los archivos .erlang.cookie no está en el lugar correcto en una máquina? Podrías buscar en tus discos duros el archivo y si encuentras más que el que creaste, erlang podría haberlo colocado allí y lo está usando.
net_adm: ping ()
Pruebe net_adm: ping () desde ambos nodos.
http://www.erlang.org/documentation/doc-5.4.13/lib/kernel-2.10.13/doc/html/net_adm.html
erlang:set_cookie(node(), ''newcookie'').
no
erlang:set_cookie(node(), "newcookie").