软路由代理问题, tg 无法代理问题

31 天前
 yikyo

相对小众网络配置

用的 vyos 系统,内部有 3 个容器,adguardhome mosdns clash

adguardhome 用来缓存 dns 请求,日志查询功能,上级是 mosdns

mosdns 用来做 dns 分流,国内域名直接指向阿里、腾讯 dns ,国外域名指向 clash dns

clash ,使用 fake ip ,没有任何规则,容器启用了 tun

vyos 配置了一条路由 针对 fake ip 段的路由至 clash 容器 IP

按网上的教程,只要把 tg 的 ip 段路由到 clash 就可以代理,但是无法成功。

可能会出现问题的地方

1 ,clash 规则未指定 ip 规则,tg 的流量进来没有捕获,但是我使用 clash 全局模式也未成功

2 ,clash 使用 fake ip 模式后,无法针对 ip 代理

3 ,tg 的 ip 段路由设置错误

请问怎么测试解决这个问题。可付费咨询,4 杯奶茶

1541 次点击
所在节点    宽带症候群
24 条回复
yyzh
31 天前
TG 内部写死 IP 的.跟微信一样就算 DNS 挂了也能用.所以别折腾 DNS 了.
Kinnice
31 天前
clash 容器内增加 tg 的 ip route 到 198.18.1.1(clash tun 网口的地址) [不是在 clash config 里面加规则]
Kinnice
31 天前
可以在 clash 容器内 ip route get 149.154.160.0 看看是不是走的 198.18.1.1
Kinnice
31 天前
正常应该这样
149.154.160.0 via 198.18.0.2 dev utun table 1970566510 src 198.18.0.1 uid 0
cache
Goooooos
31 天前
geoip,telegram,proxy,no-resolve
Goooooos
31 天前
yikyo
31 天前
@Kinnice 谢谢,我尝试一下看看,感觉有戏。容器挂载了系统的 tun,可以在系统层面解决吗,

按您的建议,是由 vyos 将 tg 路由指向 clash, clash 内部再将路由指向 tun 吗
Kinnice
31 天前
@yikyo #7 是的,或许你可以直接直接使用 auto-route: true
eaststarpen
31 天前
# Telegram CIDR
"-p tcp -d 91.105.192.0/23"
"-p udp -d 91.105.192.0/23"
"-p tcp -d 91.108.4.0/22"
"-p udp -d 91.108.4.0/22"
"-p tcp -d 91.108.8.0/21"
"-p udp -d 91.108.8.0/21"
"-p tcp -d 91.108.16.0/21"
"-p udp -d 91.108.16.0/21"
"-p tcp -d 91.108.56.0/22"
"-p udp -d 91.108.56.0/22"
"-p tcp -d 95.161.64.0/20"
"-p udp -d 95.161.64.0/20"
"-p tcp -d 149.154.160.0/20"
"-p udp -d 149.154.160.0/20"
"-p tcp -d 185.76.151.0/24"
"-p udp -d 185.76.151.0/24"


我用的 singbox 方案和你差不多, 上面是 telegram 的 ip 段
zbatman
31 天前
问题 1 未指定 IP 规则都会走 Match 了
问题 2 TG 是纯 ip 连接,不牵扯 fake-ip 、fake-dns
问题 3 不知道你的 TG IP 段数据来源是啥,参考 https://github.com/Loyalsoldier/clash-rules
zbatman
31 天前
@eaststarpen 方便发下配置文件吗,之前一直想用 sing-box 实现这个流程
SenLief
31 天前
tg 用 ip 的,直接用不要解析。
JimmyChan1506
31 天前
自建递归 DNS 服务. 省心, 不用折腾这么多事
PaoPaoDNS + PaoPaoGateWay 了解一下
yikyo
31 天前
@Kinnice 感谢老哥,成功了,auto-route 不知道什么情况,用了就不能翻墙。留个 WX ,我转你奶茶钱

就是现在感觉有点丑陋,需要在宿主跟容器都设置路由。
Kinnice
31 天前
@yikyo #14 base64: aWtrLXd4
Goooooos
30 天前
@JimmyChan1506 telegram 应该有内建 httpdns ,要把他的服务 ip 加到分流规则,自建 dns 解决不了
eaststarpen
30 天前
@zbatman

```
# sing-box version
sing-box version v1.5.2

Environment: go1.21.1 linux/mipsle
Tags: with_clash_api,with_dhcp,with_ech,with_quic,with_utls,with_wireguard
CGO: disabled
```

配置脚本 https://pastecode.dev/s/53jrbcqi
最后的 路由表操作 有针对我设备的判断逻辑,你的设备可能不一样。(可以不用管或删去判断逻辑)

删除 iptables 链 https://pastecode.dev/s/1hn9igce
没有操作路由表, 调试用

SingBox 配置文件 https://pastecode.dev/s/qbia00le
DNS 模块加上一个 dns_direct 是 outbounds 中可能有的 Server 是域名, 需要 Sing-Box 内部解析

MosDNS 分流, 将需要代理的域名 DNS 请求转发到 SingBox, SingBox 返回 FakeDNS 段 ip.
zbatman
30 天前
@eaststarpen OK ,谢谢你,我研究下
sereinfy
30 天前
解决了是吧,那给路过的看下
你用的教程是不是在开发者选项里面添加代码的那个,
就是这个 geoip2ipset.sh 是的话可以往下看了
其实是代码缺两个变量

这个方案会阻断所以纯 ip 连接,所以顺便解决了 bt 流量国外的问题。
顺便也把 tg 挡外面了
yikyo
30 天前
@sereinfy 啊,没看懂你那个,我这个大概原因是路由问题,自己将 tg 的 ip 段指向 clash 容器后,容器未处理,在容器内部再设置路由之后就可以了,可能用 clash 配置中的 auto-route 更适合,但是我没成功

后续看到一个帖子,https://v2ex.com/t/1017263 中的 17 楼,也是用类似的方式处理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1032667

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX