问题分析
在生成环境中,linux一般要保证安全,因此防火墙打开状态,因此会出现以下问题。
以太坊客户端创建网络组件后无法在监控界面显示。
通过docker logs访问日志发现以下错误:
WARN [03-28|03:25:41.095] Stats server unreachable err=“websocket.Dial ws://192.168.138.133:10/api: dial tcp 192.168.138.133:10: connect: no route to host”
由于端口无法被访问,因此提供穿透端口的方法。
解决办法
方法一:
查看区域信息
firewall-cmd --get-active-zones
开放指定的端口,此处开发你需要连接的ethstats端口即可(临时开放)
firewall-cmd --zone=public --add-port=30/tcp
开放指定的端口,此处开发你需要连接的ethstats端口即可(永久开放)
firewall-cmd --zone=public --add-port=30/tcp –permanent
保存服务
firewall-cmd --reload
方法二
打开防火墙配置文件
vi /etc/firewalld/zones/public.xml
写入以下内容
<rule family="ipv4">
<soure address="172.17.0.1/16">
<accept>
<rule>
重启防火墙
service firewalld restart
方法三
配置docker0服务到受信任连接
nmcli connection modify docker0 connection.zone trusted
停止NetworkManager(检测网络、自动连接网络的程序)服务
systemctl stop NetworkManager.service
修改docker网络接口为内部区域(永久)
firewall-cmd --permanent --zone=trusted --change-interface=docker0
启动NetworkManager(检测网络、自动连接网络的程序)服务
systemctl start NetworkManager.service
配置docker0服务到受信任连接
nmcli connection modify docker0 connection.zone trusted
重启docker服务
systemctl restart docker.service
注意开放端口的时候,一定要把网络组件的端口都放开,不然会出现节点无法共享数据的情况。