-
Notifications
You must be signed in to change notification settings - Fork 11
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
Support TCP forwarding #165
Comments
Can I help? |
@jeremyjjbrown thanks for the offer 😄 Do you have experience with Rust? I can provide code pointers and my thoughts on how this could be done, but it may not be the easiest initial contribution to the project. I did some research a couple of weeks back on this topic (TCP forwarding) as well as supporting the equivalent of ssh Supporting TCP Forwarding
Supporting equivalent of SSH JumpHost
It would be nice if the manager new that the connection was a proxy, but that isn't a requirement to get this to work. ChatGPT Explanation of
|
Also, supporting a reverse proxy would be a bit different to this. We'd probably need two more message types being received by the client:
And then the client would need some way to send and receive data based on specific connections. We could probably reuse whatever equivalents we made for |
I have a little experience in Rust. But I am a professional C++, C, Go and Python developer. I am also interested in this as a part of our router stack at my job might do well in Rust and I thought maybe this would motivate me. Let me look through the details you provided. If I feel like I grok what you saying overall then I can try some little hacks in that direction. Maybe it goes somewhere. If not I'll take care not to waste your time. |
@jeremyjjbrown I can handle questions if you have them. I just have other items that are higher priority for me to implement right now. 😄 So don't be shy if you need clarity or want to propose an implementation! |
There are situations where TCP forwarding is needed. For SSH, this is a jump host. I've run into this situation where only certain ports are open on one machine, but I need to access a companion machine that. E.g. I'm on laptop, connect to server 1 on remote network, and then use server 1 to access server 2 to perform work.
First thought is to have jumping be baked into the request header where we include a sequence of addresses to jump through. With each submission, we peel off the first address in the list and then attempt to send data to that server.
This means that servers need to support establishing connections with other servers, which is a bit tricky. We need to both support forwarding authentication between a series of servers, and map addresses to already-established connections. In addition, how long should we keep a connection open?
This further blends the line of a manager and a server.
The text was updated successfully, but these errors were encountered: