Add/Remove Tunnel Endpoints Dynamically?
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!
Possible though not supported yet. Though here are some thoughts:
- Currently
share/tunneldeals with a single set of remotes - A new chisel
Clientmethod could be added to open another SSH channel with a new set of remotes - This is a small architectural change since during handshake,
Clientsends a singleconfigSSH request, thenServerassumes a single request
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?
@cedricve - That's a great idea and exactly what I was envisioning. I think this would create a great amount of flexibility for Chisel!
@timkeeler @cedricve @jpillora - I have also use case for adding tunnel endpoints dynamically. Did anyone attempted making changes for this?
Not that I'm aware of... :( The technical skills required is just a little bit past me (I'm not great w/Go)