ChatGPT-Next-Web icon indicating copy to clipboard operation
ChatGPT-Next-Web copied to clipboard

关于PROXY_URL环境变量的问题

Open lukesyy opened this issue 1 year ago • 15 comments

微信截图_20230517154706 1111

我不知道 我哪里配置的有问题 我测试了socks5 是可用的 但还是连接不上openai

lukesyy avatar May 17 '23 07:05 lukesyy

尝试改成 http 端口

Yidadaa avatar May 17 '23 09:05 Yidadaa

http 需要加 --net=host \ 吗

lukesyy avatar May 17 '23 09:05 lukesyy

你可以试试,我自己不用 docker

Yidadaa avatar May 17 '23 09:05 Yidadaa

还是不行,我在研究研究其他方式

lukesyy avatar May 17 '23 09:05 lukesyy

如果有任何结论,烦请更新在此处。

Yidadaa avatar May 17 '23 09:05 Yidadaa

#1556 或许也是类似的问题

Yidadaa avatar May 17 '23 09:05 Yidadaa

我觉得是docker的问题 服务器本地的localhost 感觉这个docker访问不到。

lukesyy avatar May 17 '23 09:05 lukesyy

15155

解决了 docker访问不到 localhost 需要服务器的真实IP

lukesyy avatar May 17 '23 10:05 lukesyy

所以不能使用 localhost,应该用宿主机在的局域网 ip?

Yidadaa avatar May 17 '23 10:05 Yidadaa

是的

lukesyy avatar May 17 '23 10:05 lukesyy

docker容器访问宿主机的proxy,有3种方案:

  1. 宿主机代理是127.0.0.1, docker容器要加--network host参数,容器才能通过127.0.0.1访问到宿主机的代理。由于容器里的3000端口是绑在ipv6上的,所以必须使用IPV6地址才能访问到容器里的chatgpt next web,例如nginx反代使用地址 [::1]:3000 。
  2. 代理设为宿主机ip地址,docker容器通过ip地址访问宿主机代理。这种方式要留意2点:(1)宿主机本地防火墙(如有)需要开放端口 (2)代理可能会暴露在公网
  3. 代理设为容器网段的网关ip地址,例如容器ip是172.18.0.2,宿主机有1个对应的172.18.0.1网关,代理配置成这个172.18.0.1。这种方式类似第2种方式,宿主机也需要本地防火墙(如有)开放端口,但不用担心暴露在公网的问题。

yinm0591 avatar May 17 '23 12:05 yinm0591

补充一个我的经验,我自己使用mac docker desktop + docker-compose,已经在docker中设置了proxy (Settings -> Resources -> Proxies)

HTTP: http://127.0.0.1:7890
HTTPS: http://127.0.0.1:7890

这种情况下,不需要再设置.env中的proxy字段了,直接留空,也不需要network=host

siwei-s avatar May 17 '23 14:05 siwei-s

补充一个我的经验,我自己使用mac docker desktop + docker-compose,已经在docker中设置了proxy (Settings -> Resources -> Proxies)

HTTP: http://127.0.0.1:7890
HTTPS: http://127.0.0.1:7890

这种情况下,不需要再设置.env中的proxy字段了,直接留空,也不需要network=host

是的,我用了这种方法 我是在linux 服务器上试了试 应该是我配置的不对 没有啥效果 https://cloud.tencent.com/developer/article/1806455

lukesyy avatar May 17 '23 14:05 lukesyy

已经补充到项目 faq

Yidadaa avatar May 17 '23 16:05 Yidadaa

@Yidadaa 容器里的web server绑定的是ipv6地址,下面的指令查看的:

 docker exec [容器名称] netstat -n -a | grep 3000

docker的ipv6兼容性不佳,是不是绑定容器里的ipv4地址3000端口会更好些?

yinm0591 avatar May 17 '23 16:05 yinm0591

用windows10 部署的,这个也是因为代理导致的吧,有什么好的解决办法么 image

123aluo avatar May 22 '23 06:05 123aluo

用windows10 部署的,这个也是因为代理导致的吧,有什么好的解决办法么 image

@123aluo 我是win10的docker desktop 用wsl部署的。试了要用局域网IP。192.168.x.x的。具体ipconfig自己看吧。

yanxile avatar Jun 06 '23 12:06 yanxile

收集至 https://github.com/Yidadaa/ChatGPT-Next-Web/issues/2105

Yidadaa avatar Jun 23 '23 12:06 Yidadaa

Bot detected the issue body's language is not English, translate it automatically.


Collected at https://github.com/Yidadaa/ChatGPT-Next-Web/issues/2105

Issues-translate-bot avatar Jun 23 '23 12:06 Issues-translate-bot

{ "error": true, "message": "Failed to fetch" }

willfulpeople avatar Jan 08 '24 08:01 willfulpeople