# Maya 网络连接修复指南

## Maya 网络连接修复指南（适用于 \[WinError 10013 / 10054 / 10060]）

### 概述

本文档解释如何解决 Maya 工具在启动时由于网络限制导致的问题，特别是以下错误：

```
URLError: <urlopen error [WinError 10013]>
URLError: <urlopen error [WinError 10054]>
URLError: <urlopen error [WinError 10060]>
```

这些错误通常发生在网络环境存在防火墙、严格的安全软件，或代理/VPN 配置不当的情况下。

***

### 分步解决方案

#### 1. 在 Maya 中手动设置代理

如果你使用本地代理（例如 Clash、V2Ray 等），请在 Maya 的 Script Editor 中 **启动工具之前** 输入以下代码：

```python
import os
os.environ['http_proxy'] = 'http://127.0.0.1:7890'
os.environ['https_proxy'] = 'http://127.0.0.1:7890'

import xgtc
import xgToolsUI_user_sub
xgToolsUI_user_sub.XgtRun()
```

> 如果端口号不是 `7890`，请替换为你实际的本地代理端口。

#### 2. 可选：在 Maya 启动时自动加载代理

1. 打开（或创建）以下文件：
   * `C:\Users\\<你的用户名>\\Documents\\maya\\2025\\scripts\\userSetup.py`
2. 在文件中添加上面的代理设置代码。
3. 保存并重启 Maya。

***

### 软路由 VPN 用户

浏览器可能能访问网络，但 Maya 无法访问。这是因为 Maya 的 Python 不会自动继承系统代理设置。解决方法是按照上面的方法手动在 Maya 中设置代理。

***

### 网络许可服务器

Maya 的许可证可能来自 RLM、FlexNet、云订阅或独立许可。**许可证的类型不会影响插件访问外部服务器（例如 Gumroad）**。

***

### 理解 WinError 10013 / 10054 / 10060

| 错误码   | 含义           | 常见解决方法                                 |
| ----- | ------------ | -------------------------------------- |
| 10013 | 访问被拒绝 / 权限不足 | 设置代理，检查防火墙/杀毒软件，使用管理员权限运行 Maya         |
| 10054 | 连接被远端服务器重置   | 检查 VPN/代理，确保服务器可访问，检查网络稳定性             |
| 10060 | 连接超时         | 验证网络/VPN/代理配置是否正确，确认 IP/端口，检查目标服务器是否可用 |

#### 示例：检查插件连接情况

```python
with urllib.request.urlopen(
    "https://xgt-license-server.onrender.com/healthz", timeout=10) as r:
    print("OK:", r.status)
```

* 如果失败，请按照 **步骤 1** 在 Maya 中设置 HTTP/HTTPS 代理。

***

### 公司网络说明

* 公司可能会屏蔽未在白名单中的程序。
* Maya Python 不会自动继承系统代理。
* IT 部门可能需要放行 `maya.exe` 或开放所需端口。

***

### 错误分析总结

| 问题     | 原因                 |
| ------ | ------------------ |
| 10013  | 本地系统/防火墙阻止了套接字访问   |
| 10054  | 远端服务器强制关闭了连接       |
| 10060  | 连接超时 / 目标服务器不可达    |
| 插件无法连接 | Maya 未设置代理或 VPN 无效 |

***

### 提示

```python
import urllib.request
with urllib.request.urlopen("https://www.google.com", timeout=10) as response:
    print(response.status)
```

* 如果返回 200，说明代理正常工作。
* 如果失败，请检查代理软件和防火墙设置。
