diyigemt / arona

mirai-console的blue archive插件
GNU Affero General Public License v3.0
148 stars 18 forks source link

与后端服务的连接似乎没走代理 #45

Closed bywhite0 closed 1 year ago

bywhite0 commented 1 year ago
Log ``` 2023-09-10 10:39:14 E/org.quartz.core.JobRunShell: Job ActivityNotify.ActivityNotifyJob threw an unhandled Exception: java.net.SocketTimeoutException: Connect timed out at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551) at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base/java.net.Socket.connect(Socket.java:633) at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:178) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:533) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:638) at java.base/sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:266) at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:142) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:859) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:829) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection.execute(HttpConnection.java:366) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection.get(HttpConnection.java:353) at net.diyigemt.arona-arona-1.1.2.mirai2.jar//net.diyigemt.arona.util.GameKeeUtil.getEventData(GameKeeUtil.kt:23) at net.diyigemt.arona-arona-1.1.2.mirai2.jar//net.diyigemt.arona.util.ActivityUtil.fetchJPActivityFromGameKee(ActivityUtil.kt:409) at net.diyigemt.arona-arona-1.1.2.mirai2.jar//net.diyigemt.arona.util.ActivityUtil.fetchJPActivity(ActivityUtil.kt:95) at net.diyigemt.arona-arona-1.1.2.mirai2.jar//net.diyigemt.arona.advance.ActivityNotify$ActivityNotifyJob.execute(ActivityNotify.kt:36) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.quartz.core.JobRunShell.run(JobRunShell.java:202) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) 2023-09-10 10:39:14 E/org.quartz.core.ErrorLogger: Job (ActivityNotify.ActivityNotifyJob threw an exception. org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.net.SocketTimeoutException: Connect timed out] at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.quartz.core.JobRunShell.run(JobRunShell.java:213) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) Caused by: java.net.SocketTimeoutException: Connect timed out at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551) at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base/java.net.Socket.connect(Socket.java:633) at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:178) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:533) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:638) at java.base/sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:266) at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:142) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:859) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:829) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection.execute(HttpConnection.java:366) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection.get(HttpConnection.java:353) at net.diyigemt.arona-arona-1.1.2.mirai2.jar//net.diyigemt.arona.util.GameKeeUtil.getEventData(GameKeeUtil.kt:23) at net.diyigemt.arona-arona-1.1.2.mirai2.jar//net.diyigemt.arona.util.ActivityUtil.fetchJPActivityFromGameKee(ActivityUtil.kt:409) at net.diyigemt.arona-arona-1.1.2.mirai2.jar//net.diyigemt.arona.util.ActivityUtil.fetchJPActivity(ActivityUtil.kt:95) at net.diyigemt.arona-arona-1.1.2.mirai2.jar//net.diyigemt.arona.advance.ActivityNotify$ActivityNotifyJob.execute(ActivityNotify.kt:36) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.quartz.core.JobRunShell.run(JobRunShell.java:202) ... 1 more ``` ``` 2023-09-10 11:00:30 E/org.quartz.core.JobRunShell: Job AronaAnnouncementCheck.AronaAnnouncementCheckJob threw an unhandled Exception: java.net.SocketTimeoutException: Connect timed out at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551) at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base/java.net.Socket.connect(Socket.java:633) at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:178) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:533) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:638) at java.base/sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:266) at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:142) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:859) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:829) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection.execute(HttpConnection.java:366) at net.diyigemt.arona-arona-1.1.2.mirai2.jar//net.diyigemt.arona.util.NetworkUtil.fetchDataFromServerSource(NetworkUtil.kt:95) at net.diyigemt.arona-arona-1.1.2.mirai2.jar//net.diyigemt.arona.advance.AronaRemoteActionChecker$RemoteActionCheckJob.execute(AronaRemoteActionChecker.kt:67) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.quartz.core.JobRunShell.run(JobRunShell.java:202) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) 2023-09-10 11:00:30 E/org.quartz.core.ErrorLogger: Job (AronaAnnouncementCheck.AronaAnnouncementCheckJob threw an exception. org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.net.SocketTimeoutException: Connect timed out] at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.quartz.core.JobRunShell.run(JobRunShell.java:213) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) Caused by: java.net.SocketTimeoutException: Connect timed out at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551) at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base/java.net.Socket.connect(Socket.java:633) at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:178) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:533) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:638) at java.base/sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:266) at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:142) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:859) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:829) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.jsoup.helper.HttpConnection.execute(HttpConnection.java:366) at net.diyigemt.arona-arona-1.1.2.mirai2.jar//net.diyigemt.arona.util.NetworkUtil.fetchDataFromServerSource(NetworkUtil.kt:95) at net.diyigemt.arona-arona-1.1.2.mirai2.jar//net.diyigemt.arona.advance.AronaRemoteActionChecker$RemoteActionCheckJob.execute(AronaRemoteActionChecker.kt:67) at net.diyigemt.arona-arona-1.1.2.mirai2.jar[private]//org.quartz.core.JobRunShell.run(JobRunShell.java:202) ... 1 more ```

