Error disconnection and new to zrok, hi

Goodday everyone im new here and found that zrok is really amazing service compare to ngrok/localtunnel/pagekite which can expose localhost/files to internet too.

Guides are really understandable by lowbie coder like me and its easy to follow. Tried sharing both in public&private + reserve in web/proxy to Android on Ubuntu-in-termux. Zrok speed on transfer is really great, i even got a peak of 8mbps+ for download atm compare to the other 3 service that have 300kbps-1mbps or below.

My experience is already great but i have a problem that the connection from zrok is being disconnected after a certain traffic/download has been reached (sample: i tried streaming/downloading video file worth more than 1.5gb of size then after few minutes with variations of 200mb-700mb downloaded size the connection has been disconnected.) sometimes it will reconnect but after few moments it will forced to cut the connection causing url link zrok not found and must restart the shared public/private web/proxy to make it work or active again. Is it possible to increase the lease time/data traffic to prevent the cut-off connections?

Also is there a way to keep the shares even we use the “zrok disable” and use “zrok enable token” again unless we really delete the shared backend?

And i thank you both sir Philip and sir David for previews support on my quiries😊

Heres the error that shows on my terminal when downloading huge file size.

[ 546.370] ERROR channel/v2/latency.ProbeLatencyConfigurable [ch{ziti-sdk[router=tls://3364a5f4-8bc2-4829-bf1c-42fc261a169b.production.netfoundry.io:443]}->u{classic}->i{lydN}]: {error=[timeout waiting for message reply: context deadline exceeded]} unexpected error sending latency probe
[ 546.371] ERROR sdk-golang/ziti.(*contextImpl).connectEdgeRouter.func2.3: latency timeout after [10s]
[ 546.371] ERROR sdk-golang/ziti.(*contextImpl).connectEdgeRouter.func2.3: no read traffic on channel since before latency probe was sent, closing channel
[ 546.372] ERROR sdk-golang/ziti/edge/impl.(*edgeListener).Close: {sessionId=[9211b3aa-260e-46ae-b907-687214d6bc02] connId=[1] error=[channel closed]} unable to unbind session for conn
[ 546.372] ERROR sdk-golang/ziti/edge/impl.(*edgeConn).close.func1: {serviceName=[fujm9mlbl6l2] connId=[1] error=[channel closed]} failed to close listener
[ 546.372] ERROR channel/v2.(*channelImpl).txer [ch{ziti-sdk[router=tls://3364a5f4-8bc2-4829-bf1c-42fc261a169b.production.netfoundry.io:443]}->u{classic}->i{lydN}]: {error=[write tcp 192.168.1.2:4074252.87.23.126:443: use of closed network connection]} write error
[ 546.373] ERROR channel/v2.(*channelImpl).rxer [ch{ziti-sdk[router=tls://3364a5f4-8bc2-4829-bf1c-42fc261a169b.production.netfoundry.io:443]}->u{classic}->i{lydN}]: rx error (read tcp 192.168.1.2:4074252.87.23.126:443: use of closed network connection)
[ 575.115] INFO main.(*shareReservedCommand).run: → GET /Season1/S1e9blacklist.mp4
[ 576.226] INFO main.(*shareReservedCommand).run: → GET /Season1/S1e9blacklist.mp4
[ 577.104] ERROR sdk-golang/ziti/edge/impl.(*edgeConn).Read: {type=[EdgeDataType] chSeq=[7] edgeSeq=[2] connId=[2147483649]} crypto failed on msg of size=805, headers=map[1000:[1 0 0 128] 1001:[2 0 0 0]] err=(crypto failed)
[ 623.135] ERROR channel/v2/latency.ProbeLatencyConfigurable [ch{ziti-sdk[router=tls://3364a5f4-8bc2-4829-bf1c-42fc261a169b.production.netfoundry.io:443]}->u{classic}->i{LXwB}]: {error=[timeout waiting for message reply: context deadline exceeded]} unexpected error sending latency probe
[ 623.135] ERROR sdk-golang/ziti.(*contextImpl).connectEdgeRouter.func2.3: latency timeout after [10s]
[ 623.136] ERROR sdk-golang/ziti.(*contextImpl).connectEdgeRouter.func2.3: no read traffic on channel since before latency probe was sent, closing channel
[ 626.650] ERROR channel/v2.(*channelImpl).rxer [ch{ziti-sdk[router=tls://3364a5f4-8bc2-4829-bf1c-42fc261a169b.production.netfoundry.io:443]}->u{classic}->i{LXwB}]: rx error (read tcp 192.168.1.2:4087652.87.23.126:443: use of closed network connection)
[ 627.051] ERROR channel/v2/latency.ProbeLatencyConfigurable [ch{ziti-sdk[router=tls://3881392f-2c46-48f6-96c3-07c789de83cb.production.netfoundry.io:443]}->u{classic}->i{XMX1}]: {error=[timeout waiting for message reply: context deadline exceeded]} unexpected error sending latency probe
[ 627.051] ERROR sdk-golang/ziti.(*contextImpl).connectEdgeRouter.func2.3: latency timeout after [10s]
[ 627.052] ERROR sdk-golang/ziti.(*contextImpl).connectEdgeRouter.func2.3: no read traffic on channel since before latency probe was sent, closing channel
[ 627.092] WARNING channel/v2.(*classicDialer).Create [tls:3364a5f4-8bc2-4829-bf1c-42fc261a169b.production.netfoundry.io:443]: {error=[EOF]} error initiating channel with hello
[ 627.092] INFO channel/v2.getRetryVersionFor: defaulting to version 2
[ 627.092] WARNING channel/v2.(*classicDialer).Create [tls:3364a5f4-8bc2-4829-bf1c-42fc261a169b.production.netfoundry.io:443]: Retrying dial with protocol version 2
[ 632.053] ERROR sdk-golang/ziti/edge/impl.(*edgeListener).Close: {connId=[1] sessionId=[9211b3aa-260e-46ae-b907-687214d6bc02] error=[timeout waiting for message to be written to wire: context deadline exceeded]} unable to unbind session for conn
[ 632.054] ERROR sdk-golang/ziti/edge/impl.(*edgeConn).close.func1: {error=[timeout waiting for message to be written to wire: context deadline exceeded] connId=[1] serviceName=[fujm9mlbl6l2]} failed to close listener
[ 632.054] ERROR channel/v2.(*channelImpl).txer [ch{ziti-sdk[router=tls://3881392f-2c46-48f6-96c3-07c789de83cb.production.netfoundry.io:443]}->u{classic}->i{XMX1}]: {error=[write tcp 192.168.1.2:3386420.172.141.251:443: use of closed network connection]} write error
[ 632.055] ERROR channel/v2.(*channelImpl).rxer [ch{ziti-sdk[router=tls://3881392f-2c46-48f6-96c3-07c789de83cb.production.netfoundry.io:443]}->u{classic}->i{XMX1}]: rx error (read tcp 192.168.1.2:3386420.172.141.251:443: use of closed network connection)
[ 667.579] ERROR sdk-golang/ziti/edge/impl.(*edgeConn).Read: {type=[EdgeDataType] chSeq=[5] connId=[2147483648] edgeSeq=[2]} crypto failed on msg of size=794, headers=map[1000:[0 0 0 128] 1001:[2 0 0 0]] err=(crypto failed)
[ 695.348] ERROR sdk-golang/ziti/edge/impl.(*edgeConn).Read: {connId=[2147483648] type=[EdgeDataType] chSeq=[6] edgeSeq=[2]} crypto failed on msg of size=1076, headers=map[1000:[0 0 0 128] 1001:[2 0 0 0]] err=(crypto failed)

Hi! Thanks for posting on our Discourse. Welcome…

Sorry to hear about the disconnects. We’ll take a look and see what we can find on our end.

In the meantime, you can save yourself some headache by trying out a “reserved share”. If you create a reservation, you can stop and restart your zrok share client multiple times without creating a new identity for your share. You should not need to zrok enable/zrok disable multiple times in an environment.

You can use the zrok reserve command (see zrok reserve --help for details) to create a reserved share, and then use the zrok share reserved (see zrok share reserved --help) with the allocated share token to share. If you stop and restart the zrok share reserved command, it will not destroy and re-create your share token.

Share tokens do not surive zrok disable, however. You definitely should not need to zrok disable and re-zrok enable to clear up connectivity issues. If that’s the case then something truly strange is going on.

Let us know if that helps.

I also just noticed your logs…

These kinds of messages about closed connections and latency issues:

[ 546.371] ERROR sdk-golang/ziti.(*contextImpl).connectEdgeRouter.func2.3: no read traffic on channel since before latency probe was sent, closing channel

…are usually indicative of some kind of underlying internet connectivity issue. Is it possible that your ISP or some sort of firewall between yourself and the zrok.io service is unhappy with this traffic/rate?

Thanks for replying sooner sir michael. Yes sir i am already using the reserve command. Its really amazing feature that is almost a private cname dns already although they can be destroyed and cannot be recovered after using the zrok disable which was my test. Due that i have multiple android device that i setup to test zrok and other use case. Hoping that there will be function that can recover the share token to prevent a lost url.

Sample case would be when we use the url to encode in an nfc-tag(ntag)/qrcode, is if the shared token is destroyed unless we format the ntag the tag/sticker/card/qrcode will also be useless. When the shared token is destroyed because they are dependent to the url.

How to know if its my wifi service provider that restrict these problem sir?

I just know that my provider is using cgnat that restrict me to port forward my web/proxy and this is why i lean on reverse tunneling. Although by using my wifi provider i can stream directly from streaming sites like youtube without fail/disconnection, but when i tried to stream using zrok shared url this is the case that cuts the download/stream.

These kinds of problems can be very difficult to diagnose, and I’m just going off the log snippet that you sent… but that log snippet looks to me like the connectivity is being terminated out from underneath zrok and OpenZiti underneath.

It might also be something else. Will continue to think about it.

We might consider changing the “scope” of a reserved share in a future zrok release. Right now shares are scoped to be owned by the “environment” (the thing that gets created when you zrok enable), so when you disable your environment any attached shares (reserved or otherwise) are removed. Maybe in a future release we’ll look into scoping reservations to the account.

There are already a couple of related issues that could be related to re-scoping reserved shares:

1 Like