suntoryliqu
V2EX  ›  macOS

Mac 上 使用 Proxifier 让 shell 走代理

  •  1
     
  •   suntoryliqu · Mar 3, 2016 · 19823 views
    This topic created in 3905 days ago, the information mentioned may be changed or developed.
    下载安装 Proxifier 。
    1.设置 socks5:127.0.0.1:1080 。
    2.默认规则走 socks5:127.0.0.1:1080 。
    3.添加规则 SSX 走 direct 。
    4.这时shell已经走代理了。
    Supplement 1  ·  Mar 3, 2016
    好吧,感谢回复。
    我补充下,不用 proxychains-ng 的原因是要先安装 brew 。
    这正是想让 shell 全局代理的原因。
    43 replies  •  2018-11-08 11:15:48 +08:00
    charlie21
    charlie21
    Mar 3, 2016❤️1
    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
    Strikeactor
    Mar 3, 2016
    2
    redkei
    redkei
    Mar 3, 2016
    3
    想临时走的话(只当前窗口有效),
    export {http,https,ftp}_proxy='http://127.0.0.1:XXXX'

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

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

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

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

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

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

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

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

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

    另外 Proxifier 是可以直接输入命令行程序的名称进行代理的,新建规则,应用名为 git-remote-https ,就可以实现代理 git clone https 连接。
    shiltian
    shiltian
    Mar 3, 2016
    36
    @typcn 但是似乎 Proxifier 对 Terminal 无效的…?
    carrionlee
    carrionlee
    Mar 3, 2016
    37
    @tianshilei1992 可我为什么能收也能发??
    shiltian
    shiltian
    Mar 3, 2016
    38
    @carrionlee 那你试试如果不开 Surge 呢?
    Jezong
    Jezong
    Mar 4, 2016 via iPhone
    39
    mark 下次试一下
    cpylua
    cpylua
    Mar 4, 2016 via iPhone
    40
    它规则文件就是 xml ,可以用脚本生成自动翻墙的规则,效果跟 iptables 一样
    libotony
    libotony
    Mar 4, 2016
    41
    @tianshilei1992 我只在手机上收 gmail ,所以感受不到,另外我也用 proxifier ,对 terminal 是有效的,设置规则的时候要设置程序比如设置 git 程序在请求 github 的时候走代理,设置起来比较麻烦,设置完成之后就可以尽情享用啦
    libotony
    libotony
    Mar 4, 2016
    42
    @libotony
    @tianshilei1992 另外也可以通过日志来查看请求的程序名
    NonClockworkChen
    NonClockworkChen
    Nov 8, 2018
    43
    不知道为什么 proxychains-ng 死活用不了 cocoapods pod setup 命令,还是 Proxifier 简单粗暴
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2844 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 83ms · UTC 10:23 · PVG 18:23 · LAX 02:23 · JFK 05:23
    ♥ Do have faith in what you're doing.