方法1.修改timeout值:
    原因:在检查node程序都是正常并且与控制机端口通讯也是正常;开启RPC日志发现返回超时导致。
修改控制机服务器/var/i2data/www/default/application/config/rpc_config.php文件里的timeout参数,10改成30解决。(7.1.74版本后,如果默认值已经是30可以尝试最高调整成180)。

*注意,控制台的webconsole和ctrlcenter版本rpc_config.php路径不一样
webconsole:/usr/cntlcenter/data/wwwroot/default/application/config/rpc_config.php
rpc_config.php:/var/i2data/www/default/application/config/rpc_config.php




方法2,i2node 软件  mtu 值修改方法:
windows: 在安装路径下/etc/新建system.conf文件,编辑mtu=1400;重启i2Node服务:

Linux在路径下/etc/sdata/下新建system.comf文件,编辑mtu=1400;重启i2Node服务:

方法3.修改控制机和节点网卡mtu值
linux修改方式如下:


默认1500时可能rpc 返回 上面截图一样的报错,底层控制台RPC返回错误“ RPC Result :-1 ‘’, 节点无法添加,可以改网卡mtu 1450 或者1400。节点无法正常添加时,出现此问题的概率在1-5%左右。原因: 大包rpcserver底层收不到,小包有应答,改小网卡mtu值让传输包变小是一个方法。

方法4.修改rpc端口号
     节点注册到控制台上,需要控制机ip到节点管理地址ip的26821端口是通的,即控制机所在系统,telnet 节点ip 26821确保通的;

     如果不通,可以采取修改rpc端口的方式进行节点认证:(i2port.conf 如果不存在或者相关的配置项不存在,则采用的是默认端口:rpc=26821)
     RPC 服务端口(rpc),是控制机和 i2Node 进行通讯的端口。
Linux: /etc/sdata/路径下新建i2port.conf文件,并编辑:rpc=26822(可以自定义端口号)   ,修改完成后,重启i2node服务,再到控制台注册,注意此时控制台管理端口也要进行相应修改;


Windows:在节点安装路径下,/etc/下新建i2port.conf文件,并编辑:rpc=26822(可以自定义端口号)   ,修改完成后,重启i2node服务,再到控制台注册,注意此时控制台管理端口也要进行相应修改;


方法5.i2Node软件改成应用模式。
     更改注册表文件,将节点软件的模式从服务模式改成以应用方式运行,具体修改方法如下:
      Win+R调出运行窗口,输入regedit或者regedt32将注册表调出来,然后选择如下目录:在HKEY_LOCAL_MACHINE\SOFTWARE\Info2Software\SDATA里面的runasapp,右键修改,将值修改为1,然后重启i2Node节点软件,即可以应用方式运行。



方法6,pam版本问题所致的rpc进程退出
节点无法添加,报错【远程调用失败】,非系统认证方式的实现

(一)底层需要做的修改
1、关闭i2node服务
       service i2node stop  或者 systemctl stop i2node

2、在指定目录下,新建文件auth.conf
(1)Windows
①打开i2node的安装目录,到etc目录下——C:\Program Files (x86)\info2soft-i2node\etc
②在该路径下,新建文本txt文件,写入如下内容:
    auth_user=xxx
    auth_passwd=yyyyy

③将该txt去除后缀,并文件重命名为auth.conf

(2)Linux

①进入指定路径
           cd /etc/sdata
vim auth.conf文件,内容如下:
          auth_user=xxx
       auth_passwd=yyyyyy


3、重启i2node服务
       service i2node start 或者 或者 systemctl stop i2node
附加说明:
            auth.conf文件中的xxx替换成你所想设的用户名,yyyyyy替换成要设置的密码。


(二)web控制台新的认证流程
1、检查auth.conf文件是否已经写入成功,并记住修改的用户名及密码;

2、在web控制台添加节点,确保页面凭据认证所填用户名和密码与auth.conf文件中设置的一致。
   注意:
        如果所设的用户名与密码与操作系统本身认证不同,添加节点时,认证用户名及密码填写错误,或者误填成OS的认证用户名及密码,这两种情况都会调用OS API认证,能通过认证,但问题得不到解决,rpc依然有可能会退出。
        因此,请确保web页面所填用户名及密码与auth.conf所设一致,若客户允许的情况下,建议设置成与OS身份验证相同的用户名和密码,避免上述误填操作产生的问题。

