Comments (6)
Awesome :)
It's not possible to move existing connections into a new process. Each connection has significant state which couldn't be carried forward by a different process. chisel clients perform automatic reconnects on any disconnection so a deploy strategy of replacing the chisel server's binary and performing a restart would cause chisel clients to reconnect almost instantly.
However, this short chisel-to-chisel disconnection would also disconnect any user connections (e.g. SSH connections). I have thought of hiding any short chisel-to-chisel disconnections from the user, by buffering user data though this would result in complex edge cases, like, where a user program might think it has successfully transmitted data when it hasn't, and then this data is lost. Also, even if implemented, this would not work through a chisel upgrade.
Happy to hear of any other ideas
from chisel.
Would it be possible to use something like a Redis cluster to store/maintain state and share that across multiple Chisel instances? If so, building an generic option point state data to a url would be ideal - this way you can point it to various sources - Redis, MongoDB, etc.
from chisel.
@jpillora I assume running multiple chisel servers behind a TCP load balancer wouldn't work either, would it?
If hot-swapping chisel binary without bringing existing connections down is not an option, would you consider a feature that watches auth-file for changes? Just noticed that there is a feature request for this at #30
from chisel.
from chisel.
@jpillora Can CRIU work here with the tcp-connection-established flag? https://criu.org/Main_Page
from chisel.
i dont think auth file changes is the ask. What is needed is a way to maintain network state between two or more processes. Going back many years, Cisco have done this with things like ASA firewalls and these were connected by fast ethernet. There is a way to do this, i just need to Google more. Or can someone point me in the right direction for the design pattern? Or are there any other open source projects that have implement the sane feature?
from chisel.
Related Issues (20)
- The antivirus controversy HOT 3
- How to enable local port forwarding without connecting to the server?
- What's the difference between the SSH connections and the HTTPS connections from the client to the server?
- Version mismatch when using auth file HOT 2
- Not issues but important HOT 5
- Chisel client bind interface HOT 2
- Cloudflare IP host command string example needed.
- ARM v5 crash
- multiple sockets bind to the same address
- Intermittent Authentication Failure with Chisel Server After Updating users.json
- there is no stop function?
- --keyfile documentation is incorrect
- Enable key automation HOT 4
- Unable to compile from source
- Any way to display Auth user when connecting?
- Getting error tls: failed to verify certificate on connecting with https HOT 1
- Use My lib for android apps
- Client version (0.0.0-src) differs from server version (v1.9.1)
- Snort now blocking chisel HOT 2
- Question?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chisel.