1
WildGuoDonglin 2016-10-09 20:28:01 +08:00 via iPhone
……创造性地解决了本不该存在的问题
|
2
wwqgtxx 2016-10-09 20:37:55 +08:00
路由器上开全局代理,这个最彻底
|
3
Marfal 2016-10-09 20:40:07 +08:00
TG 客户端是写死 IP 的。
|
4
a412739861 2016-10-09 20:49:00 +08:00
https 不行, http 可以使用 socks5 。
https 自己找软件,把 socks5 转接成 https 的端口,然后设置代理应该就可以了。 |
5
goofansu 2016-10-09 20:53:05 +08:00 via iPhone
路由器上翻最稳定
|
6
regist 2016-10-09 21:34:16 +08:00
@a412739861 你确认 https 不行?不要误导他人。
你简单测试下 all_proxy=socks5://127.0.0.1:1080 curl https://www.baidu.com 楼主说那么多,第一句最后,来个确认无效...我就不想看下去了...为什么人家都确认有效而他确认无效,如果他深究下,就不会草率的得出这个结论。 |
8
a412739861 2016-10-09 21:56:22 +08:00
@regist
我确认了一晚上,还专门做了一个日志记录分析。 无代理: 代码: curl https://www.google.com 结果: curl: (7) Failed to connect to www.google.com port 443: Operation timed out 使用你的测试代码: all_proxy=socks5://127.0.0.1:1080 curl https://www.google.com curl: (35) Server aborted the SSL handshake 为什么你的能成功呢? 我当时的结论: baidu 本身不用代理,也可以直接连接。 你这个变量控制的不太好,假设了 https 代理设置了,如果不成功,就无法连接,但是似乎实际上,他是无视了这个代理。 最后我的解决方案,参考自: http://tblog.im/2015/09/23/shi-yong-privoxyzhong-zhuan/ |
9
crysislinux 2016-10-09 22:07:15 +08:00
还是用路由器吧, mac 上最好的解决方案应该是 proxychains
|
10
bazingaterry 2016-10-09 22:18:32 +08:00
路由器上搞好 ss-redir ,再也没有考虑过这些问题了。
|
11
wzxjohn 2016-10-09 22:31:27 +08:00
@a412739861
Win 10 SS 原版 $ curl -ivvv https://www.google.com * Rebuilt URL to: https://www.google.com/ * timeout on name lookup is not supported * Trying 59.24.3.173... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:20 --:--:-- 0* connect to 59.24.3.173 port 443 failed: Timed out * Trying 59.24.3.173... 0 0 0 0 0 0 0 0 --:--:-- 0:00:41 --:--:-- 0* connect to 59.24.3.173 port 443 failed: Timed out * Failed to connect to www.google.com port 443: Timed out * Closing connection 0 curl: (7) Failed to connect to www.google.com port 443: Timed out $ all_proxy=socks5://127.0.0.1:1080 curl -s https://www.google.com <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>302 Moved</TITLE></HEAD><BODY> <H1>302 Moved</H1> The document has moved <A HREF="http://www.google.com.hk/url?sa=p&hl=zh-CN&pref=hkredirect&pval=yes&q=http://www.google.com.hk/%3Fgws_rd%3Dcr&ust=1476022789593248&usg=AFQjCNHV8xppH1oDSbVTwiuiFlWKW4q32A">here</A>. </BODY></HTML> 注意,由于 DNS 污染,你获取到的 Google IP 可能是错的,所以 all_proxy=socks5://127.0.0.1:1080 curl -s https://www.google.com 仍然有可能超时。去随便找个正确的 Google IP 写到 Hosts 里。 另外,从你的日志来看,连接已经成功了,只是 SSL 握手出现了问题。请用 curl -ivvv 看详细日志,来找到根本原因。而不是简单认为 all_proxy= 未生效。 |
13
sengxian 2016-10-09 22:41:11 +08:00
用 Proxifier ,不管什么包管理, brew 还是 npm ,全部代理。
|
14
abmin521 OP @sengxian 不知道你是怎么设置的,我是选择代理 terminal.app 依然是不行 包括 google-drive 但是 telegram 是有效的
|
15
a412739861 2016-10-09 23:02:11 +08:00
@wzxjohn
恩,你的应该是对的。当时我是觉得 https_proxy 代理设置应该是可以的,但是不知道死活不知道为什么不可以,然后就接受现实了。 我当初怀疑是 https 连接的问题,接连尝试了 google , Facebook , github ,都是 curl: (35) Server aborted the SSL handshake 。 而和百度一样,国内 V2EX 是可行。 所以自以为得出了一个 https 无法使用 socks5 的结论,我对网络请求协议了解不多,恩,我承认是弱鸡…… 我当时单纯觉得,中间层转发 https 和直接 socks5 ,发出的请求应该都通过 ss 转发,如果有问题就应该都有问题。所以更倾向于是 socks5 和 https_proxy 之间有问题。 中途还尝试过 curl --socks5-hostname 127.0.0.1:1080 https://www.google.com ,可行,又觉得更符合自己的观察结果。 直接 https_proxy 出现问题的描述 all_proxy=socks5://127.0.0.1:1080 curl -ivvv https://www.google.com * Rebuilt URL to: https://www.google.com/ * Trying 127.0.0.1... * 93 * 46 * 8 * 89 * Connected to 127.0.0.1 (127.0.0.1) port 1080 (#0) * Server aborted the SSL handshake * Closing connection 0 curl 使用 socks5 代理的结果 curl -ivvv --socks5-hostname 127.0.0.1:1080 https://www.google.com * Rebuilt URL to: https://www.google.com/ * Trying 127.0.0.1... * Connected to 127.0.0.1 (127.0.0.1) port 1080 (#0) * TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 * Server certificate: www.google.com * Server certificate: Google Internet Authority G2 * Server certificate: GeoTrust Global CA > GET / HTTP/1.1 > Host: www.google.com > User-Agent: curl/7.43.0 根据上面的返回,我个人感觉也不太像 DNS 污染,这方面不了解………… 理由就像上面说的一样,我的 https 转发端口,其实也就是把本地监听了一个 https 端口,然后把数据传输到 SS 的 socks5 端口里面吧。 curl 这个方法我也不知道,是当时检查 proxy 是否起效,才找了这么个方法……更别说里面那一堆参数了。 其实,如果能有个 https 的 http://ip.cn/,我当初就能很快知道是不是起效了。 不过就算是 DNS 污染, lz 的场景,我感觉还是用我这个比较简单点,毕竟每个 DNS 都加一遍,好麻烦。 |
16
billlee 2016-10-09 23:38:13 +08:00
我测试了一下,应该是 DNS 污染的问题。 log 里明确显示了 locally resolved, 通过 http 代理转换后设置 ALL_PROXY=http://主机:端口,是可以工作的。
ALL_PROXY 环境变量也不是对所有程序都有效果,要程序本身支持才行。 |
17
sensui7 2016-10-09 23:55:12 +08:00 via iPhone
我是全部用的国内代理,其中 npm 那个淘宝镜像只设置别名,别用 cnpm 命令,会有问题。
|
18
arischow 2016-10-09 23:57:08 +08:00 via iPhone
mac 用 polipo , socks5 转 http ,然后 terminal 设 http 和 https 的 proxy
|
19
Bardon 2016-10-09 23:59:14 +08:00
1. ss 全局对终端不起作用,或者说,网络偏好设置中的代理配置,对终端不起作用。终端中使用需要设置 proxy env ,譬如 all_proxy=socks5://127.0.0.1:1080 curl ip.cn
2. proxifier 不对 GUI 起作用,要让 GUI app 起作用,需要你设置网络偏好设置中的代理,如你所言, ss 全局后(自动替你设置网络偏好设置中的代理),你的 telegram 就能在此时起作用 提问的智慧是很重要的,如果你的信息详细些,那么显然很多人会有兴趣去寻找问题根源,看看前面某楼回复信息明显错误,@regist 就立即指出来了。 你可以简单测试下你的代理是否正常工作 all_proxy=socks5://127.0.0.1:1080 curl ip.cn 另外 all_proxy 可以使用 http https ftp socks socks5 等代理协议 至于最终是否生效,要看你接下来的网络命令是否支持这类协议 譬如只支持 http 协议的网络命令,你用 all_proxy=socks5://xxx 显然是不行的,譬如 curl 支持 socks5 ,那么用 curl 测试 socks5 代理协议非常方便 |
20
deepjia 2016-10-10 00:07:34 +08:00 via iPhone
@abmin521 点错了点成感谢了,你 proxifier 配到 terminal.app 上干嘛,你用什么命令就陪到什么上
|
22
27 2016-10-10 00:39:52 +08:00 via iPhone
同路由器翻,幸福感提升 n 个等级
|
23
abmin521 OP @arischow polipo 怎么给 terminal 设置 直接 export http_proxy="127..0.1:8123"?
@Bardon 可能是我没有说清楚 我是测试了的, export http_proxy="127..0.1:8123" curl ip.gs 显示的是 ss 的 ip ,但是 brew 还是不行 @a412739861 https 的可以试试 https:httpbin.org @wzxjohn curl 是可以用 polipo 的, brew 不可以直接用 @deepjia proxifier 只可以配置 app 吧,还可以配置命令吗?你是 windows ? |
24
sengxian 2016-10-10 13:09:16 +08:00
@abmin521 用 Proxifier 只代理 Terminal.app 当然不行啊,比如 brew 是用了 curl 和 git 来下载东西,这时候你需要代理 curl 和 git 。
|