![世界上的对等网络是如何处理 UDP 打洞的?](https://linux22.com/image/1543714/%E4%B8%96%E7%95%8C%E4%B8%8A%E7%9A%84%E5%AF%B9%E7%AD%89%E7%BD%91%E7%BB%9C%E6%98%AF%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%20UDP%20%E6%89%93%E6%B4%9E%E7%9A%84%EF%BC%9F.png)
随着比特币和以太坊频频出现在新闻中,我开始更多地研究点对点网络。我的问题是,大多数运行完整比特币或以太坊节点的人是否必须向公共互联网开放端口 8333?或者是否可以使用类似 UDP 打洞之类的技术让它们工作,而无需这个额外的步骤。
即,在工作电脑上安装程序的普通比特币爱好者是否能获得其他人可以访问的真实可访问 TCP IP 和端口?或者,它几乎总是需要配置路由器,使端口 8333 通向该特定计算机。对于家用电脑来说也是如此,因为如今它们也有 NAT 系统。
答案1
加密货币产品使用以下 TCP 端口(不是 UDP):
- 比特币:8333
- 比特币测试网:18333
- 莱特币:9333
- 破折号:9999
- 狗狗币:22556
- 以太坊:30303
此端口仅用于为互联网客户端进行交易和区块验证的完整节点,但对于非验证轻量级客户端来说不是必需的。
全节点定义作为:
全节点是一个完全验证交易和区块的程序。几乎所有全节点还通过接受来自其他全节点的交易和区块、验证这些交易和区块,然后将其转发给其他全节点来帮助网络。
大多数全节点还为轻量级客户端提供服务,允许它们将交易传输到网络,并在交易影响其钱包时通知它们。如果没有足够的节点执行此功能,客户端将无法通过对等网络连接 - 他们将不得不使用集中式服务。
当 Bitcoin Core 启动时,它会与其他完整节点建立 8 个出站连接,以便下载最新的区块和交易。如果你只想将完整节点用作钱包,则不需要超过这 8 个连接——但 如果您想支持轻量级客户端和网络上的其他完整节点,则必须允许入站连接。
有些产品使用 通用即插即用 (uPnP) 在路由器中自动打开此端口。大多数(但不是全部)路由器都支持此功能,否则需要手动配置路由器以打开端口并 端口转发 将其发送到运行该节点的计算机。
对于大多数产品,端口通常也可以通过本地配置配置为另一个数字。这需要使用 转发端口 将已知的外部端口传输到计算机本地配置的端口。
参考 :