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

请教利用 tailscale 的 exit node 走代理的问题

  •  
  •   liuzimin · 70 天前 · 1669 次点击
    这是一个创建于 70 天前的主题,其中的信息可能已经有所发展或是发生改变。

    设备:安卓手机、windows 电脑

    组网:Tailscale+Headscale

    梯子:Clash Verge on windows

    想实现的效果:电脑上开 Clash Verge ,手机用 tailscale 把 exit-node 设为电脑,使手机也能走电脑的梯子

    现状:

    • 手机电脑已能正常组网互通
    • 电脑 Clash Verge 爬梯正常
    • 电脑已开启 IP 转发,已开启 exit-node ,手机通过 exit-node 浏览网页能正常走电脑的中转

    遇到的问题:

    • 手机只能通过电脑中转访问国内网站,无法访问被墙网站
    • 尝试开启 Clash Verge 的 Tun 模式,还是无效
    • 尝试在电脑上使用端口转发器,把入站 80 、443 端口转发到本地 7890 端口(已在 Clash 中开启并允许局域网访问),还是无效
    • 尝试关闭电脑防火墙,还是无效

    印象中有 V 友提到过这个可以实现,还请赐教。

    17 条回复    2025-08-18 16:28:46 +08:00
    troilus
        1
    troilus  
       70 天前
    手机和电脑组网后直接连个代理软件起的 socks 、https 代理之类的呗
    caomingjun
        2
    caomingjun  
       70 天前 via Android
    首先,转发到 7890 肯定是错的,即使是重定向也是到 redir 端口;系统代理也是不起作用的。我建议你还是直接开 tun ,别搞端口转发。

    能定位问题大致位置吗,比如请求到底有没有到达 clash verge ( clash log 里面有没有出现相关请求),tailscale log 里面有没有显示被 reject (即使 advertise 了 exit node ,对 lan 的访问也需要再 advertise subnet ,可能是 bug ?注意 fakeip 是 lan ),手机端 DNS 查询出来的是不是 fakeip

    我这个月刚在 OpenWrt 配了 openclash 和 tailscale ,遇到一堆坑,上面的问题我都遇到过。我建议你先尝试用另一台电脑来连,手机不方便 debug 。
    caomingjun
        3
    caomingjun  
       70 天前 via Android
    @troilus 不行的,手机不 root 不能同时开两个 VPN ( tailscale 和 SOCKS 代理)
    liuzimin
        4
    liuzimin  
    OP
       70 天前
    @troilus #1 目前是这么做的呀,电脑的 Clash Verge 有开 socks http 混合端口。
    liuzimin
        5
    liuzimin  
    OP
       70 天前
    @caomingjun #2 感谢感谢,我再研究看看。
    troilus
        6
    troilus  
       70 天前 via iPhone
    试试 pc 上把路由表改下,tun 的时候 0.0.0.0 全走 tun 那个网关
    fiveStarLaoliang
        7
    fiveStarLaoliang  
       70 天前
    不用那么麻烦,我这样设置的:
    电脑右下角的 clash verge 右键开启 系统代理 + TUN 模式,然后 tailscale 开 exit node ,然后手机选电脑节点作为 exit
    最后,最重要的是:clash verge 首页里面,虚拟网卡模式记得把驱动装好,开启虚拟网卡
    liuzimin
        8
    liuzimin  
    OP
       70 天前
    @fiveStarLaoliang #7 我差不多也是这么做的,但是如果虚拟网卡用默认设置,tailscale 就会被挤掉线。
    然后 chatGPT 教我这么设:
    TUN 模式堆栈:GVisor
    TUN 网卡名称: Mihomo
    自动设置全局路由:false
    严格路由:false
    自动选择流量出口接口:false
    DNS 劫持:0.0.0.0/0

    虽然这样不会被挤掉,但我按楼上的思路排查了下,这样流量没有走到 clash verge ,爬不了梯。
    fiveStarLaoliang
        9
    fiveStarLaoliang  
       70 天前
    我电脑上 tailscale 和 clash verge ( Meta )是 2 个虚拟网卡,相互之间不冲突的呀,我试了下,各自都启动,没有掉线的情况。不过,我的 clash 端口没有用 7890 ,改了个 10809 。

    虚拟网卡里面设置的是:
    TUN 模式堆栈:GVisor
    TUN 网卡名称: Mihomo
    自动设置全局路由:true
    严格路由:false
    自动选择流量出口接口:true
    DNS 劫持:any:53
    最大传输单元:1500
    liuzimin
        10
    liuzimin  
    OP
       70 天前
    @fiveStarLaoliang #9 我按你说的设置,然后整个电脑就断网了,不过 ping 得通外网 IP ,但解析不了域名,关了 DNS 覆写还是这样。。。
    我看 github 里好像还挺多人提 tun 相关 bug 的。老哥你的 clash 内核什么版本的?我的是 v1.19.11 Mihomo
    lhsakudsgdsik
        11
    lhsakudsgdsik  
       70 天前
    我也用过类似的方案,当时我的想法是只在一台服务器上安装翻墙软件,比如我在南京的服务器上装了 openclash+tailscale ,开了 route 打通内网以及 exit-code ,然后工作的电脑如果要翻墙的话就不用单独安装翻墙软件了,走 tailscale 的 route 地址的 socks 代理访问,这块其实还有分流,主要是浏览器上装个类似 switchyomega 的插件国内走本地网络国外地址走 socks 代理,手机的话就走 exit-code 全局访问,电脑端没什么问题,手机端不行,首先是慢,因为全局流量都走这个地址了,然后 google play 机场会安装不了 app ,反正很多异常问题,还是少折腾吧,直接装个翻墙软件不麻烦,速度还更快
    fiveStarLaoliang
        12
    fiveStarLaoliang  
       70 天前
    我 verge 版本是 v2.3.1 ,clash 内核版本是:v1.19.10 Mihomo ,系统代理地址:127.0.0.1:10809 ,混合代理端口:10809 。
    Clash 设置里面:
    局域网连接:true
    DNS 覆写:true ,监听地址(:53 ), 增强模式 fake-ip, fake-ip 范围:198.18.0.1/16 ,过滤模式:blacklist ,启用 IPv6
    IPv6:true
    统一延迟:true
    liuzimin
        13
    liuzimin  
    OP
       70 天前
    @fiveStarLaoliang #12 卧槽老哥我成了。。。

    - 关于 Clash Verge 开 tun 模式断网问题:
    刚刚试了下用老版 Clash for windows ,发现一开启 tun 模式也会断网,我就开始意识到会不会是我电脑问题,因为之前老版 tun 是不会这样的。然后随手重启了一下电脑,再开启 Clash Verge 的 tun ,这次 tun 正常了。没想明白咋回事但能用了( Clash Verge 相关设置和你的一样)。

    - 关于 Exit-Node 爬梯问题:
    但此时手机还是无法走电脑中转爬梯,然后我想起来在某处看的,把网络适配器设为共享,就顺便试了下,把 Mihomo 的网络适配器共享给了 Tailscale 的网络适配器,然后手机通过 exit-node 直接成功爬梯了。


    感谢楼上每位提供思路的老哥,也希望此帖能给后人带来帮助。
    tomclancy
        14
    tomclancy  
       70 天前
    电脑设置代理软件,使用虚拟网卡代理
    这样就好了
    singularity2000
        15
    singularity2000  
       30 天前
    我电脑在国内接入了 WiFi ,开启了 exit node ,同时开启了 Clash for Windows 的 TUN 模式,网络适配器中将 Clash Tunnel 共享给了 Tailscale Tunnel 。访问 ip.skk.moe ,显示在国外我的 IP 确实变成了 Clash 科学上网节点的 IP ,国内的则为电脑连接 WiFi 的 IP ( Clash 智能分流已开启)。我用安卓手机通过 Tailscale 连接电脑,国内网站能正常访问,但试图访问 youtube 、Facebook 等网站,结果均被意外中止了连接。这是怎么回事?是否和 DNS 有关(已知变量:手机浏览器 DNS 、手机 Tailscale DNS 、电脑 Tailscale DNS )?
    singularity2000
        16
    singularity2000  
       30 天前
    安卓手机访问 ip.skk.moe ,显示在国外我的 IP 确实变成了 Clash 科学上网节点的 IP ,国内的则为电脑连接 WiFi 的 IP ,但手机 chrome 浏览器,外网网站就是进不去,说意外终止了连接
    @liuzimin
    singularity2000
        17
    singularity2000  
       30 天前
    成功了,是 DNS 污染。去 https://login.tailscale.com/admin/dns ,Nameservers 一栏添加 Cloudflare 的 DNS ,重启手机端和电脑端的 Tailscale 就解决了,相当于用 Tailscale 远程给手机共享了电脑的科学上网环境,太神奇了
    注:我这边无需在网络适配器中将 Clash Tunnel 共享给了 Tailscale Tunnel ,直接就能共存。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2898 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:31 · PVG 20:31 · LAX 05:31 · JFK 08:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.