问题解决:
-
下载nacos最新版本:
-
排查最新版数据库是否有更新,有的话需要查看nacos/conf下的sql表初始化语句。(也可以在运行时检查,如果表有问题,启动不起来)
-
检查并设置配置文件:nacos/conf/application文件,设置数据库连接,打开认证,设置BASE64格式的密钥;
-
到nacos/bin运行sh startup.sh -m standalone,启动(停止用shutdown脚本),启动成功后会出现提示。
-
升级后发现安全漏洞依然存在,查找资料发现/nacos/v1/console/namespaces 路径是官方默认的开放路径,不能禁用掉,需要修改nacos源代码!
-
查找nacos的github源码地址,找到对应版本的release文件,下载zip源码,使用idea打开(记得设置对应的maven地址、jdk版本【1.8及以上】,maven版本【一般不是很老的版本就可以,详细可查看官方文档】);
(1). 查找/nacos/v1/console/namespaces路径的接口,发现请求头没有安全认证机制,需要手动添加修改:
(2)接口添加注解:
@Secured(resource = AuthConstants.CONSOLE_RESOURCE_NAME_PREFIX + “namespaces”, action = ActionTypes.READ)
(3)重新打包:mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U,如果maven运行报错记得在命令打双引号,比如“-Prelease-nacos”“-Dmaven.test.skip=true”
(4)打包后结果文件在target/nacos-server-{版本号}目录下:
,找到zip解压,并在target找到jar包,然后替换到服务器当前相应地址的jar包,然后覆盖重启nacos即可。
备住: -
升级文档地址:https://nacos.io/en/docs/v2.4/manual/admin/upgrading/#21-%E5%8F%91%E8%A1%8C%E7%89%88%E5%8D%87%E7%BA%A7
-
编译打包文档:https://nacos.io/en/blog/faq/nacos-user-question-history16262/?source=wuyi#_top
-
源码地址:https://github.com/alibaba/nacos/releases