代理故障排查
编辑页面
了解如何使用一组推荐工具来排查代理问题。
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
macOS 代理配置(Sierra)
如果出现任何问题,你可以在系统网络偏好设置中,使用自动代理配置
your-corporate-proxy-uri:port-number/proxy.pac回退到“自动代理设置”。
概述
要在连接公司 Wi-Fi 网络时,在本地 iOS 模拟器中运行此项,需要一个本地代理管理器。你可以使用诸如 Charles 这样的本地代理应用。
打开 macOS 网络偏好设置
- 为你的 Mac 打开
系统偏好设置(Apple 菜单 > 系统偏好设置)。 - 进入 网络。
- 确保你的
位置设置为你的代理网络,而不是“自动”。 - 左侧选中 Wi-Fi 和/或以太网连接后,点击窗口右下角的
高级...。
配置代理地址
- 如果已设置,禁用/取消勾选“自动代理配置”。
- 勾选“网页代理 (HTTP)”,并将“网页代理服务器”设置为 127.0.0.1 : 8888
- 勾选“安全网页代理 (HTTPS)”,并将“安全网页代理服务器”设置为 127.0.0.1 : 8888
配置 Charles
-
打开 Charles
-
如果它询问你,不要允许它管理你的 macOS 网络配置,前面的步骤已经完成了这件事。(如果你更改了 Charles 端口,请将前面的步骤更新为正确的端口,而不是默认的 8888)
-
在 Charles 的菜单中进入
Proxy > External Proxy Settings,勾选Use external proxy servers -
勾选
Web Proxy (HTTP),并输入your-corporate-proxy-uri:port-number -
勾选
Proxy server requires a password -
Domain: YOUR DOMAIN, Username: YOUR USERNAME Password: YOUR PASSWORD
-
Secure Web Proxy (HTTPS) 也同样设置。_请确保填写相同的代理、用户名和密码地址_字段。
-
在
Bypass external proxies for the following hosts:的文本区域中输入:localhost *.local你可能还需要包含你的邮件服务器或其他公司网络地址。
-
勾选“Always bypass external proxies for localhost”
iOS 模拟器配置
如果你已经有一个正在使用但无法正常工作的 iOS 模拟器自定义配置,请从菜单中选择“Simulator > Reset Content and Settings”。
如果模拟器仍然打开,请退出它。
现在,在 Charles 的“Help”菜单中选择 > Install Charles Root Certificate,然后再为 iOS Simulators 执行一次 Install Charles Root Certificate
技术说明: 之所以需要整个过程,是因为 iOS 模拟器拿到的是一个错误的代理证书,而不是实际证书,并且不允许它用于 https://exp.host/,而 Expo 的运行需要这个地址。
另请注意: 将需要互联网访问的应用(例如 Spotify)配置为使用 http://localhost:8888 作为代理。一些应用(如 Chrome 和 Firefox)可以在设置中配置为使用“系统网络偏好设置”,这将根据你在 Apple 菜单/网络偏好设置中设置的“位置”使用 Charles : 8888,或者不使用代理。如果你设置为“自动”,则不使用代理;如果设置为“your proxy network”,则会使用代理,并且 Charles 需要正在运行。
命令行应用代理配置
npm、git、Brew、Curl 以及任何其他命令行应用也需要代理访问。
对于 npm
打开 ~/.npmrc 并设置:
http_proxy=http://localhost:8888 https_proxy=http://localhost:8888
对于 git
打开 ~/.gitconfig 并设置
[http] proxy = http://localhost:8888 [https] proxy = http://localhost:8888
对于命令行应用
根据你的 shell 和配置,打开 ~/.bashrc、~/.bash_profile、~/.zshrc,或者你设置 shell 变量的其他位置,并设置:
export HTTP_PROXY="http://localhost:8888" export http_proxy="http://localhost:8888" export ALL_PROXY="http://localhost:8888" export all_proxy="http://localhost:8888" export HTTPS_PROXY="http://localhost:8888" export https_proxy="http://localhost:8888"
如果你将网络位置切回“自动”以使用 npm 或 git,你需要在想要禁用的行前面添加
#将这些行注释掉。或者,如果你愿意,也可以使用命令行代理管理器。