Go-Ethereum
如何將 Geth 的 RPC 伺服器公開給外部連接?
我想建立一個可以連接到單個 Geth 節點的應用程序專用網路。我有哪些選項可以公開 RPC 伺服器?
我正在執行這個:(
geth --rpc --testnet
有時我使用--dev
)我怎樣才能實現以下目標:
- 允許特定的公鑰/私鑰訪問節點
- 允許任何人訪問節點
- 允許 IP 範圍訪問節點
可能的解決方案?
這是否只需要使用像 Nginx 這樣的伺服器執行反向代理?
您可以輕鬆安全地從應用程序伺服器創建到您的 ETH 節點的 SSH 隧道。這樣一來,ETH 節點就會被愚弄,認為連接來自本地主機,並且您可以確保只有私鑰的持有者才能訪問。
設置證書身份驗證很重要,否則您無法自動化該過程。
設置完成後,您可以通過執行以下命令來創建隧道:
ssh -f -N -L 9545:localhost:8545 remoteUser@remotehost.remotedomain.tld
在我的範例中,埠號是不同的,以便讀者能夠區分它們。絕對沒有其他理由使它們與眾不同。
發出此命令後,所有到
port 9545
on 的流量都localhost
將被轉發到remotehost.remotedomain.tld:8545
認為它來自localhost
和目標的所有流量localhost:8545
這樣,您可以將您的 ETH 節點保留在防火牆後面,而不是向世界開放,但仍然集中功能。
為了在生產中使用它,您必須解決斷開 SSH 會話的問題。