Недопустимое имя хоста Erlang при создании узла с длинным именем

#c #erlang #interop #distributed-system #erlang-shell

#c #erlang #взаимодействие #распределенная система #erlang-shell

Вопрос:

Я пытаюсь следовать официальному руководству по Erlang C Node (http://erlang.org/doc/tutorial/cnode.html ). У меня работают сервер коротких имен и клиент, но не сервер длинных имен. С одной стороны, если я использую хост моего компьютера («stockholm») в complex4:call_cnode()/1 in complex4.erl , я получаю следующую ошибку при вызове complex4:foo(3). в erl командной строке:

 =ERROR REPORT==== 20-Mar-2019::12:15:21.400091 ===
** System running to use fully qualified hostnames **
** Hostname stockholm is illegal **
  

С другой стороны, если я использую любое количество альтернативных имен хостов вместо «stockholm» в complex4.erl , таких как мой общедоступный IP, мой частный IP и бесплатный поддомен, который, как я утверждал в Интернете, соответствует моему общедоступному IP, когда я вызываю complex4:foo(3). в CLI, CLI зависает, и cserver2 запущенный в фоновом режиме сервер не знает, что что-то произошло, или выдает erl_accept ошибку.

Я перепробовал ряд взломов, включая попытку написать пользовательский, .hosts.erlang содержащий мой поддомен, и использование -inetrc флага для добавления ассоциации между моим общедоступным IP и моим поддоменом. Я везде использую один и тот же файл cookie.

Кто-нибудь успешно запустил сервер длинных имен в этом руководстве, и если да, то как вы настроили свою среду, чтобы избежать этих проблем?

Комментарии:

1. В именах узлов Erlang «длинное имя» — это имя хоста, содержащее хотя бы одну точку, поэтому оно отклоняется stockholm . Вы продвигаетесь дальше со всем, что содержит точку, поэтому я бы начал искать проблему на этом этапе.