V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
abmin521
V2EX  ›  问与答

各种包管理最好的还是替换国内镜像吧?貌似全局代理或许并没有什么用

  •  
  •   abmin521 · 2016-10-09 20:25:37 +08:00 · 3453 次点击
    这是一个创建于 2966 天前的主题,其中的信息可能已经有所发展或是发生改变。
    曾经问过而且 Google 搜索过全局代理的问题,好多人都说 export all_proxy='socks5://127.0.0.1:1080'就可以,但是 Mac10.11.6 确认无效

    最近尝试了一下 polipo 发现 brew update 还是失败(可能是需要设置 brew 的 http 代理),

    proxifier 的代理规则,也并不是对所有 Mac 应用(比如 google-drive )都起作用,(或者是我的设置不对)目前我只用来代理 telegram

    所以 我觉得,包管理最好的做法还是采用国内镜像

    另外想问问大家都是怎么解决被墙的服务的?另外如果在 pac 上面加上 telegram.me 是不是 telegram 也可以脱离 proxifier 使用了?




    ps :国内的网络环境好复杂
    第 1 条附言  ·  2016-10-09 23:17:50 +08:00
    好像大家都在讨论代理,我感觉更高效的方法是国内镜像
    25 条回复    2016-10-10 13:20:53 +08:00
    WildGuoDonglin
        1
    WildGuoDonglin  
       2016-10-09 20:28:01 +08:00 via iPhone
    ……创造性地解决了本不该存在的问题
    wwqgtxx
        2
    wwqgtxx  
       2016-10-09 20:37:55 +08:00
    路由器上开全局代理,这个最彻底
    Marfal
        3
    Marfal  
       2016-10-09 20:40:07 +08:00
    TG 客户端是写死 IP 的。
    a412739861
        4
    a412739861  
       2016-10-09 20:49:00 +08:00
    https 不行, http 可以使用 socks5 。
    https 自己找软件,把 socks5 转接成 https 的端口,然后设置代理应该就可以了。
    goofansu
        5
    goofansu  
       2016-10-09 20:53:05 +08:00 via iPhone
    路由器上翻最稳定
    regist
        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

    楼主说那么多,第一句最后,来个确认无效...我就不想看下去了...为什么人家都确认有效而他确认无效,如果他深究下,就不会草率的得出这个结论。
    abmin521
        7
    abmin521  
    OP
       2016-10-09 21:47:47 +08:00
    @regist 我第一句说已经搜索过了,我对这些协议不懂,没有效果我才来问的,如果让你感到不适 ,请善用 block
    a412739861
        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/
    crysislinux
        9
    crysislinux  
       2016-10-09 22:07:15 +08:00
    还是用路由器吧, mac 上最好的解决方案应该是 proxychains
    bazingaterry
        10
    bazingaterry  
       2016-10-09 22:18:32 +08:00
    路由器上搞好 ss-redir ,再也没有考虑过这些问题了。
    wzxjohn
        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&amp;hl=zh-CN&amp;pref=hkredirect&amp;pval=yes&amp;q=http://www.google.com.hk/%3Fgws_rd%3Dcr&amp;ust=1476022789593248&amp;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= 未生效。
    abmin521
        12
    abmin521  
    OP
       2016-10-09 22:37:39 +08:00
    @wzxjohn win10 ? 用的 cmder ?
    sengxian
        13
    sengxian  
       2016-10-09 22:41:11 +08:00
    用 Proxifier ,不管什么包管理, brew 还是 npm ,全部代理。
    abmin521
        14
    abmin521  
    OP
       2016-10-09 22:45:01 +08:00   ❤️ 1
    @sengxian 不知道你是怎么设置的,我是选择代理 terminal.app 依然是不行 包括 google-drive 但是 telegram 是有效的
    a412739861
        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 都加一遍,好麻烦。
    billlee
        16
    billlee  
       2016-10-09 23:38:13 +08:00
    我测试了一下,应该是 DNS 污染的问题。 log 里明确显示了 locally resolved, 通过 http 代理转换后设置 ALL_PROXY=http://主机:端口,是可以工作的。
    ALL_PROXY 环境变量也不是对所有程序都有效果,要程序本身支持才行。
    sensui7
        17
    sensui7  
       2016-10-09 23:55:12 +08:00 via iPhone
    我是全部用的国内代理,其中 npm 那个淘宝镜像只设置别名,别用 cnpm 命令,会有问题。
    arischow
        18
    arischow  
       2016-10-09 23:57:08 +08:00 via iPhone
    mac 用 polipo , socks5 转 http ,然后 terminal 设 http 和 https 的 proxy
    Bardon
        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 代理协议非常方便
    deepjia
        20
    deepjia  
       2016-10-10 00:07:34 +08:00 via iPhone
    @abmin521 点错了点成感谢了,你 proxifier 配到 terminal.app 上干嘛,你用什么命令就陪到什么上
    wzxjohn
        21
    wzxjohn  
       2016-10-10 00:30:52 +08:00
    @abmin521 Git Bash 。游戏用机没装 Linux 。
    27
        22
    27  
       2016-10-10 00:39:52 +08:00 via iPhone
    同路由器翻,幸福感提升 n 个等级
    abmin521
        23
    abmin521  
    OP
       2016-10-10 13:04:20 +08:00
    @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 ?
    sengxian
        24
    sengxian  
       2016-10-10 13:09:16 +08:00
    @abmin521 用 Proxifier 只代理 Terminal.app 当然不行啊,比如 brew 是用了 curl 和 git 来下载东西,这时候你需要代理 curl 和 git 。
    abmin521
        25
    abmin521  
    OP
       2016-10-10 13:20:53 +08:00
    @sengxian 明白了 感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2722 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:39 · PVG 20:39 · LAX 04:39 · JFK 07:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.