Skip to content
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

Problem communicating with IPv6 only servers #3176

Open
5 of 16 tasks
Maxwellads opened this issue Oct 24, 2024 · 4 comments
Open
5 of 16 tasks

Problem communicating with IPv6 only servers #3176

Maxwellads opened this issue Oct 24, 2024 · 4 comments
Labels

Comments

@Maxwellads
Copy link

Maxwellads commented Oct 24, 2024

Please read contributing guidelines. Thanks.
I am so glad that this project is still maintained.
Describe the bug
So I have an IPv6 only server, which I deployed shadowsocks-rust and tested it on my computer, works fine. But this isn't happening to shadowsocks-android - at least not in VPN mode.
When I connect to the server, the client (android) complains that "connection was closed", while server says:

2024-10-24T17:39:58.252053437+00:00 ERROR tcp tunnel [::1]:44570 -> [An_IPv4]:443 connect failed, error: Network is unreachable (os error 101)

But something funny is that, while the connection doesn't go well with VPN mode, the socks5 proxy port delivers connection in the correct way.

Looks like the shadowsocks-rust code worked well, but something went wrong on the VPN codes.

To Reproduce
Steps to reproduce the behavior:

  1. Deploy an IPv6 only server (Optional: use kcptun to ensure connectivity)
  2. Connect to the server by shadowsocks-android

Expected behavior
As the logging mentioned above, the server will be trying to feedback information to the client's IPv4 address, instead of IPv6, which prevents IPv6 server to communicate with the client.

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

  • Android/Chrome OS version: Android 11
  • Device: LG-G710
  • Version: 5.3.4
  • Last version that did not exhibit the issue: [not applicable]

Configuration
Put an x inside the [ ] that applies.

  • IPv4 server address
  • IPv6 server address
  • Client IPv4 availability
  • Client IPv6 availability
  • Encrypt method: aes-256-gcm
  • Route
    • All
    • Bypass LAN
    • Bypass China
    • [ x] Bypass LAN & China
    • GFW List
    • China List
    • Custom rules
  • IPv6 route
  • Apps VPN mode
    • Bypass mode
  • Remote DNS: 8.8.8.8
  • DNS over UDP
  • Plugin configuration (if applicable):
  • Auto Connect
  • TCP Fast Open
  • If you're not using VPN mode, please supply more details here:

Additional context
Add any other context about the problem here.

@Maxwellads Maxwellads added the bug label Oct 24, 2024
@Maxwellads
Copy link
Author

I can exclude the possible cause that the remote end does not have an IPv4 address, as the default "test for connection" target is cp.cloudflare.com, which indeed has one; Also, in VPN mode, I tried to connnect to google.com via Chrome, which has both IPv4 and v6 and also didn't work. However, I can easily access Telegram servers by using pointing its socks5 proxy to client's socks5 port.

@madeye
Copy link
Contributor

madeye commented Oct 28, 2024

Try enable the "IPv6 route" option.

@Maxwellads
Copy link
Author

Try enable the "IPv6 route" option.

I have already tried it before submitting this issue, which had no luck. I wish I could provide logs on the client end to help.

@semigodking
Copy link

I met same problem. If I switch to version in Google Play, it works. But it stops working for same server sometimes if I switch network.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants