AsamK / signal-cli

signal-cli provides an unofficial commandline, JSON-RPC and dbus interface for the Signal messenger.
GNU General Public License v3.0
3.17k stars 299 forks source link

http proxy #1494

Open CaptFreezer opened 6 months ago

CaptFreezer commented 6 months ago

Hello,

We want to register with signal-cli client, but evertime we get this error message: java.net.SocketTimeoutException: Connect timed out

Yes, we are behind a HTTP-Proxy in our company. I found some Java-options, but this does not work either: export JAVA_TOOL_OPTIONS="-Djava.net.preferIPv4Stack=true -Dhttp.proxyHost=PROXY_IP -Dhttp.proxyPort=PROXY_PORT -Dhttps.proxyHost=PROXY_IP -Dhttps.proxyPort=PROXY_PORT" export JAVA_OPTS="-Djava.net.preferIPv4Stack=true -Dhttp.proxyHost=PROXY_IP -Dhttp.proxyPort=PROXY_PORT -Dhttps.proxyHost=PROXY_IP -Dhttps.proxyPort=PROXY_PORT"

also i use http_proxy and https_proxy env variables.

Our Server is running Debian 11.9 using signal-cli-native from official gitlab-repository, currently in version 0.13.1.

i-infra commented 6 months ago

This is what worked for me:

JAVA_OPTS="-Dhttp.proxyHost=my.host.org -Dhttps.proxyPort=8080" ./signal-cli/build/install/signal-cli/bin/signal-cli

all on one line.

So not sure exactly what you mean by PROXY_PORT & PROXY_IP - if they're environment variables, you'd want to dereference to value by ie)

JAVA_OPTS="-Dhttp.proxyHost=$PROXY_IP -Dhttps.proxyPort=$PROXY_PORT" ./signal-cli/build/install/signal-cli/bin/signal-cli

This should be analogous to your 'export JAVA_OPTS...' line above.

CaptFreezer commented 5 months ago

I always get this error:

Failed to register: Network is unreachable (SocketException) java.net.SocketException: Network is unreachable at java.base@21.0.2/sun.nio.ch.Net.connect0(Native Method) at java.base@21.0.2/sun.nio.ch.Net.connect(Net.java:589) at java.base@21.0.2/sun.nio.ch.Net.connect(Net.java:578) at java.base@21.0.2/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:583) at java.base@21.0.2/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base@21.0.2/java.net.Socket.connect(Socket.java:751) at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128) at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295) at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207) at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226) at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106) at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74) at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255) at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at org.asamk.signal.manager.config.ServiceConfig.lambda$getServiceEnvironmentConfig$0(ServiceConfig.java:39) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201) at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154) at org.whispersystems.signalservice.internal.push.PushServiceSocket.getServiceConnection(PushServiceSocket.java:2255) at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:2168) at org.whispersystems.signalservice.internal.push.PushServiceSocket.createVerificationSession(PushServiceSocket.java:370) at org.whispersystems.signalservice.api.SignalServiceAccountManager.createRegistrationSession(SignalServiceAccountManager.java:242) at org.asamk.signal.manager.util.NumberVerificationUtils.requestValidSession(NumberVerificationUtils.java:154) at org.asamk.signal.manager.util.NumberVerificationUtils.getValidSession(NumberVerificationUtils.java:164) at org.asamk.signal.manager.util.NumberVerificationUtils.handleVerificationSession(NumberVerificationUtils.java:41) at org.asamk.signal.manager.internal.RegistrationManagerImpl.register(RegistrationManagerImpl.java:131) at org.asamk.signal.commands.RegisterCommand.register(RegisterCommand.java:75) at org.asamk.signal.commands.RegisterCommand.handleCommand(RegisterCommand.java:51) at org.asamk.signal.commands.CommandHandler.handleRegistrationCommand(CommandHandler.java:31) at org.asamk.signal.App.handleRegistrationCommand(App.java:265) at org.asamk.signal.App.handleCommand(App.java:174) at org.asamk.signal.App.init(App.java:144) at org.asamk.signal.Main.main(Main.java:56) at java.base@21.0.2/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH) Suppressed: java.net.SocketTimeoutException: Connect timed out at java.base@21.0.2/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:546) at java.base@21.0.2/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:592) ... 37 more Suppressed: java.net.SocketTimeoutException: Connect timed out at java.base@21.0.2/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:546) at java.base@21.0.2/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:592) ... 37 more Suppressed: java.net.SocketException: Network is unreachable ... 41 more

even if i try it with your syntax.. yes, server and port are correct, but on the proxy-server there is no connection coming in, so i guess there must be another way to set proxy to signal-cli :/

CaptFreezer commented 1 month ago

any news on this? even with version 0.13.5 it still does not work yet :(