最近把 bot 搬到了一台海外 VPS,由于无法正常访问国内网站,我架设了一个 http 代理 http://127.0.0.1:8118 用来连接国内网站

mcl 的启动参数:

./mcl -p 127.0.0.1:8118  # java -jar mcl.jar -p 127.0.0.1:8118

在 VPS 上 ping GameKee 的域名:

image

通过代理连接 GameKee 的 API 正常响应:

与 Arona Bot 后端的连接也出现相同情况

diyigemt commented 1 year ago

启动参数加上

-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8118 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8118

试试?

bywhite0 commented 1 year ago
-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8118 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8118

实测在 Java 启动参数中插入上述参数会导致 mcl 启动报错并退出。

我的问题,手滑写到 mcl 启动的 entry 里了(

实测未再出现错误,不过启动时出现获取数据源RAID失败的情况。

00:32 补充:可能会由于超时时间较短而出现因下载失败导致"没有对应信息"的情况,此时控制台无任何报错。偶尔则会出现 bot 未返回任何消息控制台直接抛出 stderr 内容为连接超时的情况。

bot 私聊返回消息:

Screenshot_2023_0912_002714.png

群内发送消息:

Screenshot_2023_0912_003003.png

启动参数:

java -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8118 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8118 -jar mcl.jar -p 127.0.0.1:8118
~~Log:~~ ``` 23:33:10 [ERROR] java.lang.ClassNotFoundException: -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8118 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8118 at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) at org.itxtech.mcl.Utility.lambda$bootJars$0(Utility.java:77) at org.itxtech.mcl.Utility.bootJars(Utility.java:85) at org.itxtech.mcl.Utility.bootJars(Utility.java:76) at org.itxtech.mcl.Utility.bootMirai(Utility.java:98) at org.itxtech.mcl.module.builtin.Boot.boot(Boot.java:113) at org.itxtech.mcl.module.ModuleManager.phaseBoot(ModuleManager.java:123) at org.itxtech.mcl.Loader.lambda$start$4(Loader.java:196) at org.itxtech.mcl.Loader.tryCatching(Loader.java:151) at org.itxtech.mcl.Loader.start(Loader.java:196) at org.itxtech.mcl.Loader.main(Loader.java:84) ```

我使用的 JRE 是 Debian 12 官方源的 openjdk-17-jre-headless看报错像 Java 内部问题,但我对 Java 一窍不通(

diyigemt commented 1 year ago

试试这个? https://github.com/diyigemt/arona/releases/tag/v1.1.3-RC

bywhite0 commented 1 year ago

https://github.com/diyigemt/arona/releases/tag/v1.1.3-RC

实测 v1.1.3-RC 已解决,可在不添加 Java 启动参数的情况下直接使用