通过websocket连接aws ec2节点

问题描述 投票:0回答:2

我使用 geth 在 aws ec2 实例上创建了一个链节点。 我是否需要启用某些功能或者我应该使用什么 IP 来连接它? 我正在使用 web3.js 使用 new Web3.providers.WebsocketProvider('wss_address', abiOptions)

我使用 --ws 为其启用了 ws。我在哪里得到“启用 WebSocket 的 url=ws://127.0.0.0.1:8546”。

javascript amazon-ec2 websocket web3js go-ethereum
2个回答
0
投票

来自 Geth docs 页面 的命令行选项:

--ws                                (default: false)                   ($GETH_WS)
      Enable the WS-RPC server

--ws.addr value                     (default: "localhost")             ($GETH_WS_ADDR)
      WS-RPC server listening interface

--ws.api value                                                         ($GETH_WS_API)
      API's offered over the WS-RPC interface

--ws.origins value                                                     ($GETH_WS_ORIGINS)
      Origins from which to accept websockets requests

--ws.port value                     (default: 8546)                    ($GETH_WS_PORT)
      WS-RPC server listening port

--ws.rpcprefix value                                                   ($GETH_WS_RPCPREFIX)
      HTTP path prefix on which JSON-RPC is served. Use '/' to serve on all paths.

如果仅指定

--ws
选项,则使用默认值
--ws.addr
,并且节点仅侦听来自本地计算机的传入请求。

您可以通过 IP 地址或主机名指定节点侦听的网络接口。例如,如果您的服务器IP是

123.123.123.123
,您可以指定以下IP。这使节点能够接受 WS 连接到此 IP

geth --ws --ws.addr "123.123.123.123"

或者您想监听来自服务器所有网络接口(例如本地主机、所有 LAN 电缆、VPN 隧道、wifi 等)的传入请求,您可以将

--ws.addr
的值指定为
0.0.0.0
。这使得节点能够接受所有传入的 WS 连接。

geth --ws --ws.addr "0.0.0.0"

0
投票

使用此命令:

nohup ./geth --config ./config.toml --datadir ./node  --cache 8500 --rpc.allow-unprotected-txs --txlookuplimit 0  --ws --ws.addr "0.0.0.0" --ws.origins "*" --ws.api "web3, eth" &

连接这条线:

new Web3.providers.WebsocketProvider('ws://yourPublicIpAddress:8546', abiOptions)

一切正常,感谢支持)))

附注就我而言,与 PORT 规范的连接有效。并且只能通过ws,而不是wss。我没有注意到通过带有或不带有 DNS 的 IP 连接时有任何区别

© www.soinside.com 2019 - 2024. All rights reserved.