节点命名问题
Node naming problems
有两台机器:
M1 有两个 ip 地址 192.168.5.47、192.168.1.250。
M2 的 IP 为 192.168.5.250.
我在 M1 上启动了一个 erlang 节点:
nik@nik-PC:~/erlsrc/test_mk$ erl -name 'test@127.0.0.1' -setcookie cook
Erlang/OTP 22 [erts-10.6.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Eshell V10.6.2 (abort with ^G)
(test@127.0.0.1)1>
然后,我在 M2 上创建另一个节点并尝试 ping M1:
nik2@nik2-PC:~$ erl -name 'test2@127.0.0.1' -setcookie cook
Erlang/OTP 22 [erts-10.6.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Eshell V10.6.2 (abort with ^G)
(test2@127.0.0.1)1>
(test2@127.0.0.1)1> net_adm:ping('test@192.168.5.47').
pang
(test2@127.0.0.1)2>
如果其中一台机器有多个 IP 地址并以 'name@localhost' 或 'name@127.0.0.1' 启动,如何在远程机器上的节点之间进行通信?
还是用域名比较好?
如果节点 运行 在一个 LAN 网络中但在一台不同的计算机上,您可以尝试在每台计算机上检测您的 IP,例如 运行:
$ hostname -I
我们假设 机器 1 有 IP 192.168.5.47
,机器 2 有 IP 192.168.5.250
。
现在你需要 machine 1 上的 运行 节点,标志 name
包括 IP - machine #1:
$ erl -name 'test@192.168.5.47' -setcookie cook
现在在 machine 2 中做同样的事情,但是使用 machine 2 的 IP - machine #2:
$ erl -name 'test@192.168.5.250' -setcookie cook
现在您可以尝试将 ping
从 test@192.168.5.47
发送到 test@192.168.5.250
- machine #1:
(test@192.168.5.47)1> net_adm:ping('test@192.168.5.250').
pong
有两台机器: M1 有两个 ip 地址 192.168.5.47、192.168.1.250。 M2 的 IP 为 192.168.5.250.
我在 M1 上启动了一个 erlang 节点:
nik@nik-PC:~/erlsrc/test_mk$ erl -name 'test@127.0.0.1' -setcookie cook
Erlang/OTP 22 [erts-10.6.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Eshell V10.6.2 (abort with ^G)
(test@127.0.0.1)1>
然后,我在 M2 上创建另一个节点并尝试 ping M1:
nik2@nik2-PC:~$ erl -name 'test2@127.0.0.1' -setcookie cook
Erlang/OTP 22 [erts-10.6.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Eshell V10.6.2 (abort with ^G)
(test2@127.0.0.1)1>
(test2@127.0.0.1)1> net_adm:ping('test@192.168.5.47').
pang
(test2@127.0.0.1)2>
如果其中一台机器有多个 IP 地址并以 'name@localhost' 或 'name@127.0.0.1' 启动,如何在远程机器上的节点之间进行通信? 还是用域名比较好?
如果节点 运行 在一个 LAN 网络中但在一台不同的计算机上,您可以尝试在每台计算机上检测您的 IP,例如 运行:
$ hostname -I
我们假设 机器 1 有 IP 192.168.5.47
,机器 2 有 IP 192.168.5.250
。
现在你需要 machine 1 上的 运行 节点,标志 name
包括 IP - machine #1:
$ erl -name 'test@192.168.5.47' -setcookie cook
现在在 machine 2 中做同样的事情,但是使用 machine 2 的 IP - machine #2:
$ erl -name 'test@192.168.5.250' -setcookie cook
现在您可以尝试将 ping
从 test@192.168.5.47
发送到 test@192.168.5.250
- machine #1:
(test@192.168.5.47)1> net_adm:ping('test@192.168.5.250').
pong