软路由使用 Clash Tun 模式下,如何代理 telegram

2021-11-30 09:16:37 +08:00
 yikyo

软路由使用了基于 debian 的 vyos 系统,仅将 dns 流量转发到 53 端口

其他应用都没有什么问题,就是 TG 无法使用,TG 配置代理也不行( SOCKS5 10.0.0.1:7890 )

从 Clash debug 日志中看不到任何信息,TG 配置代理后,会有几个 IP 的流量信息

请问如何解决此问题,万分感谢

mixed-port: 7890
allow-lan: true
mode: rule
log-level: silent
external-controller: 0.0.0.0:9090

dns:
  enable: true
  listen: 0.0.0.0:53
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - 10.0.0.1:5553

tun:
  enable: true
  stack: system
set interfaces bridge br0 address '10.0.0.1/24'
set interfaces bridge br0 member interface eth1
set interfaces bridge br0 member interface eth2

set interfaces ethernet eth0 address 'dhcp'
set interfaces ethernet eth0 hw-id 'e4:3a:6e:2d:5d:6e'
set interfaces ethernet eth1 hw-id 'e4:3a:6e:2d:5d:6f'
set interfaces ethernet eth2 hw-id 'e4:3a:6e:2d:5d:70'

set interfaces loopback lo

set nat destination rule 100 destination address '!10.0.0.1'
set nat destination rule 100 destination port '53'
set nat destination rule 100 inbound-interface 'br0'
set nat destination rule 100 protocol 'tcp_udp'
set nat destination rule 100 source address '10.0.0.0/24'
set nat destination rule 100 translation address '10.0.0.1'

set nat source rule 300 outbound-interface 'eth0'
set nat source rule 300 source address '10.0.0.0/24'
set nat source rule 300 translation address 'masquerade'

set service dhcp-server shared-network-name Lan subnet 10.0.0.0/24 default-router '10.0.0.1'
set service dhcp-server shared-network-name Lan subnet 10.0.0.0/24 lease '86400'
set service dhcp-server shared-network-name Lan subnet 10.0.0.0/24 name-server '10.0.0.1'
set service dhcp-server shared-network-name Lan subnet 10.0.0.0/24 range 100 start '10.0.0.100'
set service dhcp-server shared-network-name Lan subnet 10.0.0.0/24 range 100 stop '10.0.0.200'

set service ssh port '22'

set system config-management commit-revisions '100'

set system host-name 'vyos'

set system name-server '202.101.172.35'
set system name-server '202.101.172.47'

set system ntp server time.apple.com
set system ntp server time.asia.apple.com

set system syslog global facility all level 'info'
set system syslog global facility protocols level 'debug'

set system time-zone 'Asia/Shanghai'
5282 次点击
所在节点    宽带症候群
18 条回复
terrancesiu
2021-11-30 09:33:13 +08:00
redir
-A PREROUTING -s 172.31.0.0/16 -d 91.108.4.0/22 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 91.108.8.0/22 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 91.108.56.0/22 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 109.239.140.0/24 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 149.154.160.0/20 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 23.246.0.0/18 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 37.77.184.0/21 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 45.57.0.0/17 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 64.120.128.0/17 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 66.197.128.0/17 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 108.175.32.0/20 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 192.173.64.0/18 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 198.38.96.0/19 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.31.0.0/16 -d 198.45.48.0/20 -p tcp -m tcp ! --dport 22 -j REDIRECT --to-ports 3128
yikyo
2021-11-30 09:34:22 +08:00
@terrancesiu 是需要用 iptables 将流量导到 clash 吗
lmoon
2021-11-30 09:39:27 +08:00
这不是你规则的问题吗
yikyo
2021-11-30 09:50:10 +08:00
@lmoon 尝试过添加规则没有解决,我从官方 issue 中发现也有类似的问题。
有一个现象,我开 debug 模式查看日志,没有任何信息,感觉像流量没过 clash 。
如果是规则的问题,应该还是会有日志,而且我设置为全局模式,telegram 仍然无法使用。
ziseyinzi
2021-11-30 09:55:05 +08:00
telegram 直接使用 ip,你这个 fake-ip 方案只对域名有效
ghjexxka
2021-11-30 09:57:57 +08:00
试试看给 tg 配一个地址是域名的 mtp 公共代理呢
yikyo
2021-11-30 10:03:18 +08:00
@ziseyinzi 所以需要怎么解决,换成 redir ?
noahzh
2021-11-30 10:03:19 +08:00
你没有理解 clash tun 模式工作原理,你用的是 fake ip 模式.但是 telegram 是直接连接 ip 不是走域名.
yikyo
2021-11-30 10:09:07 +08:00
@noahzh 嗯,看了 5#的回答,大概了解问题了,但是还是有点疑问,clash 规则中针对 ip 部分的配置,fake-ip 下是无效的吗?
yikyo
2021-11-30 10:17:55 +08:00
@ghjexxka 感谢,我等会尝试一下,感觉这个方案最简单点。但是还是想了解一下具体原因。方便以后排查问题
terrancesiu
2021-11-30 10:19:16 +08:00
@yikyo 是的,假设你的局域网是 173.1.0.0/16,clash 的 redir 端口是 3128 。因为 fakeip 模式,只针对于域名,如果 ip 直连需要重定向
noahzh
2021-11-30 13:55:53 +08:00
tun 就是一个网卡他只接收你 fakeip 的流量,这样理解就完了.
dcty
2021-11-30 14:00:28 +08:00
对网络相关配置不熟悉的话,可以试一下 shellclash
yikyo
2021-11-30 18:58:59 +08:00
@noahzh 还是想请教一下大佬,tun 模式下如何解决 ip 直联的情况,常规的解决方案是什么
zhouzm
2021-12-05 10:48:32 +08:00
既然软路由了,应该专业的软件干专业的事:
1. ipset 配合 https://github.com/gaoyifan/china-operator-ip 生成中国 ip 集。
2. 使用 coredns 的插件 dnsredir ( https://github.com/missdeer/coredns_custom_build ) 解决纯净 dns 问题
3. 任意支持透明代理的软件即可,提供一个本机端口,代理所有流量到远程,无需复杂配置,只要解决网络通道就行。
4. iptables + ipset ,非中国 ip 走透明代理端口,记得把局域网段排除掉

这种模式下,局域网下任意客户端上的任意软件都是一样的,访问国内 ip 走原始网络,其他 ip 走透明代理。
smilingsun
2022-07-05 20:35:02 +08:00
yikyo
2022-07-09 19:40:28 +08:00
@smilingsun 非常感谢,找个时间测试一下
jemyzhang
2022-11-04 11:52:20 +08:00
@yikyo 请问你有没有设置成功?我在设置路由下一条的时候出错了。
```
root@OpenWrt:~# route add -net 91.108.4.0/22 gw 198.18.1.254
route: SIOCADDRT: Network unreachable
```

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

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

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

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

© 2021 V2EX