通过 Websocket 或 HTTP 连接到 VPS 上的 BSC 节点 运行

Connect to BSC Node running on VPS via Websocket or HTTP

我已经按照此处的文档在 BSC 上设置了自己的节点 - https://docs.binance.org/smart-chain/developer/fullnode.html

我遇到的问题是我无法通过 Web3 连接到节点。

尝试使用

连接时
web3 = Web3(Web3.WebsocketProvider('ws://[server-ip]:8545'))
print('ws - ' + str(web3.isConnected()))

我的输出是false

当运行我使用的节点:

./geth --config ./config.toml --datadir ./mainnet --ws --ws.port=8545  --ws.origins='*'

我尝试了多种配置组合来使它正常工作,但没有成功。通常,我会尝试通过网络套接字进行连接,但如果需要的话,我很乐意使用 HTTP 提供商进行连接。

查看 netstat --listen --tcp 输出,当节点为 运行:

时我得到了这个
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:8545          0.0.0.0:*               LISTEN
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp6       0      0 [::]:30311              [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN

有人知道我缺少什么吗?

经过大量研究,我发现处理此问题的最佳方法是 运行 Nginx 代理。

以下是我为任何正在寻找类似问题的解决方案的人所遵循的说明

https://www.nginx.com/blog/websocket-nginx/