Solr主机名访问失败求助:Windows Server虚拟机部署问题
确认Jetty监听的网络地址
打开Solr安装目录下的jetty.xml(或server/etc/jetty.xml),找到<Call name="addConnector">节点,检查<Set name="host">的值。如果是127.0.0.1或localhost,说明Jetty只绑定了本地回环地址,修改为0.0.0.0(监听所有可用网卡)或虚拟机的实际IP地址,重启Solr服务。检查Solr启动参数的绑定设置
查看Solr的启动脚本(solr.cmd或solr.in.cmd),确认是否有SOLR_HOST或jetty.host相关参数。如果存在,确保其值为0.0.0.0、虚拟机IP或正确的主机名;如果没有,添加set SOLR_HOST=0.0.0.0到solr.in.cmd中,重启Solr。验证Windows Server防火墙规则
打开Windows Defender防火墙,检查是否允许Solr使用的端口(默认8983)通过入站规则。如果没有对应规则,新建入站规则,允许TCP协议的8983端口(或自定义Solr端口),并应用到所有网络类型。确认虚拟机网络配置
检查虚拟机的网络模式:如果是NAT模式,需确认主机到虚拟机的端口转发规则是否配置正确(将主机的8983端口转发到虚拟机的8983端口);如果是桥接模式,确保虚拟机获取到了与主机同网段的有效IP,且主机能ping通虚拟机的IP和主机名。再次验证主机名解析
在主机上执行ping <虚拟机主机名>,确认返回的IP是虚拟机的实际IP而非127.0.0.1;同时在虚拟机上执行ping <自身主机名>,确保解析到的是虚拟机的外部IP(而非回环地址)。检查Jetty服务状态与端口占用
在虚拟机上执行netstat -ano | findstr :8983,确认端口是否被Jetty进程占用,且监听地址是0.0.0.0或虚拟机IP。如果端口被其他进程占用,停止该进程或修改Solr的监听端口。
内容的提问来源于stack exchange,提问作者James

