V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
aragakiyuii
V2EX  ›  Windows

wsl2 怎么设置才能走 clash 的代理?

  •  
  •   aragakiyuii · May 30, 2020 via Android · 30871 views
    This topic created in 2159 days ago, the information mentioned may be changed or developed.

    之前 wsl 直接设置 http_proxy 然后 clash 开启 lan 就行

    • 按 wsl github 上某个 issue 说的改了入站规则能 ping 通了,但是还是没法走代理

    • clash 开 tap 虚拟网卡也不行,去看 cfw github 上某个 issue 说要把 tap 网卡改成专用网络,还是不行。。

    • http proxy ip 设置的主网卡和 wsl 网卡的 ip 都不行

    救救孩子吧。。

    Supplement 1  ·  May 31, 2020
    现在能 ping,但是各种 tcp http 请求都没法走代理(socks5 和 http 代理都不行),提示 connect timeout
    57 replies    2022-11-24 13:24:38 +08:00
    puekin
        1
    puekin  
       May 30, 2020 via iPhone
    同文 昨天升完 2004,顺手吧 wsl2 转发了 但是 zsh 下载不了, 晚上说了 export ip:端口试了也没用😐
    Jirajine
        2
    Jirajine  
       May 30, 2020 via Android
    直接透明代理解决一切疑难杂症,没有软路由的话可以起个 openwrt 虚拟机当网关。
    另外不建议用这个闭源的玩意,倒不是说信不过,而是担心哪天作者被上门喝茶然后“招安”,这玩意要联网和 UAC,单点故障风险太大。
    iamwho
        3
    iamwho  
       May 31, 2020
    如果解决不了,那就直接在 wsl 内配置安装 clash.

    对于 *nix,
    直接使用代理客户端 + proxychains 会更好。

    @Jirajine #2
    clash 开源。
    aragakiyuii
        4
    aragakiyuii  
    OP
       May 31, 2020 via Android
    @Jirajine 谢谢,不行的话就只能跑 openwrt 了😂cfw 只是为了 fq 用
    aragakiyuii
        5
    aragakiyuii  
    OP
       May 31, 2020 via Android
    @iamwho
    谢谢,我去看看 clash 文档
    wsl 走代理主要是为了 fq😂现在用的是 cfw(楼上说的闭源意思应该是指这个软件
    aragakiyuii
        6
    aragakiyuii  
    OP
       May 31, 2020 via Android
    @puekin 具体不太清楚是什么原因,感觉还是防火墙规则的问题,之前 wsl 设置的代理都是本机 ip
    shansing
        7
    shansing  
       May 31, 2020
    @aragakiyuii WSL2 是个虚拟机,听说虚拟机内不能访问外界的 Windows localhost: /t/670391?p=1#r_8949686
    aragakiyuii
        8
    aragakiyuii  
    OP
       May 31, 2020 via Android
    @shansing 这个我知道,之前我在 wsl 上设置的代理也不是 localhost
    wsly47
        9
    wsly47  
       May 31, 2020   ❤️ 8

    leewi9coder
        10
    leewi9coder  
       May 31, 2020 via iPhone
    从 wsl 的角度看,主机 ip 是多少?这样就可以直接用主机的 http 代理端口了吧
    Tita332
        11
    Tita332  
       May 31, 2020 via iPhone
    确定 tap 成功开启了吗,我这里用 tap 是可以的
    kwlokip
        12
    kwlokip  
       May 31, 2020 via Android
    aragakiyuii
        13
    aragakiyuii  
    OP
       May 31, 2020
    @wsly47 #9 谢谢,设置完了还是不行

    aragakiyuii
        14
    aragakiyuii  
    OP
       May 31, 2020
    @leewi9coder #10 wsl 里 get 到的主机 ip 其实是 hyper-v 内块虚拟网卡上设置的 ip,测试时候一直用的是这个
    aragakiyuii
        15
    aragakiyuii  
    OP
       May 31, 2020
    @Tita332 #11
    开启了(我把建立的入站规则关闭之后,tap 不开就 ping 不通 windows 和 www.google.com ,开启了才可以)
    这是 tap 网卡

    这是配置
    aragakiyuii
        16
    aragakiyuii  
    OP
       May 31, 2020
    @kwlokip #12 谢谢,这篇文章之前搜到过。关于文章里 “WSL2 连接到主机代理” 这一块,我的设置是跟他一样的
    aragakiyuii
        17
    aragakiyuii  
    OP
       May 31, 2020
    @Tita332 #11
    我这安装完 tap 后,界面上 tap 这个地方还是显示 install,这个是我没配置好还是 cfw 的 bug ?
    anguiao
        18
    anguiao  
       May 31, 2020
    “experimental” 字段已经不需要了,删掉试试?不过也可能和这个没什么关系😂
    xau
        19
    xau  
       May 31, 2020 via iPhone
    弄个路由器
    aragakiyuii
        20
    aragakiyuii  
    OP
       May 31, 2020
    @anguiao #18 这个倒是没什么关系,删掉之后也能自动识别到 interface-name
    misaka00001
        21
    misaka00001  
       May 31, 2020 via Android
    .bashrc 或者 .zshrc 设置

    export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')
    alias proxy='export all_proxy="socks5://${hostip}:7891";curl ip.sb;'
    alias unproxy='unset all_proxy;curl ip.sb;'
    aragakiyuii
        22
    aragakiyuii  
    OP
       May 31, 2020
    @misaka00001 #21 谢谢,之前就这么设置的



    wipbssl
        23
    wipbssl  
       May 31, 2020
    @aragakiyuii 我觉得你可以试试把 clash 里 allow lan 打开,然后 wsl 设置代理为主机的 ip,我的 hyperv 上的 Windows 虚拟机是这么设置的,不知道 wsl 可不可以
    toptyloo
        24
    toptyloo  
       May 31, 2020
    首先打开 clash 的 Allow Lan,然后修改.zshrc 或者.bashrc
    export WIN_IP=`cat /etc/resolv.conf | grep nameserver | awk '{print $2}'`
    # # 删除 ~/.proxychains.conf 中 [ProxyList] 所在行到文件末尾的全部内容
    sed -i '/\[ProxyList\]/,$d' ~/.proxychains.conf
    # # 往文件末尾添加 socks5 设置,port 是我的 clash 的本地端口号
    echo '[ProxyList]\nsocks5 '${WIN_IP}' port' >> ~/.proxychains.conf
    alias pc='proxychains4 -q -f ~/.proxychains.conf'
    Ichiban
        25
    Ichiban  
       May 31, 2020 via Android   ❤️ 2
    如果可以 ping 通 Windows 的话,可以试试 windows 防火墙里“允许应用通过防火墙”,检查下里面是不是允许代理软件通过了
    bowser1701
        26
    bowser1701  
       May 31, 2020 via iPhone
    直接 clash 开局域网代理,
    然后 export xxx_proxy=局域网 ip 端口就可以了。
    就相当于你这台机器给局域网另一台机器上代理,不用管 wsl 。
    aragakiyuii
        27
    aragakiyuii  
    OP
       May 31, 2020
    @wipbssl #23
    @bowser1701 #26

    wsl 上可以,wsl2 不行
    bowser1701
        28
    bowser1701  
       May 31, 2020
    @aragakiyuii 可以的,我试过的。
    bowser1701
        29
    bowser1701  
       May 31, 2020
    @aragakiyuii 设置个 http_proxy 和 https_proxy 试一下。默认端口是 7980 。
    bowser1701
        30
    bowser1701  
       May 31, 2020
    @bowser1701 fix 7980 to 7890
    aragakiyuii
        31
    aragakiyuii  
    OP
       May 31, 2020
    @ZingLix #25 谢谢,但是“允许应用通过防火墙”我是一直允许 clash 的,之前想手动添加 Ubuntu 但是找不到路径。。


    @toptyloo #24 谢谢但是还是代理不了。。要疯了



    toptyloo
        32
    toptyloo  
       May 31, 2020
    @aragakiyuii #31 proxychains(根据你安装的版本) curl myip.ipip.net
    toptyloo
        33
    toptyloo  
       May 31, 2020
    不对,看错了。。。
    @toptyloo #32
    aragakiyuii
        34
    aragakiyuii  
    OP
       May 31, 2020
    @bowser1701 #28 这个代理方式我在 wsl 上用的挺好的,一更新到 wsl2 就不能用了。。我这是真没法成功代理。。我看 wsl github 上有好多 issue 里面都提到这样设置代理没效果

    不太想弄了。。弄这个代理也是为了 fq 连 gcp,刚才把我家路由刷了梅林装了 v2ray 插件直接走路由器代理了
    aragakiyuii
        35
    aragakiyuii  
    OP
       May 31, 2020
    @toptyloo #33 我总感觉是防火墙的问题,icmp 是可以的,tcp/http 就不行。然而我把防火墙关了依然如此,就很迷

    https://github.com/microsoft/WSL/issues/4402#issuecomment-520333571

    这个 issue 里 wsl 的维护者推荐在 wsl2 里开代理,让 windows -> wsl2 而不是 wsl2 -> windows,像#3 楼说的内样准备在 wsl2 里配置 clash 了
    mq4079
        36
    mq4079  
       May 31, 2020
    @aragakiyuii 两条命令搞定:
    export http_proxy=`cat /etc/resolv.conf|grep nameserver|awk '{print $2}'`:10809
    export https_proxy=`cat /etc/resolv.conf|grep nameserver|awk '{print $2}'`:10809
    wsl2 的网关是动态的必须用`cat /etc/resolv.conf|grep nameserver|awk '{print $2}'`先解析出网关 ip
    aragakiyuii
        37
    aragakiyuii  
    OP
       Jun 1, 2020   ❤️ 5
    莫名奇妙解决了

    如果要用 cfw fq 的话:
    - wsl2 里不开 proxy,在 cfw 里装上 tap 网卡,成功了会在网络适配器中显示(一开始显示的是"网络电缆被拔出"




    - 然后在 config.yml 中添加 mixin 配置


    - 然后 cfw 主界面中打开 mixin,等待一会会有弹窗或者从右侧弹出通知,允许。再去看网络适配器里 cfw-tap 虚拟网卡就会正常显示了
    - 这样就行了,保证 tap 开启,wsl2 的流量会被 tap 代理到并且转发,关于 tap 的文档(关于 experimental 配置可以不用加上了,现在会自动找到主网卡 https://docs.cfw.lbyczf.com/contents/tap.html

    关于 windows -> wsl2:
    直接用 localhost 就能访问,我在 wsl2 里启动了个 python http 服务(python -m http.server),windows 上访问 localhost:8000 就能访问到 wsl2 目录

    关于 wsl2 -> windows
    还不清楚怎么弄,在防火墙里加入站规则之后倒是能 ping 通了
    keepeye
        38
    keepeye  
       Jun 18, 2020
    我也刚用 wsl2 也是这个问题,只能通过 tap 解决吗?
    razeen
        39
    razeen  
       Jul 5, 2020
    遇到很奇快的问题

    代理端口我设置在 50000 以上的时候,proxy 连不通;

    然后我改到 8000 多,就可以了。。。

    防火墙也没动过哇==
    qrqhuang
        40
    qrqhuang  
       Jul 30, 2020
    @misaka00001 ip.sb 原来还有这个 IP 检测站。 感谢
    mrpzx001
        41
    mrpzx001  
       Oct 10, 2020
    @aragakiyuii 按你那样设置后还是网络电缆被拔出
    rebeccaMyKid
        42
    rebeccaMyKid  
       Oct 30, 2020
    我把防火墙关了就能用了。。。
    rebeccaMyKid
        43
    rebeccaMyKid  
       Oct 31, 2020
    @iamwho @Jirajine 开源个锤子,clash server 端是开源的,但 clash windows and android 都是闭源的好吗,你找源码给我看看
    iamwho
        44
    iamwho  
       Oct 31, 2020
    @rebeccaMyKid #43

    能把嘴闭上吗,你说的第三方的 GUI 不开源和 clash 有什么关系。
    rebeccaMyKid
        45
    rebeccaMyKid  
       Oct 31, 2020
    @iamwho 二楼说的不是 clash windows ?题主说的不是 clash windows? 你能闭嘴吗?自己不读题说别人?
    rebeccaMyKid
        46
    rebeccaMyKid  
       Oct 31, 2020
    @iamwho 对不起,我的。不应该这么大戾气,跟你道歉,不过全文确实都说的是 clash windows.
    Jirajine
        47
    Jirajine  
       Oct 31, 2020 via Android
    @rebeccaMyKid 我上面说的就是不建议用闭源的 clash for Windows 啊。
    至于 clash for Android,之前确实是开源的,不过你这么一说又去看了下,已经把代码删了改闭源了,真是好的不学。
    https://github.com/Kr328/ClashForAndroid/commit/7ac60771bcdec1c5e1dc618b2051795b5cae87ae
    rebeccaMyKid
        48
    rebeccaMyKid  
       Nov 2, 2020
    @Jirajine 嗯嗯我知道你说的是闭源的 clash for windows 。哦,clash for android 还是可以通过之前的 commit 看历史源码,那其实也可以拿来学习?
    SenLief
        49
    SenLief  
       Nov 11, 2020
    @Jirajine cfa 是因为上游闭源了,根据协议也只能闭源。
    Jirajine
        50
    Jirajine  
       Nov 11, 2020 via Android
    @SenLief 请问根据“什么”协议“只能”闭源?
    上游 GPL 的时候怎么不是“只能”开源呢?
    SenLief
        51
    SenLief  
       Nov 11, 2020
    @Jirajine 因为更换了 clash 内核,clash 内核分开了,一个开源的,一个闭源的。cfa 和 cfw 都切换到了闭源的内核,所以只能跟随上游的分支闭源。

    你看一下 cfa 的 notice 就能看到了。
    Jirajine
        52
    Jirajine  
       Nov 11, 2020 via Android   ❤️ 1
    @SenLief 且不说上游如何,“所以只能跟随上游的分支闭源”从何而来?
    就算那个所谓的“clash premium” 要求(我从未看到这样的要求)衍生物必须闭源,那也没有意义。上游 GPL 的时候也没传染到 cfw 呢。
    衍生物闭源是否符合 GPL 尚且存疑,但 “clash premium”本身是毫无疑问违反 GPL 的,除非作者获得了所有贡献者的显式授权。
    弄个这种莫名其妙的 notice 开始闭源,想来很可能是作者被国 an 喝茶了。
    Dragonphy
        53
    Dragonphy  
       Nov 28, 2020
    防火墙允许 Clash 就好了
    Dragonphy
        54
    Dragonphy  
       Apr 30, 2021
    打开控制面板“允许应用通过防火墙”,勾选所有的 clash 程序,并且把对应的专有 or 私有网络勾选上
    hughshine
        55
    hughshine  
       Jul 10, 2021
    windows 防火墙开放对 clash 的权限即可用

    ```
    export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')

    export https_proxy="http://${hostip}:7890"

    export http_proxy="http://${hostip}:7890"

    export all_proxy="sock5://${hostip}:7891"

    alias myip="curl myip.ipip.net"
    ```
    skyoojaa
        56
    skyoojaa  
       Nov 1, 2021   ❤️ 3
    https://docs.cfw.lbyczf.com/contents/tun.html#windows 试一下这个。

    然后在 clash 里面的 UWP 里面选中子系统。就可以代理上。
    shunia
        57
    shunia  
       Nov 24, 2022
    @skyoojaa #56 这个是对的,满网络搜就是没想过看官方文档。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3176 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 87ms · UTC 13:42 · PVG 21:42 · LAX 06:42 · JFK 09:42
    ♥ Do have faith in what you're doing.