我建立了一个 EC2 t2.micro,其唯一目的是在端口 8545 上托管以太坊测试网络。长话短说,我通过 SSH 连接到 Linux 机器,安装了非易失性存储器、最新版本的 Node 以及完成任务所需的软件包。在运行用于快速创建以太坊测试网络的命令行工具 ganache-cli 后,我从软件包中获得了以下反馈
Listening on 127.0.0.1:8545
我从 EC2 实例获取了我的公共 IP,并尝试在该端口进行连接。在本地建立测试网络时,此方法有效,并返回 HTTP 400 响应,但尝试连接到 EC2 时,请求失败且无响应。EC2 实例上的安全组允许任何端口上的所有 http 流量,其所在子网上的 NACL 也允许所有传入的 http 流量。
为了进行健全性检查,我在实例上安装了 Apache,并再次在端口 80 上访问公共 IP。我收到了 Apache 欢迎消息,因此 EC2 实例没有任何终端错误。我是否需要在终端中执行另一个我完全没有注意到的步骤来打开端口?
答案1
我不期望您能够从外部访问该端口,因为 - 正如它明确告诉您的那样 - 它只在本地主机上监听!
Listening on 127.0.0.1:8545
如 README 和文档中所示,如果您想接受外部连接,则需要使用选项-h
指定主机名。例如:
ganache-cli -h 0.0.0.0
答案2
您的安全组很可能只允许使用端口 80。请尝试在安全组中明确允许 8545 端口。安全组中的“允许 HTTP”仅允许端口“80”。要进行交叉检查,请尝试在某个不同的端口上运行 apache,然后尝试访问它。