Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

能否支持代理 #17

Closed
10362227 opened this issue Sep 21, 2021 · 33 comments
Closed

能否支持代理 #17

10362227 opened this issue Sep 21, 2021 · 33 comments
Assignees

Comments

@10362227
Copy link

export https_proxy=http://127.0.0.1:1010
export http_proxy=http://127.0.0.1:1010

这样不能100%代理成功,传输过程走不了代理

@orzogc orzogc self-assigned this Sep 21, 2021
@orzogc orzogc closed this as completed in b4f41b6 Oct 14, 2021
@kdurov
Copy link

kdurov commented Feb 24, 2022

设置环境变量或者添加 --oss-proxy http://127.0.0.1:8080 均无法让传输过程走代理。
计算文件hash值请求可以成功走代理。

上传 ../download/edited.mp4 的第8个分片时出现错误:Put "http://fhnfile.oss-cn-shenzhen.aliyuncs.com/*****": write tcp 127.0.0.1:47370->127.0.0.1:8080: use of closed network connection

上传 ../download/edited.mp4 的第8个分片时出现错误:Put "http://fhnfile.oss-cn-shenzhen.aliyuncs.com/*****": write tcp 127.0.0.1:47406->127.0.0.1:8080: write: connection reset by peer

@orzogc
Copy link
Owner

orzogc commented Feb 25, 2022

@kdurov 我这里测试没有问题,你用的是最新版本吗?代理的连接稳定吗?HTTP代理是否需要用户名和密码?

@kdurov
Copy link

kdurov commented Feb 25, 2022

@orzogc git最新版。不是中国网络,稳定性没问题的。http代理无需密码。socks5出错后以为支认http代理,改成http代理后同样错误……

@orzogc
Copy link
Owner

orzogc commented Feb 25, 2022

@kdurov OSS上传是不支持socks代理的,只支持http代理,请问是上传了一部分文件才出错还是整个文件都上传不了?

@kdurov
Copy link

kdurov commented Feb 25, 2022

@orzogc 上传一部分后太慢。找了个传中国速度快的机子搭了代理传,结果就失败了。
之后找别的文件从头传也一样出错。

@orzogc
Copy link
Owner

orzogc commented Feb 25, 2022

@kdurov 我是说上传出错是上传了一部分后出错还是上传一开始就出错?

@kdurov
Copy link

kdurov commented Feb 25, 2022

一开始就出错的 @orzogc

@kdurov
Copy link

kdurov commented Mar 3, 2022

@orzogc 另外希望麻烦支持选择上传服务器线路么?
上传服务器都是 fhnfile.oss-cn-shenzhen.aliyuncs.com
这个在国外全部都会被解析到阿里云的 120.78.115.77 或者 39.108.31.34,
然而欧美到这两个IP都走电信线路。不说高峰期了,平时都炸的厉害。
路由上强制修改解析到移动或者联通节点的话,中国的非高峰期还有速度。
在不能修改解析结果的环境下就蛋痛了。
请问有可能像curl一样添加 --resolve 这样参数么?

@orzogc
Copy link
Owner

orzogc commented Mar 3, 2022

@kdurov 你另外开个issue

@kdurov
Copy link

kdurov commented Mar 3, 2022

@orzogc
#26
已开新issue。

顺便请问这个代理问题你那有办法复现么?

@orzogc
Copy link
Owner

orzogc commented Mar 3, 2022

@orzogc #26 已开新issue。

顺便请问这个代理问题你那有办法复现么?

我复现不了

@kdurov
Copy link

kdurov commented Jun 6, 2022

可以同时使用 -oss-proxy -forbid-oss-proxy 参数只让 API 请求走代理吗?实际上传不走代理。
虽然可以 export https_proxy 不过这个也会影响到其他进程。

国外连接 uplb.115.com webapi.115.com 实在太惨了:
不是anycast,没有三线接入,丢包7成以上家常便饭。
八成时候会因为这个上传失败。经常还会在浪费大量时间计算sha1后失败,浪费时间损耗硬盘。

@orzogc
Copy link
Owner

orzogc commented Jun 7, 2022

设置http_proxyhttps_proxy这两个环境变量,然后用-forbid-oss-proxy参数

一个终端的环境变量不会影响其他终端和非该终端运行的进程,单独用一个终端运行fake115uploader就好了

@kdurov
Copy link

kdurov commented Jun 7, 2022

@orzogc 现在就是这么用的。不过用配置环境变量后还要加一个参数。
既然有了跳过oss上传走代理参数能弄下只有api走/不走代理的参数吗?

@orzogc
Copy link
Owner

orzogc commented Jun 13, 2022

@orzogc 现在就是这么用的。不过用配置环境变量后还要加一个参数。 既然有了跳过oss上传走代理参数能弄下只有api走/不走代理的参数吗?

你试试最新代码

@kdurov
Copy link

kdurov commented Oct 3, 2022

最新版(0.5? go install 安装的master branch,没有查看参数版本只能估计是0.5)
-http-proxy 和 -oss-proxy 疑似无效。

在一台被墙的主机上尝试 fake115uploader -http-proxy http://a.b.c.d:e -v
返回
http请求出现错误:Get "https://proapi.115.com/app/uploadinfo": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

代理服务端也没看到请求日志。但是如果配置环境变量是可以走的。
另外 -forbid-oss-proxy 参数永久被移除了吗?

最新版如果需要:

  1. 只有 oss 走代理:针对连接阿里云慢的情况
  2. oss 和连接 proapi.115.com 都走代理:针对完全被墙的主机

应该分别怎么添加参数呢?

谢谢

@orzogc
Copy link
Owner

