再战Qitmeer家庭网络

再战Qitmeer家庭网络

上一讲我们通过白名单的方案将内网的机器加入了 Qitmeer 网络,这个方案是项目建议的方案,但是需要有公网服务器的辅助作为前提。如果你没有公网服务器,也可以考虑内网端口映射的方案。

要进行内网映射,首先得保证家庭网络开通了拨号上网的服务,这样可以让家庭网络拥有一个动态的公网IP。如果你的家庭网络没有默认开通拨号上网,可以致电电信运行商开通,以笔者的经验来说,运行商一般都会同意。

检查路由器

以笔者的华硕路由器为例(其他品牌路由器大同小异),笔者向运营商申请公网ip后,在路由器的后台会发现ip是公网地址,则代表开通成功。

图1: 成功开通公网IP

如果发现路由器的公网地址(WAN IP)是局域网地址,则很有可能是运营商还未开通,或者你的拨号设置有问题,请自行排查。记住这一步非常关键,否则无法继续本教程。

图2: 开通公网IP失败

查看ip地址以及端口

首先查看内网服务器的ip地址, 如 本例中的192.168.50.235

tony@ubuntu ~ $ ifconfig|grep inet
        inet 192.168.50.235  netmask 255.255.255.0  broadcast 192.168.50.255

然后查看服务器的端口配置(port),如果port没有设置则看启动的网络,如果是测试网络(testnet=1)则默认是18150,如果是主网(mainnet=1)则默认是8150。这里我们启动的是测试网络,且没有设置端口,所以端口是默认的18150.

$ vi ~/0.10-dev/qitmeer.conf


testnet=1
rpclisten=0.0.0.0:18151
#port=18150

端口映射

接着进入路由器的后台,设置端口映射,以本文的华硕路由器为例:

  1. 源地址: 留空,代表接受任何Qitmeer节点的连接
  2. 源端口:路由器开放的外部端口,建议和内网Qitmeer端口一致,这里为18150
  3. 目标地址:内网Qitmeer的ip地址,填入上一步的192.168.50.235
  4. 目标端口:内网Qitmeer的端口,填入上一步的18150

图3:端口映射

启动Qitmeer

端口映射好了,我们启动Qitmeer

 $ ./build/bin/qitmeer -A ~/0.10-dev

如果发现有区块同步的日志,则代表映射成功

2021-12-14|11:28:11.988 [INFO ] Syncing to state (211471,211139,211142,219586,5) from peer 16Uiu2HAmHyCuFE86AZt6zrY4bXNUufW8HYLsk4j5oFvsiAfZfEJn cur graph state:(211470,211138,211141,214715,5) module=SYNC
2021-12-14|11:28:22.264 [INFO ] Processed 3 blocks in the last 13s (3 transactions, order 211472, 2021-12-14 11:27:44 +0000 UTC) module=blkmanager
2021-12-14|11:28:22.264 [INFO ] Your synchronization has been completed. module=SYNC
2021-12-14|11:28:22.265 [INFO ] You're up to date now.              module=SYNC

也可以用telnet测试Qitmeer端口,出现 /multistream/1.0.0 也代表映射成功. 服务器地址是DDNS动态域名(如果开通的话)或IP均可。

$ telnet EXAMPLE.QITMEER.DDNS 18150
Trying XXX.89.209.68...
Connected to outlier.asuscomm.com.
Escape character is '^]'.
/multistream/1.0.0

总结

至此,实战Qitmeer家庭网络系列已经完成。通过白名单和端口映射两种方案,相信大部分有内网运行Qitmeer需求的朋友都可以找到适合自己的解决方案。细心的朋友发现,无论哪种方案,公网IP都是必要条件。从中可以看到Qitmeer主网进行本次网络升级的出发点完全是为了提升网络的整体连通性,同时充分考虑到内网部署的合理需求,提供了灵活的解决方案。

1 Like