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