V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tuimaochang
V2EX  ›  macOS

Mac 上 使用 Proxifier 让 shell 走代理

  •  1
     
  •   tuimaochang · 2016-03-03 01:38:29 +08:00 · 17792 次点击
    这是一个创建于 3217 天前的主题,其中的信息可能已经有所发展或是发生改变。
    下载安装 Proxifier 。
    1.设置 socks5:127.0.0.1:1080 。
    2.默认规则走 socks5:127.0.0.1:1080 。
    3.添加规则 SSX 走 direct 。
    4.这时shell已经走代理了。
    第 1 条附言  ·  2016-03-03 11:48:15 +08:00
    好吧,感谢回复。
    我补充下,不用 proxychains-ng 的原因是要先安装 brew 。
    这正是想让 shell 全局代理的原因。
    43 条回复    2018-11-08 11:15:48 +08:00
    charlie21
        1
    charlie21  
       2016-03-03 02:04:26 +08:00   ❤️ 1
    我用的 privoxy ( /t/215092 ) ,配置好之后
    > privoxy ~/.theconfig
    > export http_proxy='http://localhost:8118'
    > export https_proxy='https://localhost:8118'
    > wget https://www.google.com.hk

    可以写入头三行到 shell 配置如 ~/.zshrc 这样就可以自动终端翻墙了。仅做参考
    Strikeactor
        2
    Strikeactor  
       2016-03-03 02:31:52 +08:00
    redkei
        3
    redkei  
       2016-03-03 04:12:24 +08:00
    想临时走的话(只当前窗口有效),
    export {http,https,ftp}_proxy='http://127.0.0.1:XXXX'

    想一直有的话,写到 rc 文件里去, bashrc or zshrc

    不需要额外的工具转。 shell 需要是因为每次都不走系统的 proxy ,只有自己定义一下。
    582033
        4
    582033  
       2016-03-03 06:55:08 +08:00 via Android
    不都是用 proxychains 的吗
    linghutf
        5
    linghutf  
       2016-03-03 08:55:48 +08:00
    OSX10.11 上 proxifier 好像不起作用了,之前试过,不知道现在更新没有。
    oxoxoxox
        6
    oxoxoxox  
       2016-03-03 09:21:14 +08:00
    proxychains +1
    bigwind
        7
    bigwind  
       2016-03-03 09:26:58 +08:00
    @linghutf 可以用啊,一直用的好好的, V2.15
    ooxxcc
        8
    ooxxcc  
       2016-03-03 09:34:06 +08:00
    @linghutf SIP 开 debug 模式
    pljhonglu
        9
    pljhonglu  
       2016-03-03 09:36:11 +08:00
    三楼方法,不需要什么工具啊。。。
    palxex
        10
    palxex  
       2016-03-03 09:56:43 +08:00
    proxychains 对付命令行好使,对付 GUI 程序好多是不管用的。
    Sequencer
        11
    Sequencer  
       2016-03-03 10:01:02 +08:00
    export socks5_proxy='socks5://localhost:1080'
    应该可以吧...
    Bardon
        12
    Bardon  
       2016-03-03 10:07:28 +08:00
    补充,想只对当前命令有效的话

    $ all_proxy=socks5://127.0.0.1:1080 curl xxxx
    libotony
        13
    libotony  
       2016-03-03 10:37:44 +08:00
    嘴贱说一句,我以前用 Proxifier ,后来换了 Surge for Mac
    nathanw
        14
    nathanw  
       2016-03-03 10:44:41 +08:00
    @libotony surge 如何添加规则让 shell 走?
    gangsta
        15
    gangsta  
       2016-03-03 10:48:06 +08:00
    请教各位 Proxifier 或者 proxychains 可以设置 Pac 规则么?
    teloti
        16
    teloti  
       2016-03-03 10:51:13 +08:00
    @libotony 我也有些好奇,似乎 Surge for Mac 对命令行无效吧?而且这软件也没有多少可配置的地方
    carrionlee
        17
    carrionlee  
       2016-03-03 10:51:33 +08:00
    即使在设置里启用了全局代理, shell 好像也不走这个代理的?
    teloti
        18
    teloti  
       2016-03-03 11:15:05 +08:00
    @libotony 哦我理解你的意思了,你是配置 http_proxy 了是么
    tianshilei1992
        19
    tianshilei1992  
       2016-03-03 11:53:12 +08:00
    @teloti Surge For Mac 和 iOS 版不一样的地方在于它不支持 TUN ,即除 TCP 协议以外的协议不像 iOS 那样可以 TUN ,因此 Surge For Mac 只支持 TCP 。(如果我没理解错的话)。
    tianshilei1992
        20
    tianshilei1992  
       2016-03-03 11:53:32 +08:00
    @gangsta 不可以…
    zhjits
        21
    zhjits  
       2016-03-03 12:43:46 +08:00
    @Sequencer 需要程序主动支持

    @teloti @nathanw @carrionlee
    Terminal 程序往往不读取系统代理设置而是读当前 shell 的环境变量 HTTP_PROXY 和 HTTPS_PROXY ,而且这是需要程序主动支持代理的。

    @gangsta PAC 是个 JavaScript 程序,要支持的话还需要一个 JS 运行时。要说类似的机制的话 Proxifier 是有的,参见二楼
    zhjits
        22
    zhjits  
       2016-03-03 12:44:56 +08:00
    @tianshilei1992 Surge for Mac 只是个本地 HTTP 代理吧?
    zhjits
        23
    zhjits  
       2016-03-03 12:45:45 +08:00
    你完全可以把 brew 里面装 proxychain-ng 的脚本拖下来自己跑,不用装完整的 brew 。
    so898
        24
    so898  
       2016-03-03 12:49:46 +08:00
    有软件可以让 Airmail 走代理么?
    libotony
        25
    libotony  
       2016-03-03 14:31:21 +08:00
    @nathanw surge 是在系统设置里设置代理,具体原理不清楚,但是能接管全局的网络连接
    libotony
        26
    libotony  
       2016-03-03 14:36:31 +08:00
    @teloti
    @carrionlee 原理不清楚,不过我能感受到的表现就是 Surge For Mac 可以按照设置的规则让 shell 里边运行的程序走代理。
    carrionlee
        27
    carrionlee  
       2016-03-03 19:16:20 +08:00 via iPhone
    @libotony 从 surge 的 request 文件里能看到吗?我找不到 terminal 发起的连接啊
    tianshilei1992
        28
    tianshilei1992  
       2016-03-03 19:31:23 +08:00
    @zhjits 是的。
    tianshilei1992
        29
    tianshilei1992  
       2016-03-03 19:32:33 +08:00
    @libotony 它只能接管 HTTP 和 HTTPS , IMAP 这种协议都不支持的。
    zhjits
        30
    zhjits  
       2016-03-03 19:52:41 +08:00 via Android
    @so898 Proxifier
    carrionlee
        31
    carrionlee  
       2016-03-03 20:16:30 +08:00 via iPhone
    @tianshilei1992 那为什么用了 surge 后, mail.app 可以收发 gmail 了?
    goodbest
        32
    goodbest  
       2016-03-03 20:35:03 +08:00
    @carrionlee
    @tianshilei1992
    @so898

    我记得 Surge for Mac 低版本可以 Airmail 走 Gmail 的,但是升级到最新版本貌似失效了。
    不知道谁的问题。
    tianshilei1992
        33
    tianshilei1992  
       2016-03-03 21:16:34 +08:00
    @carrionlee 显然不可以的。可以把帐户登录上去,因为授权走的是 HTTPS ,但是 IMAP 和 SMTP 都就不行了,也就是接收和发送都不可以。不过我现在是改的 hosts 用这俩,因为试了一下, Gmail 两个服务器的 IP 是可以 ping 通的。
    typcn
        34
    typcn  
       2016-03-03 21:24:40 +08:00   ❤️ 2
    @goodbest Surge Mac 支持 HTTP 代理和 HTTPS 代理(设置到系统代理)

    只对使用了 CFNetwork 的 TCP 连接有效。

    BSD Socket 和非 TCP 连接都没有效果
    typcn
        35
    typcn  
       2016-03-03 21:34:41 +08:00   ❤️ 4
    Proxifier 用的是内核模块劫持流量,而且已经签了名,不需要关 SIP 。
    可以直接代理系统保护的程序,也可以对 BSD Socket 生效。

    proxychains 用的是 dylib 注入,由于 SIP 会保护自带的程序不被注入,所以 proxychains 就没法代理系统自带的程序,可以用 brew 装到 /usr/local 下,然后调整 PATH 优先级。

    另外 Proxifier 是可以直接输入命令行程序的名称进行代理的,新建规则,应用名为 git-remote-https ,就可以实现代理 git clone https 连接。
    tianshilei1992
        36
    tianshilei1992  
       2016-03-03 21:58:06 +08:00
    @typcn 但是似乎 Proxifier 对 Terminal 无效的…?
    carrionlee
        37
    carrionlee  
       2016-03-03 22:01:25 +08:00
    @tianshilei1992 可我为什么能收也能发??
    tianshilei1992
        38
    tianshilei1992  
       2016-03-03 22:59:46 +08:00
    @carrionlee 那你试试如果不开 Surge 呢?
    Jezong
        39
    Jezong  
       2016-03-04 00:04:14 +08:00 via iPhone
    mark 下次试一下
    cpylua
        40
    cpylua  
       2016-03-04 08:00:49 +08:00 via iPhone
    它规则文件就是 xml ,可以用脚本生成自动翻墙的规则,效果跟 iptables 一样
    libotony
        41
    libotony  
       2016-03-04 09:22:27 +08:00
    @tianshilei1992 我只在手机上收 gmail ,所以感受不到,另外我也用 proxifier ,对 terminal 是有效的,设置规则的时候要设置程序比如设置 git 程序在请求 github 的时候走代理,设置起来比较麻烦,设置完成之后就可以尽情享用啦
    libotony
        42
    libotony  
       2016-03-04 09:23:40 +08:00
    @libotony
    @tianshilei1992 另外也可以通过日志来查看请求的程序名
    NonClockworkChen
        43
    NonClockworkChen  
       2018-11-08 11:15:48 +08:00
    不知道为什么 proxychains-ng 死活用不了 cocoapods pod setup 命令,还是 Proxifier 简单粗暴
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5137 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:40 · PVG 13:40 · LAX 21:40 · JFK 00:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.