orzogc commented Oct 3, 2022

-forbid-oss-proxy没有了,代理最好在fake115uploader.json设置,参考 https://github.com/orzogc/fake115uploader#%E4%BB%A3%E7%90%86%E8%AE%BE%E7%BD%AE

@kdurov
Copy link

kdurov commented Oct 9, 2022

代理最好在fake115uploader.json设置

fake115uploader.json 里面加上
"httpProxy": "http://localhost:1234"
后测试。代理服务器并没有收到请求。 -http-proxy 参数也不生效。直接下的 https://github.com/orzogc/fake115uploader/releases/tag/v0.5 这里的也不行。

json里面乱填代理地址
fake115uploader -v 也能返回

2022/10/09 09:09:51 Cookies的值为:
2022/10/09 09:09:52 userID和userKey的值分别是:
2022/10/09 09:09:54 排序文件夹 0 成功
2022/10/09 09:09:55 本次运行没有上传文件

@orzogc
Copy link
Owner

orzogc commented Oct 9, 2022

代理最好在fake115uploader.json设置

fake115uploader.json 里面加上 "httpProxy": "http://localhost:1234" 后测试。代理服务器并没有收到请求。 -http-proxy 参数也不生效。直接下的 https://github.com/orzogc/fake115uploader/releases/tag/v0.5 这里的也不行。

json里面乱填代理地址 fake115uploader -v 也能返回

2022/10/09 09:09:51 Cookies的值为:
2022/10/09 09:09:52 userID和userKey的值分别是:
2022/10/09 09:09:54 排序文件夹 0 成功
2022/10/09 09:09:55 本次运行没有上传文件

我这里测试是没有问题的,代理能正常使用,不论是用参数还是设置文件
你再试试最新代码,乱填代理地址上传是会报错的

@kdurov
Copy link

kdurov commented Oct 9, 2022

我这里测试是没有问题的,代理能正常使用,不论是用参数还是设置文件 你再试试最新代码,乱填代理地址应该会报错了

https://github.com/orzogc/fake115uploader/releases/tag/v0.5 这里的win版能复现吗?
在别人机上传文件,不好弄go环境编译只能用这个。

@orzogc
Copy link
Owner

orzogc commented Oct 9, 2022

0.5版本的代理是没问题的

@kdurov
Copy link

kdurov commented Oct 9, 2022

不应该啊。我在别人的 win7 环境下上传,怎么弄都是不走代理的。

fake115uploader.json 文件里面只有

{
    "cookies": "",
    "cid": 0,
    "resultDir": "",
	"httpProxy": "http://a.b.c:1234"
}

难道是因为是 IPv6 代理的原因?
但是我乱填的1.2.3.4:1234 代理也被绕过了没有报错。

@orzogc
Copy link
Owner

orzogc commented Oct 9, 2022

不清楚你的情况,我不用Windows,但是代理应该是没问题的

@kdurov
Copy link

kdurov commented Oct 9, 2022

刚在一台 Linux 上编译 master branch ,一样的问题。
json 如下的情况,乱填的代理地址 fake115uploader -v 一样没报错。

{
    "cookies": "",
    "cid": 0,
    "resultDir": "",
    "httpProxy": "http://1.2.3.4:1234"
}

然后试了下手动在命令里面添加参数
fake115uploader -http-proxy http://1.1.1.1:1234 -v 不会报错
但是 fake115uploader -http-proxy 1.1.1.1:1234 -v 会报错。
解析HTTP代理地址出现错误:parse "1.1.1.1:1234": first path segment in URL cannot contain colon

(不过这报错怎么不是连接错误呢?)

如果 IPv6 代理去掉 scheme 部分的话,v6 地址加不加[]括号都会报错。
所以 IPv6 的代理应该怎么写了。另外这个报错是不是连接不上代理服务器的报错啊?

@orzogc
Copy link
Owner

orzogc commented Oct 9, 2022

现在单纯运行fake115uploader -v是不会报错的,因为没有上传,除非代理地址有问题
你上传文件看看吧

@orzogc
Copy link
Owner

orzogc commented Oct 9, 2022

还有,现在可能不支持IPv6代理

@kdurov
Copy link

kdurov commented Oct 9, 2022

现在单纯运行fake115uploader -v是不会报错的,因为没有上传,除非代理地址有问题

问题是我想代理的不只是 oss 上传部分啊。115 部分也需要代理。如果 -v 能返回结果就说明这部分没走代理。

@orzogc
Copy link
Owner

orzogc commented Oct 9, 2022

现在单纯运行fake115uploader -v是不会报错的,因为没有上传,除非代理地址有问题

问题是我想代理的不只是 oss 上传部分啊。115 部分也需要代理。如果 -v 能返回结果就说明这部分没走代理。

你要上传才会有流量走代理,单纯的-v参数是什么都不会做的

@kdurov
Copy link

kdurov commented Oct 9, 2022

我的意思是上传走的流量是到阿里的,这边连接 115 API 也要走代理不然被屏蔽的。
难道 -http-proxy 和 -oss-proxy 分开不是这意思吗

@orzogc
Copy link
Owner

orzogc commented Oct 9, 2022

你要上传文件,才会有http请求,才会有流量走http代理

@kdurov
Copy link

kdurov commented Oct 9, 2022

意思就是 -v 会无视代理配置和命令参数?

@orzogc
Copy link
Owner

orzogc commented Oct 9, 2022

-v只是多打印一些信息而已,有没有-v程序的运行逻辑都是一样的

@orzogc
Copy link
Owner

orzogc commented Oct 9, 2022

你纠缠-v没有意义,上传一个文件就知道流量有没有走代理了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants