Linux
Welcome to c/linux!
Welcome to our thriving Linux community! Whether you're a seasoned Linux enthusiast or just starting your journey, we're excited to have you here. Explore, learn, and collaborate with like-minded individuals who share a passion for open-source software and the endless possibilities it offers. Together, let's dive into the world of Linux and embrace the power of freedom, customization, and innovation. Enjoy your stay and feel free to join the vibrant discussions that await you!
Rules:
-
Stay on topic: Posts and discussions should be related to Linux, open source software, and related technologies.
-
Be respectful: Treat fellow community members with respect and courtesy.
-
Quality over quantity: Share informative and thought-provoking content.
-
No spam or self-promotion: Avoid excessive self-promotion or spamming.
-
No NSFW adult content
-
Follow general lemmy guidelines.
view the rest of the comments
It took a while to set up.
First, I had an issue in China because of UDP QoS. The game I was playing worked, but eventually you get the connection dropped.
So I connected through Wireguard and used udp2raw to simulate a TCP connection. It worked, but eventually the IP would get banned because China bans VPNs.
So I used xtls xray to get around this, but in normal operation it wraps UDP into TCP. This means when a packet drops it gets retransmitted which causes lag in the game at the smallest amount of congestion (and China is super congested connecting outside the country)
So instead of using http 2 I upgraded to QUIC by routing through nginx. Then I could still use udp2raw since QUIC is UDP. To smooth out the packet loss I used udpspeeder. To route all packets in the client I used tproxy with iptables rules.
Now, the best part is I'm on NixOS and I used the NixOS packages and wrote it as systemd services.
If I copy my folder to another computer and update all of this software would start up and route to the correct ports/addresses automatically.
so impressive, i wish i understood everything you did! how would xtls xray make the IP not seem like a VPN? What do you mean upgraded from http 2 to QUIC through nginx? How did you use tproxy with iptables rules? This is really cool stuff and I wish I understood more about it. Did you study computer science formally or just learn this on your own?
Well, it can route from the server to cloudflare IPs, but that's a server-side feature. The real improvement is that it looks like a website when you connect to it instead of looking like a VPN because it emulates HTTP
QUIC is http3, using UDP to get slightly better performance. Unfortunately, if you use it too much, your IP gets blocked in China. So I hide the fact I'm using UDP by rewriting the packets to look like TCP
The tproxy rules are here:
https://serverfault.com/questions/1169137/how-do-i-send-all-tcp-and-udp-traffic-over-tproxy-without-making-a-loop/1169194#1169194
I have a BS degree in CS