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

Ubuntu 20.04下执行dotnet restore拉取NuGet包返回301错误咨询

问题原因

你遇到的301报错和VPN高度相关,同时和你使用的.NET Core 3.1对应的旧版NuGet工具特性有关:

  • 浏览器访问URL正常是因为浏览器默认会自动处理301永久重定向跳转,而.NET Core 3.1内置的NuGet版本默认未开启重定向跟随配置
  • VPN的全局代理规则可能会修改NuGet请求的路由,将原本访问nuget.org的请求重定向到其他节点,NuGet无法自动处理该跳转就会抛出301错误

解决方案

按优先级依次尝试以下操作:

  1. 临时关闭VPN验证
    先断开VPN后执行dotnet restore,如果恢复正常即可确认是VPN代理规则导致的问题,若必须使用VPN可继续尝试后续方案。
  2. 开启NuGet重定向跟随配置
    编辑全局NuGet配置文件~/.nuget/NuGet/NuGet.Config,在<configuration>节点下添加如下配置:
    <config>
      <add key="followRedirects" value="true" />
    </config>
    
    保存后重新执行还原命令即可。
  3. 配置NuGet使用国内镜像源
    在上述NuGet.Config的<packageSources>节点中替换或新增国内镜像源,避免访问境外源的重定向和网络波动问题。
  4. 给dotnet配置独立代理
    执行还原命令前先在当前终端设置代理环境变量,适配你的VPN代理规则:
    export http_proxy=http://[你的代理地址]:[代理端口]
    export https_proxy=http://[你的代理地址]:[代理端口]
    dotnet restore
    
  5. 清除缓存重试
    执行dotnet restore --no-cache忽略本地缓存的源地址记录,重新拉取最新的源信息。

额外建议

.NET Core 3.1已经停止官方支持,条件允许的情况下建议升级到.NET 6或.NET 8等长期支持版本,新版本NuGet默认开启重定向跟随,可从根本上避免该类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:54:04