Network

執行乙太坊客戶端需要哪些 TCP 和 UDP 埠?

  • December 20, 2020

geth CLI 選項建議預設情況下客戶端偵聽 TCP 埠 30303。此頁面還建議使用 UDP 埠 30301 進行節點發現。

這是所有必需的還是有任何額外的埠在使用?

乙太坊客戶端使用偵聽器 (TCP)埠和發現 (UDP ) 埠,預設情況下都在30303上。

如果您需要執行JSON-RPC,還需要TCP8545請注意,JSON-RPC 埠不應向外界開放,因為您可以從那裡進行管理操作。

所有客戶端的埠都可以從預設值進行自定義。

如果您希望 geth/eth 找到 UPnP,您還需要在路由器上啟用它。這只是為了它可以偵聽埠,如果您已經手動打開/路由它們,則沒有必要。

關於您連結的 wiki 頁面,它實際上只是一個範例:

如果 TCP 和 UDP(發現)埠不同,則將 UDP 埠指定為查詢參數discport

在以下範例中,節點 URL 描述了一個 IP 地址為 10.3.58.6、TCP 偵聽埠為 30303 和 UDP 發現埠為 30301 的節點。

我認為這種誤解也在傳播,因為bootnode util 的行為。事實上,它使用 30301 作為預設的 UDP 發現埠。

注意:如果 IPv6 可用,geth 將優先使用 IPv6,如果您假設它正在偵聽 IPv4 地址,則可能會導致問題。

引用自:https://ethereum.stackexchange.com/questions/809