ismartcoding / plain-app

PlainApp is an open-source application that allows you to manage your phone through a web browser. Access files, videos, music, contacts, sms, calls, and more from your desktop using a secure, easy to use web interface!
https://docs.plain.icu
GNU Affero General Public License v3.0
2.23k stars 121 forks source link

启用不了http服务,请问如何解决 #89

Closed gongqf closed 9 months ago

gongqf commented 9 months ago

Screenshot_2023-08-31-00-19-41-587_简朴 Screenshot_2023-08-31-00-19-54-686_简朴 Screenshot_2023-08-31-00-22-16-290_简朴

锤子坚果r2手机,安卓11版本,googleplay下载版本

ismartcoding commented 9 months ago

http port 和 https port 都更改一下。

gongqf commented 9 months ago

第二天用就正常了。也没改过端口。

gongqf commented 8 months ago

用1.2.5版还是会出现这个问题。而且那个重启应用按钮不管用。具体现象是这个lan内当天第一次访问一般正常。等过一会,手机开启clash后web链接会断开,plain也会改变ip地址。断开clash后就一直无法链接了,重启手机,重启浏览器都无效。https的端口也改过。http的端口也尝试过,进了这个界面 image

这个问题困扰我很久了,着急的时候总是解决不了。附上今天的log 2023-09-24 16:54:58.271 DEBUG remove session 1695545696391 2023-09-24 16:54:58.311 DEBUG [Request] {"variables":{},"query":"{\n app {\n ...AppFragment\n __typename\n }\n}\n\nfragment AppFragment on App {\n usbConnected\n urlToken\n externalFilesDir\n deviceName\n battery\n version\n permissions\n audios {\n ...PlaylistAudioFragment\n __typename\n }\n audioCurrent\n audioMode\n allowSensitivePermissions\n sdcardPath\n usbDiskPaths\n internalStoragePath\n downloadsDir\n __typename\n}\n\nfragment PlaylistAudioFragment on PlaylistAudio {\n title\n artist\n path\n duration\n __typename\n}"} 2023-09-24 16:54:58.390 DEBUG [Request] {"variables":{},"query":"{\n messageCount(query: \"\")\n contactCount(query: \"\")\n callCount(query: \"\")\n storageStats {\n internal {\n totalBytes\n freeBytes\n __typename\n }\n sdcard {\n totalBytes\n freeBytes\n __typename\n }\n usb {\n totalBytes\n freeBytes\n __typename\n }\n __typename\n }\n}"} 2023-09-24 16:54:58.400 DEBUG [Request] {"variables":{},"query":"{\n chatItems {\n ...ChatItemFragment\n __typename\n }\n}\n\nfragment ChatItemFragment on ChatItem {\n id\n isMe\n createdAt\n content\n data {\n ... on MessageImages {\n ids\n __typename\n }\n ... on MessageFiles {\n ids\n __typename\n }\n __typename\n }\n __typename\n}"} 2023-09-24 16:55:03.463 DEBUG [Request] {"operationName":"createChatItem","variables":{"content":"{\"type\":\"images\",\"value\":{\"items\":[{\"uri\":\"app://Pictures/image.png\",\"size\":206143,\"duration\":0}]}}"},"query":"mutation createChatItem($content: String!) {\n createChatItem(content: $content) {\n ...ChatItemFragment\n __typename\n }\n}\n\nfragment ChatItemFragment on ChatItem {\n id\n isMe\n createdAt\n content\n data {\n ... on MessageImages {\n ids\n __typename\n }\n ... on MessageFiles {\n ids\n __typename\n }\n __typename\n }\n __typename\n}"} 2023-09-24 17:02:15.205 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:02:15.207 DEBUG [Request] {"variables":{},"query":"{\n storageStats {\n internal {\n totalBytes\n freeBytes\n __typename\n }\n sdcard {\n totalBytes\n freeBytes\n __typename\n }\n usb {\n totalBytes\n freeBytes\n __typename\n }\n __typename\n }\n}"} 2023-09-24 17:02:16.762 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:02:19.121 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files/Documents","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:02:23.247 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files/Pictures","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:02:27.926 DEBUG [Request] {"variables":{"id":"","path":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files/Pictures/image.png"},"query":"query ($id: ID!, $path: String!) {\n fileInfo(id: $id, path: $path) {\n ... on FileInfo {\n updatedAt\n size\n __typename\n }\n data {\n ... on ImageFileInfo {\n tags {\n ...TagSubFragment\n __typename\n }\n width\n height\n location {\n latitude\n longitude\n __typename\n }\n __typename\n }\n ... on VideoFileInfo {\n tags {\n ...TagSubFragment\n __typename\n }\n duration\n width\n height\n location {\n latitude\n longitude\n __typename\n }\n __typename\n }\n ... on AudioFileInfo {\n tags {\n ...TagSubFragment\n __typename\n }\n duration\n location {\n latitude\n longitude\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n}\n\nfragment TagSubFragment on Tag {\n id\n name\n __typename\n}"} 2023-09-24 17:02:40.047 DEBUG add session 1695546160045, ts: 1695546159560 2023-09-24 17:02:40.140 DEBUG [Request] {"variables":{},"query":"{\n app {\n ...AppFragment\n __typename\n }\n}\n\nfragment AppFragment on App {\n usbConnected\n urlToken\n externalFilesDir\n deviceName\n battery\n version\n permissions\n audios {\n ...PlaylistAudioFragment\n __typename\n }\n audioCurrent\n audioMode\n allowSensitivePermissions\n sdcardPath\n usbDiskPaths\n internalStoragePath\n downloadsDir\n __typename\n}\n\nfragment PlaylistAudioFragment on PlaylistAudio {\n title\n artist\n path\n duration\n __typename\n}"} 2023-09-24 17:02:40.230 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:02:40.236 DEBUG [Request] {"variables":{},"query":"{\n storageStats {\n internal {\n totalBytes\n freeBytes\n __typename\n }\n sdcard {\n totalBytes\n freeBytes\n __typename\n }\n usb {\n totalBytes\n freeBytes\n __typename\n }\n __typename\n }\n}"} 2023-09-24 17:02:40.246 DEBUG [Request] {"variables":{},"query":"{\n chatItems {\n ...ChatItemFragment\n __typename\n }\n}\n\nfragment ChatItemFragment on ChatItem {\n id\n isMe\n createdAt\n content\n data {\n ... on MessageImages {\n ids\n __typename\n }\n ... on MessageFiles {\n ids\n __typename\n }\n __typename\n }\n __typename\n}"} 2023-09-24 17:02:40.317 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files/Pictures","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:03:33.976 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files/Documents","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:03:36.941 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files/Pictures","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:03:45.447 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files/Documents","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:03:46.258 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files/Pictures","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:03:48.205 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:03:48.206 DEBUG [Request] {"variables":{},"query":"{\n storageStats {\n internal {\n totalBytes\n freeBytes\n __typename\n }\n sdcard {\n totalBytes\n freeBytes\n __typename\n }\n usb {\n totalBytes\n freeBytes\n __typename\n }\n __typename\n }\n}"} 2023-09-24 17:03:49.740 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:03:49.743 DEBUG [Request] {"variables":{},"query":"{\n storageStats {\n internal {\n totalBytes\n freeBytes\n __typename\n }\n sdcard {\n totalBytes\n freeBytes\n __typename\n }\n usb {\n totalBytes\n freeBytes\n __typename\n }\n __typename\n }\n}"} 2023-09-24 17:03:50.355 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:03:50.357 DEBUG [Request] {"variables":{},"query":"{\n storageStats {\n internal {\n totalBytes\n freeBytes\n __typename\n }\n sdcard {\n totalBytes\n freeBytes\n __typename\n }\n usb {\n totalBytes\n freeBytes\n __typename\n }\n __typename\n }\n}"} 2023-09-24 17:03:51.090 DEBUG [Request] {"variables":{},"query":"{\n storageStats {\n internal {\n totalBytes\n freeBytes\n __typename\n }\n sdcard {\n totalBytes\n freeBytes\n __typename\n }\n usb {\n totalBytes\n freeBytes\n __typename\n }\n __typename\n }\n}"} 2023-09-24 17:03:51.092 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:03:51.625 DEBUG [Request] {"operationName":"recentFiles","variables":{},"query":"query recentFiles {\n recentFiles {\n ...FileFragment\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:03:52.396 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:03:52.398 DEBUG [Request] {"variables":{},"query":"{\n storageStats {\n internal {\n totalBytes\n freeBytes\n __typename\n }\n sdcard {\n totalBytes\n freeBytes\n __typename\n }\n usb {\n totalBytes\n freeBytes\n __typename\n }\n __typename\n }\n}"} 2023-09-24 17:03:53.566 DEBUG [Request] {"variables":{},"query":"{\n storageStats {\n internal {\n totalBytes\n freeBytes\n __typename\n }\n sdcard {\n totalBytes\n freeBytes\n __typename\n }\n usb {\n totalBytes\n freeBytes\n __typename\n }\n __typename\n }\n}"} 2023-09-24 17:03:53.568 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:03:55.065 DEBUG [Request] {"operationName":"recentFiles","variables":{},"query":"query recentFiles {\n recentFiles {\n ...FileFragment\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:04:02.746 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:04:02.747 DEBUG [Request] {"variables":{},"query":"{\n storageStats {\n internal {\n totalBytes\n freeBytes\n __typename\n }\n sdcard {\n totalBytes\n freeBytes\n __typename\n }\n usb {\n totalBytes\n freeBytes\n __typename\n }\n __typename\n }\n}"} 2023-09-24 17:04:03.869 DEBUG [Request] {"operationName":"files","variables":{"dir":"/storage/emulated/0/Android/data/com.ismartcoding.plain/files/Pictures","showHidden":true},"query":"query files($dir: String!, $showHidden: Boolean!) {\n files(dir: $dir, showHidden: $showHidden) {\n dir\n items {\n ...FileFragment\n __typename\n }\n __typename\n }\n}\n\nfragment FileFragment on File {\n path\n isDir\n updatedAt\n size\n __typename\n}"} 2023-09-24 17:10:07.011 ERROR java.net.BindException: Address already in use 2023-09-24 17:37:02.889 ERROR java.net.BindException: Address already in use 2023-09-24 17:37:41.514 ERROR java.net.BindException: Address already in use 2023-09-24 17:38:48.816 ERROR java.net.BindException: Address already in use 2023-09-24 17:41:09.768 ERROR java.net.BindException: Address already in use 2023-09-24 17:41:40.181 ERROR java.net.BindException: Address already in use 2023-09-24 17:42:02.734 ERROR java.net.BindException: Address already in use 2023-09-24 17:42:11.152 ERROR java.net.BindException: Address already in use 2023-09-24 17:42:40.091 ERROR java.net.BindException: Address already in use 2023-09-24 17:43:41.384 ERROR java.net.BindException: Address already in use 2023-09-24 19:34:10.191 ERROR java.net.BindException: Address already in use 2023-09-24 19:34:59.342 ERROR java.net.BindException: Address already in use 2023-09-24 19:35:31.734 ERROR java.net.BindException: Address already in use 2023-09-24 19:39:29.004 ERROR java.net.BindException: Address already in use 2023-09-24 19:39:38.177 ERROR java.net.BindException: Address already in use 2023-09-24 19:43:40.455 ERROR java.net.BindException: Address already in use 2023-09-24 19:43:53.693 ERROR java.net.BindException: Address already in use 2023-09-24 19:45:10.071 ERROR java.net.BindException: Address already in use 2023-09-24 19:46:52.302 ERROR java.net.BindException: Address already in use 2023-09-24 19:47:14.690 ERROR java.net.BindException: Address already in use 2023-09-24 19:48:55.829 ERROR java.net.BindException: Address already in use 2023-09-24 19:49:11.190 ERROR java.net.BindException: Address already in use 2023-09-24 19:51:19.511 ERROR java.net.BindException: Address already in use

ismartcoding commented 8 months ago

PlainApp 不会修改手机IP 地址,它用的是你的手机地址。Android Debug Database这个是哪个 APP 开的网页服务? java.net.BindException: Address already in use 这个错误说明端口冲突了。把 HTTPS 和 HTTP 端口都改成其他的端口,避免使用 8443,8080。改完之后使用新的端口。还有请更新到 1.2.7,修复了一个 critical bug。 如果开了 VPN,需要在 VPN 软件设置 VPN Bypass LAN traffic。测试的时候先确保 PC 可以ping 手机 IP。