3、完善节点信息,点击提交。

FAQ来源:http://support.info2soft.com/service/public.pl?Action=PublicFAQZoom;ItemID=27;Nav=


补充步骤:8.1客户端配置auth 用户名密码
Windows 系统
打开cmd界面输入
cd(软件安装目录)bin\
例: cd C:\Program Files (x86info2soft\node\bin
执行命令: i2cfg auth create admin(用户名)admin(密码)
Linux 系统
执行命令: i2cfg auth create admin(用户名)admin(密码)

方法7.将节点重装。
     排查过程:端口全部通,regnode.conf也能下发,防火墙全部关闭,连接也没问题,尝试代理方式也不行,检查服务也是正常的,原因不明。
     处理方式:建议卸载节点重装看看。

方法8.将节点重启。
     可能是机器太卡了,开一个进程要几分钟才运行起来,可能是rpc这段时间就没有处理完就返回了导致的,建议重启一下服务器。

方法9.采用控制机代理注册节点
     业务系统上云时,多台业务系统都位于内网,并通过一个公网IP与外网联系。当控制机部署在云上时,无法使用本地业务的内网地址添加节点,也无法使用业务主机共用的一个外网地址去添加所有工作机。
     这种场景,通常的做法是开多个外网地址,每个外网地址映射一个内网业务主机,或一个外网地址开放多个端口为内网主机做端口映射,但这样会增加IP开销和端口消耗,不方便操作。因此,推荐使用英方的解决方案,客户端认证码方式添加。
     解决方法:

7.1.x 配置i2cc proxy
解决方法与步骤

1、修改控制机配置
(1)Windows控制机
      控制机部署后,修改安装目录下的C:\Program Files (x86)\info2soft-ctrlcenter\etc\i2cc.conf文件,如下图:

(2)Linux控制机
      若控制机部署在Linux系统,通过ps -ef | grep i2ctrl查看文件位置

编辑i2cc.conf 修改max_client_num值:
      (备注:路径 /etc/sdata/i2cc.conf   注意:7.1.74  版本以后i2cc.conf文件在/usr/cntlcenter/etc/
修改log_level=3后可打印日志,注意检验正常后将log_level=2防止日志过大撑爆空间)
max_client_num=10
alive_interval=10

2、重启控制机服务
      修改完控制机的配置后,重启i2up服务:
(1)windows下,服务列表找到i2ctrlcenter相关服务点击重新启动。
(2)Linux下,执行service i2up restart。

3、在节点机器执行i2cfg并配置机器识别码
      如果是Windows的节点,在安装目录的bin目录下找到i2cfg.exe程序并执行 i2cfg.exe -c。若是Linux,则执行i2cfg -c即可。

     执行后,可见有节点认证码生成,根据提示进行交互配置。主要有两个配置项:
(1)是否重新生成ID?
      输入n,不重新生成。
(2)是否修改当前控制机IP?
      输入y,进行修改。
(3)控制机IP配置
     输入真实的控制机地址。



Windows图形界面下可以用图形界面操作:



4、登录控制机并添加节点
      如下所示,勾选用认证码方式添加节点,并提交完成节点的添加。认证码,也即i2cfg执行过程中自动生成的串码。



方法10. 以上方法使用后还未解决的情况下该怎么继续处理?

这个时候需要打开 i2UP 7.x控制机debug开关开启,通过检查日志报错,把日志报错信息发给售后去解决。
具体步骤参考FAQ:( i2UP 7.x控制机debug开关开启)
http://support.info2soft.com/service/public.pl?Action=PublicFAQZoom;ItemID=606;Nav=

注意:如果控制机rpc日志中有errorcode=-1打印,通常是环境原因导致,请自行排查生产环境的网络安全设施,主要看网络环节是否配置拦截,比如是否存在IPS入侵防御系统或物理防火墙拦截。
          如果出现 9996 (rpc error code: 9996,  message: No data received from server.) 错误一般是排查网络设置,检查节点发送地址和返回IP地址是否一致,是否有做NAT映射后没能返回一致的IP地址。9996问题常见解决方法按方法9 配置 i2ccproxy