请教一个 WSL2 上代理的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Knuth
V2EX    Windows

请教一个 WSL2 上代理的问题

  •  1
     
  •   Knuth 2021 年 10 月 23 日 8757 次点击
    这是一个创建于 1565 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为 windows 分配给 wsl2 的 IP 是动态变化的,所以我在.bashrc 设置了如下环境变量,我想用curl cip.cc检测终端是不走代理,但返回的是国内当地的 ip 地址

    export host_ip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*') export https_proxy="http://${host_ip}:7890" export http_proxy="http://${host_ip}:7890" export all_proxy="http://${host_ip}:7890" 

    所以请教下大家,终端走代理的正确姿势该怎么操作呢?

    第 1 条附言    2021 年 10 月 23 日
    看大家的都推荐 tun 模式,明天尝试下,谢谢大家
    31 条回复    2021-10-25 10:09:01 +08:00
    Nerv
        1
    Nerv  
       2021 年 10 月 23 日   4
    https://docs.cfw.lbyczf.com/contents/tun.html
    直接 windows 端用 tun 吧,方便的很。
    Knuth
        2
    Knuth  
    OP
       2021 年 10 月 23 日
    @Nerv 一会尝试一下
    nojsja
        3
    nojsja  
       2021 年 10 月 23 日   1
    linux 上我一直用 proxychain + ssr
    ScepterZ
        4
    ScepterZ  
       2021 年 10 月 23 日
    我现在直接路由器挂小软件了,公司里应该也差不多是这么搞的吧,用起来比较省事
    canbingzt
        5
    canbingzt  
       2021 年 10 月 23 日 via iPhone   1
    TypeError
        6
    TypeError  
       2021 年 10 月 23 日 via Android   1
    proxychains
    jswh
        7
    jswh  
       2021 年 10 月 23 日   1
    netch
    https://github.com/netchx/Netch
    楼主收获了一大波软件
    charlie21
        8
    charlie21  
       2021 年 10 月 23 日   1
    你这就是终端走代理的正确姿势

    终端走代理的检测办法是
    > curl "https://www.youtube.com" -X GET -I
    如果有 200 结果,则说明终端的当前 session 对 youtube.com 网址已经走代理了
    hingbong
        9
    hingbong  
       2021 年 10 月 23 日 via Android   1
    你 ping 一下$(hostname). 就能发现神奇的地方了,记得有个点
    ch2
        10
    ch2  
       2021 年 10 月 23 日   1
    终极办法:windows 下开 openvpn 或者 pptp,任何流量都会走代理
    次要:wsl2 下 proxychains
    charlie21
        11
    charlie21  
       2021 年 10 月 23 日   1
    win clash - Proxies 选 Global (而非 Rule)
    以上设置可以达到你想要的效果
    johnniang
        12
    johnniang  
       2021 年 10 月 23 日 via Android   1
    试试 “宿主机名称.mshome.net” 域名,可以不用担心 IP 变动。
    mchl
        13
    mchl  
       2021 年 10 月 23 日   1
    分享一个我一直在使用的解决方案:
    mchl
        14
    mchl  
       2021 年 10 月 23 日
    分享一个我一直在使用的解决方案:
    新建文件 /etc/profile.d/myenv.sh
    内容是:
    export http_proxy="http://$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):10809"
    export https_proxy=$http_proxy

    保存后运行命令 source /etc/profile

    这个文件会在每次重启时自动运行,而且是针对所有用户
    别忘了设置 sudo 自动延用设置:
    命令 sudo visudo
    找到下面这行
    Defaults env_reset
    添加这一行
    Defaults env_keep = "http_proxy https_proxy ftp_proxy all_proxy DISPLAY XAUTHORITY"
    保存就可以了。
    Knuth
        15
    Knuth  
    OP
       2021 年 10 月 23 日
    @canbingzt 这个是我想要的,不过有点问题,我尝试修改一下
    @ch2 这样更新也得走代理了,太慢了,我就想要 git 和 wget 走代理
    chihiro2014
        16
    chihiro2014  
       2021 年 10 月 23 日
    用 docker ,wsl 里面装 docker ,然后要装软件的时候通过 docker ,它的 ip 就是你的 localhost ,而不是动态分配的了
    SenLief
        17
    SenLief  
       2021 年 10 月 23 日
    你的没问题呀,clash 有么有开局域网。
    ch2
        18
    ch2  
       2021 年 10 月 23 日
    @Knuth #15 git 很简单:git config --global https.proxy 'http://宿主机的 ip:1080'
    wget 也有类似的方法,你可以单独设置,不走全局的
    airborne007
        19
    airborne007  
       2021 年 10 月 23 日
    其实也可以反过来,在 wsl2 里面开 clash ,然后 windows 用 wsl2 里面的代理上网
    Knuth
        20
    Knuth  
    OP
       2021 年 10 月 23 日
    @ch2 我之前就是这么做的,但是这个 ip 是动态变化的,每次变化后,得手动更新有点麻烦
    @SenLief 开了的。。。
    @airborne007 未曾设想的道路
    Knuth
        21
    Knuth  
    OP
       2021 年 10 月 23 日
    @canbingzt 不太懂 bash ,请教一下,根据你这样设置后,git proxy 是有效的。但 http_proxy 、https_proxy 没有生效,我在终端`echo $http_proxy`没有返回呢?
    Knuth
        22
    Knuth  
    OP
       2021 年 10 月 23 日
    @johnniang 哈 ping 了一下返回了 wsl 的 ip,有点意外昂,这个宿主机名称不担心重复的吗
    SenLief
        23
    SenLief  
       2021 年 10 月 23 日
    host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ")
    alias proxy="export ALL_PROXY="http://$host_ip:7890""
    alias unproxy="unset ALL_PROXY"

    我的配置,用的时候 proxy 就可以。不过现在用 tun ,没用这个了。
    codehz
        24
    codehz  
       2021 年 10 月 23 日 via Android
    @Knuth 可以用分流模式啊)按域名选
    interim
        25
    interim  
       2021 年 10 月 23 日   1
    用 clash 的 tun 模式就可以了,宿主机和 WSL2 直接走代理
    Huelse
        26
    Huelse  
       2021 年 10 月 24 日
    我就设置了 https_proxy 和 http_proxy ,不过 host_ip 是指定的 192.168...,因为 ip addr 里能看到我本地局域网的地址,然后 clash 开启了 lan 就能用了,git 之类的都能通过外面的 clash 跑
    kohoh
        27
    kohoh  
       2021 年 10 月 24 日
    FarAhead
        28
    FarAhead  
       2021 年 10 月 24 日
    虚拟机开个 openwrt 装 openclash 做旁路由,wsl2 设置旁路由为网关
    xgao
        29
    xgao  
       2021 年 10 月 25 日
    hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
    alias socks='ALL_PROXY=socks5://${hostip}:10800/ \
    http_proxy=http://${hostip}:10800/ \
    https_proxy=http://${hostip}:10800/ \
    HTTP_PROXY=http://${hostip}:10800/ \
    HTTPS_PROXY=http://${hostip}:10800/'

    先查询 wsl 分配的 ip ,然后 alias 一个 socks 。想走代理的话加 socks 前缀就行了:socks curl cip.cc
    uni
        30
    uni  
       2021 年 10 月 25 日
    我用 v2ray 的,按照这个帖子设置的没有问题: https://syz913.github.io/2021/03/20/wsl2/

    但是 v2ray 好像对 ssl 支持非常差,很多东西(比如说 python )要访问网络都会报错,不知道大家有没有什么办法
    AoEiuV020
        31
    AoEiuV020  
       2021 年 10 月 25 日
    我是直接写死 windows 在局域网的 ip ,就是路由器分配的那个,路由器上设置分配固定 ip ,然后把 windows 上的代理软件设置监听 0.0.0.0 允许局域网连接,再打开防火墙,
    就不需要考虑 wsl ip 变化的影响了,
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2904 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 10:31 PVG 18:31 LAX 02:31 JFK 05:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86