软路由使用了基于 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'
1
terrancesiu Nov 30, 2021
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 |
2
yikyo OP @terrancesiu 是需要用 iptables 将流量导到 clash 吗
|
3
lmoon Nov 30, 2021
这不是你规则的问题吗
|
4
yikyo OP @lmoon 尝试过添加规则没有解决,我从官方 issue 中发现也有类似的问题。
有一个现象,我开 debug 模式查看日志,没有任何信息,感觉像流量没过 clash 。 如果是规则的问题,应该还是会有日志,而且我设置为全局模式,telegram 仍然无法使用。 |
5
ziseyinzi Nov 30, 2021
telegram 直接使用 ip,你这个 fake-ip 方案只对域名有效
|
6
ghjexxka Nov 30, 2021
试试看给 tg 配一个地址是域名的 mtp 公共代理呢
|
8
noahzh Nov 30, 2021
你没有理解 clash tun 模式工作原理,你用的是 fake ip 模式.但是 telegram 是直接连接 ip 不是走域名.
|
11
terrancesiu Nov 30, 2021
@yikyo 是的,假设你的局域网是 173.1.0.0/16,clash 的 redir 端口是 3128 。因为 fakeip 模式,只针对于域名,如果 ip 直连需要重定向
|
12
noahzh Nov 30, 2021
tun 就是一个网卡他只接收你 fakeip 的流量,这样理解就完了.
|
13
dcty Nov 30, 2021
对网络相关配置不熟悉的话,可以试一下 shellclash
|
15
zhouzm Dec 5, 2021 既然软路由了,应该专业的软件干专业的事:
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 走透明代理。 |
16
smilingsun Jul 5, 2022
|
17
yikyo OP @smilingsun 非常感谢,找个时间测试一下
|