You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QGIS 3.22/3.28无法连接Geoserver的WMS/WFS服务求助

解决QGIS无法连接GeoServer WMS/WFS且反复要求输入密码的问题

1. 调整GeoServer认证方式

QGIS对表单认证支持较差,容易触发反复弹窗要密码的问题,优先改用基本认证:

  • 找到GeoServer部署目录下的webapps/geoserver/WEB-INF/web.xml(路径根据实际部署调整),修改登录配置部分为:
    <login-config>
      <auth-method>BASIC</auth-method>
      <realm-name>GeoServer</realm-name>
    </login-config>
    
  • 重启GeoServer服务,比如用sudo systemctl restart geoserver(如果是systemd管理的服务)

2. 修正QGIS连接配置

  • 添加服务时,在QGIS连接对话框里强制勾选"基本认证",手动填写正确的用户名和密码,不要先依赖"保存密码"选项测试;
  • 直接使用服务的完整URL,比如WMS用http://你的GeoServer地址:8080/geoserver/你的工作区/wms,而非仅填服务器根地址;
  • 进入QGIS的设置->选项->网络,确认代理设置为"无代理"(除非你的环境必须用代理)。

3. 配置GeoServer跨域支持

QGIS对跨域请求的处理比Civil 3D更严格,需添加跨域过滤器:

  • 在web.xml中插入以下配置:
    <filter>
      <filter-name>CorsFilter</filter-name>
      <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
      <init-param>
        <param-name>cors.allowed.origins</param-name>
        <param-value>*</param-value>
      </init-param>
      <init-param>
        <param-name>cors.allowed.methods</param-name>
        <param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value>
      </init-param>
      <init-param>
        <param-name>cors.allowed.headers</param-name>
        <param-value>Authorization,Content-Type,Accept,Origin</param-value>
      </init-param>
    </filter>
    <filter-mapping>
      <filter-name>CorsFilter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
    
  • 重启GeoServer后再次测试连接。

4. 检查GeoServer权限设置

  • 进入GeoServer后台的数据安全页面,确认你的用户拥有对应工作区或图层的wms_read和wfs_read权限;
  • 先用GeoServer管理员账号测试连接,排除普通用户权限不足的问题。

5. 版本兼容性调整

GeoServer 2.21.4属于旧版本,和QGIS 3.22/3.28可能存在协议支持差异:

  • 尝试将GeoServer升级到2.24.x这类稳定新版本;
  • 或者降级QGIS到3.20版本测试,看是否能正常连接。

内容的提问来源于stack exchange,提问作者Levon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 21:48:19