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

Add Proxy Support #572

Closed
vnwnv opened this issue Apr 15, 2021 · 6 comments
Closed

Add Proxy Support #572

vnwnv opened this issue Apr 15, 2021 · 6 comments

Comments

@vnwnv
Copy link

vnwnv commented Apr 15, 2021

Is your feature request related to a problem? Please describe.
I am trying to stream from home to school.I have to use VPN to connect my PC(in my home) from school.
I tried L2TP and OpenVPN. Because of QoS and school firewall, both of them are unstable in my network environment.
When I use a Pre-agent with OpenVPN, (which can make data looks like web data), it is stable, but the delay is too high.

Describe the solution you'd like
add a proxy support like http and socks proxy, so all data can trans directly.

Describe alternatives you've considered

Additional context
I found a similar issue here moonlight-chrome/#480

@cgutman
Copy link
Member

cgutman commented Apr 15, 2021

The delay problem you have with OpenVPN are fundamental problems with doing real-time video over TCP. Supporting an HTTP or SOCKS proxy natively in Moonlight won’t improve that.

Especially with network QoS involved, it is very important for these types of streams to be able to drop packets when the network is congested. The drops are how GameStream detect that it using too much bandwidth and needs to scale down the bitrate. TCP ensures reliable transmission of the stream data, even when the network can’t keep up. This leads to the stream falling further and further behind real-time. The problem is fundamentally the same as the well known “TCP meltdown” issue which is the main reason VPNs don’t use TCP if they can avoid it.

Here are some links about these problems:
https://openvpn.net/faq/what-is-tcp-meltdown/
https://www.wowza.com/blog/udp-vs-tcp
http://sites.inka.de/bigred/devel/tcp-tcp.html

@Sloanstar
Copy link

Have you tried Splashtop? I have had pretty good results with it for real time video, but it's a pay service if not lan/vpn connected. L2TP is a UDP transport vpn, can you confirm your transport was UDP? Your connection may be subjected to a client based speed cap at the university, pretty common for guest networks.

@vnwnv
Copy link
Author

vnwnv commented Apr 20, 2021

@cgutman @Sloanstar Thanks for your reply!
Now I know the problem is caused by TCP retransmission.I am sure my VPN use UDP, I build the ddns and softether VPN server on a Raspberry pi 3B+. Both L2TP and Openvpn are not the good solution.
These days I found a project which name is udp2raw-tunnel and the VPN version called tinyfecVPN. I will try to use it, I think it may help me to solve this problem!
I will test later.

@vnwnv vnwnv closed this as completed May 4, 2021
@astar10239
Copy link

@wlmqpsc are you able to resolve this ? i tried using https://github.com/fatedier/frp, does not work not able to establish stream

@vnwnv
Copy link
Author

vnwnv commented Nov 4, 2022

Why frp?
Do you have public IP?

if you want use a server to handle data, try vpn you don't need to use reverse proxy.
A server between PC and client will make more delay and cost lots of money.

@batchfileframework
Copy link

Hi,
This is a niche case, but where I work, all outbound traffic, even between two computers on the same switch, have to go through a localhost proxy. It is an http proxy and possibly aslso a socks proxy but unsure about that.

As I try now, the moonlight application isn't able to make outgoing connection except that proxy on localhost (well, I assume it can because my browser can)

So, trying to remote control another computer on the same network (because I don't have space for more monitors on my desk), I have sunshine running and listening to connection. From the moonlight computer, I can connect to sunshine's web interface using the browser (it goes through the localhost proxy), but the moonlight client can't open a connection to the other computer.

I get this nondescript error when I do

image

Another solution, might be to have the server connect to an open port on my client ? Like VNC "reverse" client connection where the "server" initiates the connection to the client

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

No branches or pull requests

5 participants