Add IPv6 support #47
Replies: 0 comments 27 replies
-
Just adding the same test on powershell: Get-NetTCPConnection -State 'Listen' -OwningProcess (Get-Process -ProcessName 'sunshine').Id
|
Beta Was this translation helpful? Give feedback.
-
I need ipv6 too |
Beta Was this translation helpful? Give feedback.
-
@ReenigneArcher Any love for IPv6? |
Beta Was this translation helpful? Give feedback.
-
I don't have IPv6 so no way to test |
Beta Was this translation helpful? Give feedback.
-
It should be possible to test streaming from IPv6 localhost ( |
Beta Was this translation helpful? Give feedback.
-
Yes, it should be possible to connect to localhost for testing. On Linux, listening on One use-case is to stream over a WireGuard or other VPN connection that uses IPv6 address to identify endpoints (IPv4 are possible too, but IPv6 provides much more freedom for addressing. Here's a simple wireguard example with wg-quick. Put it in I picked addresses from the [Interface]
Address = fd42:1234:5678::1/128
Privatekey = xxxx # output of wg genkey
ListenPort = 54321
[Peer]
AllowedIPs = fd42:1234:5678::2/128
PublicKey = yyyyPUB # output of echo yyyy | wg pubkey Client: [Interface]
Address = fd42:1234:5678::2/128
Privatekey = yyyy # output of another wg genkey
ListenPort = 11188
[Peer]
AllowedIPs = fd42:1234:5678::1/128
PublicKey = xxxxPUB # output of echo xxxx | wg pubkey |
Beta Was this translation helpful? Give feedback.
-
You don’t even need WireGuard. Just use IPv6 on your local network. Pick a /64 subnet under fc00::/7, and give addresses out of that subnet to your computers. You won’t get internet access, but it’s more than sufficient for testing and development. |
Beta Was this translation helpful? Give feedback.
-
Or just use link-local addresses, I agree. I was pointing out an easy way to test over the net. As an aside, Wikipedia says that fc00::/8 has been reserved for future use, so I wouldn't use that, even though it's effectively unused. |
Beta Was this translation helpful? Give feedback.
-
I also have this problem. Have you solved this problem |
Beta Was this translation helpful? Give feedback.
-
I need IPv6 too. I would be very grateful if Sunshine could support IPv6. |
Beta Was this translation helpful? Give feedback.
-
I agree with just using a local-link address. The machines will figure out how to communicate with each other without needing a DHCP server. I recommend checking out the IPv6 Buzz podcast for anyone who is interested in learning more about IPv6. |
Beta Was this translation helpful? Give feedback.
-
Once #517 is merged, I should be able to take a stab at this. That will give us direct access to the local and remote addresses for HTTP(S) requests, which is critical for determining which address family we should use when creating the sockets for streaming. |
Beta Was this translation helpful? Give feedback.
-
PR LizardByte/Sunshine#571 is up to add IPv6 support. |
Beta Was this translation helpful? Give feedback.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
-
I've just discovered Sunshine and I'm disappointed to see this stance on IPv6 support from an open-source, self-hosted project. The lack of IPv6 support in software actively threatens self-hosting and the openness of the internet in general due to the exhaustion of IPv4 addresses and the prevalence of IPv4 address sharing (CGNAT). As the issue worsens, more and more residential ISPs will start to use CGNAT for IPv4, and software like this will completely stop working over the internet. For instance, like many other people, I can't use this at all over the internet because my IPv4 is behind a CGNAT and I can only accept incoming connections over IPv6. I respect open-source developers that write software pretty much for free, but the PR for IPv6 support is one of the first to have been opened on the roadmap, and yet it's evidently very low priority. The issue has also been converted to a "feature request" when in reality, it's an issue - it completely prevents many people from streaming over the internet. |
Beta Was this translation helpful? Give feedback.
-
The same needs. In China, getting an ipv4 address for a public network is almost impossible. But getting an ipv6 on a public network is very simple. I tried using zerotier to set up a virtual local area network, but the results were poor. |
Beta Was this translation helpful? Give feedback.
-
Ran into the problem today. Hope ipv6 could be supported soon as it's the only way for me to stream over the internet behind a CGNAT ipv4 network. |
Beta Was this translation helpful? Give feedback.
-
So if I understood correctly, even if we got from the user configuration or otherwise a stable ip address that wouldn't help. Sunshine simply isn't able to set it as the source with the current exposed APIs, that will instead use whatever the host's preferred ip is at that moment, Sunshine be damned? |
Beta Was this translation helpful? Give feedback.
-
#571 is merged and IPv6 streaming is now supported in Sunshine nightly builds. Enable IPv4+IPv6 mode using the new Address Family option on the Advanced settings tab in the Web UI, then you should be able to stream normally over both IPv4 and IPv6. If the UPnP option is enabled, Sunshine will try to use UPnP WANIPv6FirewallControl to create IPv6 firewall pinholes if the internet gateway supports it, similar to our UPnP port mapping support for IPv4. Opening pinholes via PCP is not yet supported. If you have Moonlight Internet Hosting Tool or GameStream IPv6 Forwarder installed on your host, you will need to update them to the latest version to avoid interference with Sunshine's native IPv6 support. As I mentioned previously, there is a client-side fix required to handle cases where the client's IPv6 temporary address changes while streaming. The latest releases of Moonlight for Android and iOS contain this fix, but the fix hasn't been shipped officially for the PC client yet. You can use one of the nightly builds until the official clients ship. |
Beta Was this translation helpful? Give feedback.
-
This feature has been added and will be available in the next release. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Describe the Bug
Currently, IPv6 is not used by any of the network sockets.
If you run
netstat -lnp | grep sunshine
, you can see all of the sockets bound to0.0.0.0
, not[::]
. Also, if you look at https://github.com/SunshineStream/Sunshine/blob/master/sunshine/network.cpp, you can see it explicitly only binds with AF_INET.On the server side, my ISP at puts me behind an IPv4 CGNAT, but has full end-to-end IPv6 connectivity.
And on the client side, both locations where I'd use it (either at work, or via my mobile) are also IPv6–only. (VPNs are not always feasible due to corp policy reasons.)
Expected Behavior
The Moonlight client supports IPv6. I expected to be able to connect to Sunshine using IPv6, but wasn't able to due to its lack of support.
Additional Context
No response
Sunshine Host Operating System and Version
Fedora 36
Architecture
x86_64
Sunshine Version
0.14.0
GPU Type
AMD
GPU Model
RX 6900XT
GPU Driver/Mesa Version
22.0.1
Capture Method (Linux Only)
Wayland
Beta Was this translation helpful? Give feedback.
All reactions