作者:Pierre Rochard
来源:https://pierre-rochard.medium.com/bitcoin-and-lightning-nodes-port-forwarding-faq-f92ca5c50d5d
我经常听到人们表示对端口转发(port forwarding)的疑问,所以我想把我的回答集中写下来。
我需要转发端口吗?
如果你用的是普通的家用互联网路由器,又希望互联网上的其它计算机(不论笔记本、台式机、服务器还是手机)发起跟你的节点的连接,你就需要转发端口。
这就是关键:即使不转发端口,你也可以主动发起跟其它启用了端口转发的节点的连接。
只有别人要连接你的节点时,你才需要转发端口。
如果是你要连接别的节点,那你不需要转发端口。
我应该转发我的比特币节点的 8333 端口吗?
你不需要转发端口,也能同步比特币节点和使用比特币网络。
没有端口转发不会影响到你的节点的信任模式,你依然是完全验证区块和交易的。
如果你不想要,你完全不必开放任何端口。你的节点依然是全节点,只不过连接数会少一点。全节点一般会维持 8 个传出连接(outgoing connection,你向他人的节点发起的连接);如果你打开了端口,可以拥有许多传入连接(他人向你发起的连接)(默认上限为 125)。传入连接的源头可以是 SPV 钱包(手机),也可以是其它全节点。
所以,你转发端口的好处在于帮助整个网络提供更多的连接机会和带宽给其它全节点和非全节点。虽然目前这两样资源还没有很紧缺。
如果你理解并且并不介意消耗大量的上行带宽,那么可以考虑端口转发,这会给网络一点帮助!注意,这是双向的,你所消耗的上行带宽越多,你对网络的帮助也就越大!
这里有一份给比特币节点设置端口转发的指南:https://bitcoin.org/en/full-node#port-forwarding
请不要转发 8333 和 18333(分别对应主网的节点和测试网的节点)以外的端口,除非你完全知道自己在做什么。
我应该转发闪电节点的 9735 端口吗?
一句话总结:不用,除非你想做一个公开的路由节点,7 乘 24 小时在线。
不开启端口转发,你也可以在闪电网络上开启通道、发送和接收支付。
闪电节点的 9735 端口跟比特币节点的 8333 端口是完全独立的,你可以只开启一个而不开启另一个。
在闪电网络语境下,一个 “对等节点” 就是其他人的闪电节点。
跟一个对等节点建立网络连接,与开启支付通道不是一回事!
跟对等节点的连接仅仅意味着你可以在点对点网络中跟特定的一个节点直接通信。你可以不限量开启连接,这不需要你跟其他节点开启支付通道。
不启用端口转发,意味着其它闪电网络节点将无法连接到你,但你依然可以主动连接他们!
跟一个对等节点开启了支付通道,你就可以收发支付了,也可以路由其他人的支付。
在开启通道之前,你跟对等节点必须先建立网络连接。
如果你没有开启端口,那么你必须主动发起连接。在你连接到一个对等节点后,你可以要求他们开启跟你的支付通道,或者你也可以再次采取主动,跟他们开启支付通道。
如果你启用了端口转发,那么其他人就可以连接到你,并跟你开设通道,而不必你主动发起。这对于 “路由” 节点来说是最理想的情形,但对于 “用户” 节点则不是必需的。
希望能帮到你!
(完)
Pierre Rochard2022-05-24
https://www.btcstudy.org/2022/05/24/bitcoin-and-lightning-nodes-port-forwarding-faq/