owntracks / android

OwnTracks Android App
http://owntracks.org
Eclipse Public License 1.0
1.34k stars 474 forks source link

owntracks app , Pixel 6 not able to send message to recorder #1820

Closed macross-it closed 2 days ago

macross-it commented 2 weeks ago

I have setup the owntracks app and recorder is up and running on local ubuntu jammy version using docker

Mode: HTTP

endpoint URL: http://172.20.216.151:8083/pub

Recorder is up and running image

Failed to send error shown in

OwnTracks/Status/Logs

ts=2024-08-30T20:58:23Z,lat=40.2580358,long=-74.4747889,created_at=2024-08-30T20:58:57.272Z,trigger=PING] 2024-08-30 17:03:17.454 W [DefaultDispatcher-worker-8] MessageProcessor: Error sending message [MessageLocation id=623bc4aa ts=2024-08-30T20:58:57Z,lat=40.2580358,long=-74.4747889,created_at=2024-08-30T20:59:46.749Z,trigger=DEFAULT]. Re-queueing org.owntracks.android.net.OutgoingMessageSendingException: java.net.SocketTimeoutException: failed to connect to /172.20.216.151 (port 8083) from /192.168.1.169 (port 35244) after 30000ms at org.owntracks.android.net.http.HttpMessageProcessorEndpoint.sendMessage(SourceFile:615) at org.owntracks.android.services.MessageProcessor.sendAvailableMessages(SourceFile:216) at org.owntracks.android.services.MessageProcessor.access$sendAvailableMessages(Unknown Source:0) at org.owntracks.android.services.MessageProcessor$sendAvailableMessages$1.invokeSuspend(Unknown Source:11) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:8) at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98) at androidx.work.Worker$2.run(SourceFile:14) at kotlinx.coroutines.scheduling.TaskImpl.run(Unknown Source:2) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(SourceFile:96) Caused by: java.net.SocketTimeoutException: failed to connect to /172.20.216.151 (port 8083) from /192.168.1.169 (port 35244) after 30000ms at libcore.io.IoBridge.connectErrno(IoBridge.java:235) at libcore.io.IoBridge.connect(IoBridge.java:179) at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436) at java.net.Socket.connect(Socket.java:646) at okhttp3.internal.platform.Platform.connectSocket(Unknown Source:5) at okhttp3.internal.connection.RealConnection.connectSocket(SourceFile:74) at okhttp3.internal.connection.RealConnection.connect(SourceFile:166) at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(SourceFile:713) at okhttp3.internal.connection.ConnectInterceptor.intercept(SourceFile:56) at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source:121) at okhttp3.internal.cache.CacheInterceptor.intercept(SourceFile:139) at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source:121) at okhttp3.internal.http.BridgeInterceptor.intercept(SourceFile:143) at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source:121) at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(SourceFile:143) at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source:121) at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(SourceFile:97) at okhttp3.internal.connection.RealCall.execute(SourceFile:42) at org.owntracks.android.net.http.HttpMessageProcessorEndpoint.sendMessage(SourceFile:207) ... 8 more

2024-08-30 17:03:17.464 I [DefaultDispatcher-worker-6] MessageProcessor$sendAvailableMessages: Waiting for 2m before retrying [MessageLocation id=623bc4aa ts=2024-08-30T20:58:57Z,lat=40.2580358,long=-74.4747889,created_at=2024-08-30T20:59:46.749Z,trigger=DEFAULT]

macross-it commented 2 weeks ago

Please advise on what might be the issue to solve this error.

thank you

growse commented 2 weeks ago

That's timing out.

Can you reach the recorder from your phone's browser?

jpmens commented 2 weeks ago

Did you read the error message?

failed to connect to /172.20.216.151 (port 8083) from /192.168.1.169 (port 35244) after 30000ms
macross-it commented 2 days ago

after configuring docker desktop using host IP, I am able to connect.

thank you

macross-it commented 2 days ago

Question: currently i am able to successfully send requests to owntracks/recorder pub endpoint on my desktop from android phone over Wifi.

I am planning to configure docker desktop on public AWS EC2 instance and run owntracks/recorder in docker. what are my options to secure owntracks/recorder pub endpoint and not used by malicious requests over the internet?

please advise.

jpmens commented 2 days ago

This is discussed in the Recorder's README. Basically protect the HTTP endpoint with a proxy, and use a TLS-secured MQTT broker.