-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug] can clash.meta transfer IPv6 traffic? #794
Comments
@Azadzadeh Pure ipv6 domain name/ip should be used for non-ICMP testing. Clash will not proxy ICMP. |
@xishang0128
|
@Azadzadeh Does your node server provide aaaa resolve and ipv6 outbound? |
on server,
not sure how to test this but At client side, with current config, using browser, I get 10/10 in IPv6 site https://test-ipv6.com/ and in site https://ipv6-test.com/ , DNS4 + IP6, DNS6 + IP4, DNS6 + IP6 are reachable and IPv6 connectivity tests are green if i should do any other tests, please advise |
You need to configure Fake IP mode for DNS. As far as I know, it doesn't do any additional configuration for IPv6 routing. What this means is that it will not handle IPv6 traffic on TUN. If you use the regular HTTP/Socks5 proxy you'll find it works fine! |
@closehandle so that's why when i do ipv6 test with my browser https://test-ipv6.com/ , it shows v6 connection (since it's socks5 proxy) but when i do it from terminal it doesn't work. Overall, it would have been neat if this could be implemented in TUN... |
@closehandle The tun of clash.meta handles and routes ipv6 traffic and does not need to be set to fakeip |
@Azadzadeh You can try setting dns.enhaced-mode to redir-host |
@xishang0128 set it to
But with this same config, socks5 works correctly |
@Azadzadeh Use ip a or ifconfig to check whether the tun device has an ipv6 address |
@xishang0128 |
@Azadzadeh Then tun should receive ipv6 traffic |
@xishang0128 |
try tun gvisor |
same results as above, socks5 works, tun doesn't |
Sorry, my test is normal |
Maybe you should try fakeip to test whether dns hijack works. |
@xishang0128 mode: rule
log-level: debug
ipv6: true
tun:
enable: true
stack: system
dns-hijack:
- any:53
auto-route: true
auto-detect-interface: true
dns:
enable: true
ipv6: true
enhanced-mode: fake-ip This works now:
|
@Azadzadeh If you use REDIR-HOST, you must ensure that there is IPv6 locally, otherwise the proxy application cannot initiate a request. |
@Skyxim by 'locally', you mean the ISP should support IPv6 at client side or do you mean the local computer setup and network interface should have an assigned IPv6 ( |
@Azadzadeh In your case, it should be the local computer, specifically it should be applied to meta by the proxy. |
@Skyxim yeah, when i run |
@Azadzadeh fe80:: just like 169.254.x.x of IPv4, it will not be used in practice. It is used for host communication. |
支持 ipv6的,只是可能某些上游代理不支持。如果在 dashboard 那,请求一个纯 ipv6 的地址,检测一下就好了。 |
面板增加了个检测代理是否支持 ipv6 的功能 |
@arkxfly thanks, however in my case, i know a certain proxy can pass ipv6. my problem is more related to the TUN mode. |
The machine on which you deployed the TUN does not support access to an IPv6 network, so there is no IPv6 default route, and Clash Meta has not configured an IPv6 address and route for the TUN device, so it rejected your connection at the routing decision stage That's why you'll get an error if you try to access the IPv6 address directly. The routing decision takes precedence over iptables, and the connection will be rejected before it is processed by iptables! Fake IP only provides A record resolution, so it works, but you'll still fail when accessing IPv6 addresses directly You can configure a default route yourself so that the kernel doesn't reject your connection during the routing decision phase
|
This problem seems to be solved. Can I close it? or change to a discussion? |
Verify steps
Clash version
Clash Meta v1.16.0
What OS are you seeing the problem on?
Linux
Clash config
Clash log
No response
Description
does clash.meta have ability to pass ipv6 traffic?
my proxy server is dual-stack. inside it, i can ping6 an ipv6 or ssh to a ipv6 address.
but, at client side, network is only ipv4.
I thought if i activate a proxy to that server in TUN mode , i'd be able to ping6 at client side but this doesn't work:
no trace about this query is shown on the logs.
i do
netstat -lntup
, no tcp6 or udp6 connections are listening on 1080 or 8080.However,
nslookup ipv6.google.com
works and i see a line in logs related to it.In short, i want to ping6 or
ssh -6
at an ipv4-only client side using the dual-stack proxy server.The text was updated successfully, but these errors were encountered: