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/Remove Tunnel Endpoints Dynamically? #141

Open
timkeeler opened this issue Apr 2, 2020 · 5 comments
Open

Add/Remove Tunnel Endpoints Dynamically? #141

timkeeler opened this issue Apr 2, 2020 · 5 comments

Comments

@timkeeler
Copy link

I haven't seen this documented, but is it possible to add or remove tunnel endpoints on the fly without having to restart the chisel TCP connection?

This would be an awesome feature. Right now when I want to add/remove a connection I need to either start/stop my existing chisel process (killing any tunneled sessions), or start a separate chisel tunnel. The latter isn't that big of a deal, but it starts becoming a bit of a management headache when I'm dealing with a dozen or so chisel processes.

Thoughts or ideas are welcome!

@jpillora
Copy link
Owner

Possible though not supported yet. Though here are some thoughts:

  • Currently share/tunnel deals with a single set of remotes
  • A new chisel Client method could be added to open another SSH channel with a new set of remotes
  • This is a small architectural change since during handshake, Client sends a single config SSH request, then Server assumes a single request

@cedricve
Copy link

cedricve commented Nov 17, 2020

I would like this feature as well. It makes sense that you can setup a client connecting to the server, and later on create and remove remotes when possible.

Usecase might be this: on demand access with reverse proxy. There is no need to keep a remote connection open all the time. Only on specific events (signaling through MQTT), someone can request from a cloud app access to an webserver (or any other tcp connection) at the Edge. This way, it's possible to implement an handshake mechanism outside chisel (for example through a MQTT/REST API/or anything else), and when succesful start the appropriate remote tunnel with chisel.

@timkeeler @jpillora what do you think?

@timkeeler
Copy link
Author

@cedricve - That's a great idea and exactly what I was envisioning. I think this would create a great amount of flexibility for Chisel!

@smanghate
Copy link

@timkeeler @cedricve @jpillora - I have also use case for adding tunnel endpoints dynamically. Did anyone attempted making changes for this?

@timkeeler
Copy link
Author

Not that I'm aware of... :( The technical skills required is just a little bit past me (I'm not great w/Go)

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

No branches or pull requests

4 participants