全球主机交流论坛

标题: 【已更新】用docker运行Android web版远程桌面,浏览器访问 [打印本页]

作者: emptysuns    时间: 2022-8-29 20:00
标题: 【已更新】用docker运行Android web版远程桌面,浏览器访问
本帖最后由 emptysuns 于 2022-9-2 23:42 编辑

书接上贴
https://mjj.022333.xyz/thread-1065193-1-1.html

Demo:


教程: https://blog.imoeq.com/scrcpy-run-a-android-web-page/

更新:argo tunnel + workers授权方法,感谢ChenYFan https://mjj.022333.xyz/forum.php?mod=viewthread&tid=1069535
作者: yanzhiling2002    时间: 2022-8-29 20:04
不错,马上安排抄袭。
作者: yailone1    时间: 2022-8-29 20:12
强。几百台手机刷快手的时代过去了吗
作者: ncnc    时间: 2022-8-29 20:14
不卡吗 还能打王者 原神行吗
作者: emptysuns    时间: 2022-8-29 20:19
ncnc 发表于 2022-8-29 03:14
不卡吗 还能打王者 原神行吗

有人试过lolm,挂机可以,竞技**别想了
远端连接桌面有延迟,可以当远控
作者: ecs    时间: 2022-8-29 20:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: huanx    时间: 2022-8-29 20:30
emptysuns 发表于 2022-8-29 20:19
有人试过lolm,挂机可以,竞技**别想了
远端连接桌面有延迟,可以当远控 ...

想法有点深远
作者: 271308568    时间: 2022-8-30 08:59
有人愿意5元借我玩一个小时吗?只是想跑下程序能不能正常使用
作者: Alt    时间: 2022-8-30 10:14
楼主的干货太棒,墙裂精神上支持!!!
作者: 华盛顿    时间: 2022-8-30 17:08
本帖最后由 华盛顿 于 2022-8-30 17:09 编辑

大佬求教,

完全按照教程,一步一步的走,

但是总是也出不来效果,
如图所示,打开之后是一片空白,并不显示图形化的安卓界面,

从昨晚弄到现在,重复弄了很多遍了,每次都是这样,,

由于不会单独安装nginx,我都是用宝塔,或者lnmp来安装nginx,两个环境都试过,

走的步骤都是复制的你的代码,只有nginx的配置你那只是个例子,没有完整的复制,

不知道是哪里的错,,






nginx配置
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}
upstream websocket {
    server 127.0.0.1:48000;
}

server
    {
        listen 443 ssl http2;
        #listen [::]:443 ssl http2;
        server_name anzhuo.xyz ;
                auth_basic "Please input password:";
        auth_basic_user_file /home/.htpasswd;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/a;

        ssl_certificate /usr/local/nginx/conf/ssl/anzhuo.xyz/fullchain.cer;
        ssl_certificate_key /usr/local/nginx/conf/ssl/anzhuo.xyz/anzhuo.xyz.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
        # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
        ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;

        include rewrite/none.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php.conf;

                location / {

                        add_header Access-Control-Allow-Origin *;
                                add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
                                add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
                         if ($request_method = 'OPTIONS') {
                                        return 204;
                                }
                        proxy_pass http://websocket;
                        proxy_set_header Host $host;
                        proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
                }

        access_log off;
    }

作者: emptysuns    时间: 2022-8-30 17:17
华盛顿 发表于 2022-8-30 00:08
大佬求教,

完全按照教程,一步一步的走,

参考第一篇文章,先看看不用web能不能通过本地adb出来画面
作者: 华盛顿    时间: 2022-8-30 17:20
emptysuns 发表于 2022-8-30 17:17
参考第一篇文章,先看看不用web能不能通过本地adb出来画面

昨晚按照第一篇文章,本地出来画面了,

然后DD了系统,又按照第二篇文章,尝试的,打开网页就是空白,出不来,
然后又D了很多次系统 尝试,web页面一直都是这样
作者: qqcool8    时间: 2022-8-30 17:34
mark一下
作者: emptysuns    时间: 2022-8-30 17:58
华盛顿 发表于 2022-8-30 00:20
昨晚按照第一篇文章,本地出来画面了,

然后DD了系统,又按照第二篇文章,尝试的,打开网页就是空白,出 ...

不应该啊,adb都连上了,你试试把127.0.0.1去掉,直接不通过nginx直接访问http://ip:48000呢
作者: 华盛顿    时间: 2022-8-30 18:31
本帖最后由 华盛顿 于 2022-8-30 18:32 编辑
emptysuns 发表于 2022-8-30 17:58
不应该啊,adb都连上了,你试试把127.0.0.1去掉,直接不通过nginx直接访问http://ip:48000呢 ...


试了一下,直接IP:48000访问也不行,
同样是空白页面,


前边的这些步骤都是直接复制的你的代码,

搞不懂哪里出错了,难道是因为我DD的纯净系统,


下图这里也是正常的,



作者: mmc199    时间: 2022-8-30 23:12
大佬,突然想起来,是不是手机浏览器打开不支持触屏。想手机用还得外接鼠标
作者: lightout    时间: 2022-8-30 23:28
mmc199 发表于 2022-8-30 23:12
大佬,突然想起来,是不是手机浏览器打开不支持触屏。想手机用还得外接鼠标 ...

支持触屏
作者: 皮皮大仙    时间: 2022-8-30 23:28
大佬能做一个包含所有的docker 嘛?run了就能打开web进安卓系统的那种(白**党不好意思的低下了头)
作者: 华盛顿    时间: 2022-8-30 23:42
本帖最后由 华盛顿 于 2022-8-30 23:47 编辑
emptysuns 发表于 2022-8-30 17:58
不应该啊,adb都连上了,你试试把127.0.0.1去掉,直接不通过nginx直接访问http://ip:48000呢 ...


经过多次尝试,上边所述的问题,已经解决了,

就是在你的第二篇文章,“启动redroid容器”,里的启动参数,增加一条你第一篇文章里的启动容器参数,“redroid.gpu.mode=guest \”,然后就正常了,打开网页有了安卓界面,


===============

然后现在又有一个问题,

在第二篇文章里,启动的容器是“redroid/redroid:8.1.0-latest”,安卓8.0,

怎么才能把网页端的安卓,换成你第一篇文章里的安卓13呢,

我看你的demo动图里就是13,但是代码里是8.1.0,

我把“redroid/redroid:8.1.0-latest”,改成,“redroid/redroid:13.0.0-latest”,后,


运行“用docker运行scrcpy-ws获得web端”的代码,



总是报下图的错,



作者: emptysuns    时间: 2022-8-31 00:14
华盛顿 发表于 2022-8-30 06:42
经过多次尝试,上边所述的问题,已经解决了,

就是在你的第二篇文章,“启动redroid容器”,里的启动参 ...

看着是iptables有问题了,你要是不会解决直接推倒重来一遍
作者: happy61    时间: 2022-8-31 00:36
之前我看一些群控,直接改rom,改scrpy,在里面增加了tcp链接。好像新版scrpy可以支持tcp远程链接而不用连接远程adb调试?
作者: 华盛顿    时间: 2022-8-31 00:46
emptysuns 发表于 2022-8-31 00:14
看着是iptables有问题了,你要是不会解决直接推倒重来一遍

解决不了
就这几个步骤,复制过来复制过去,只要换成13,就报错,过不去,

你demo里的13是怎么装的,就是“redroid/redroid:13.0.0-latest”这样就行了嘛
作者: mmc199    时间: 2022-8-31 01:01
华盛顿 发表于 2022-8-31 00:46
解决不了 ,
就这几个步骤,复制过来复制过去,只要换成13,就报错,过不去,

你上个开了没结束,已经把48000端口占了吧,你需要换一个端口?
作者: 华盛顿    时间: 2022-8-31 01:10
本帖最后由 华盛顿 于 2022-8-31 01:11 编辑
mmc199 发表于 2022-8-31 01:01
你上个开了没结束,已经把48000端口占了吧,你需要换一个端口?


不是的,并没有占端口,

就算换成其他端口,也一样报这个错,





反正这个网页端的,8.0就是没法换成“redroid/redroid:13.0.0-latest”,换了就报错
作者: mmc199    时间: 2022-8-31 01:21
本帖最后由 mmc199 于 2022-9-5 16:31 编辑
huanx 发表于 2022-8-29 20:30
想法有点深远


在手机浏览器不能像电脑一样用直接点到屏幕操作,需要一个模拟鼠标指针的apk  mouse-cursor-touchpad  , git上的scrcpy-web说是支持多点触控的,但是我没有成功。
https://m.apkpure.com/mouse-cursor-touchpad/com.alwys.visiblemosue/amp



碧蓝航线会闪退,lolm不会 ,等mjj解决  


进出游戏cpu都没有400%占满过,而且这个远控非常的节约带宽,动态画面效率和rdp一样高。
比我笔记本跑个模拟器挂机对电脑友好多了







作者: logo    时间: 2022-8-31 01:38
先mark再看
作者: flyqie    时间: 2022-8-31 02:23
happy61 发表于 2022-8-31 00:36
之前我看一些群控,直接改rom,改scrpy,在里面增加了tcp链接。好像新版scrpy可以支持tcp远程链接而不用连 ...

不一定必须scrpy,这种一般都是自己开发,加自定义功能比较方便。

改rom是必须的操作,总得写hal和加自定义配置吧?

AOSP真想搞项目的话肯定得改动代码。
作者: huang1dede    时间: 2022-8-31 10:47
挂极速版赚金币不错。。。。。。。。。搞搞搞
作者: qaz0a9    时间: 2022-8-31 10:52
华盛顿 发表于 2022-8-31 00:46
解决不了 ,
就这几个步骤,复制过来复制过去,只要换成13,就报错,过不去,

sudo rm -r /root/test/data
我是这个操作一下,再运行就可以
作者: 玉藻前    时间: 2022-8-31 12:18
感谢大佬分享。
最近用的https://app.webadb.com/scrcpy,webadb。就是不知道为啥只能usb投屏,还在研究怎么远程来着,就刷到这贴
作者: Myan    时间: 2022-8-31 12:29
博客怎么这么卡的?挖矿了么?
作者: emptysuns    时间: 2022-8-31 13:13
本帖最后由 emptysuns 于 2022-8-30 20:16 编辑
Myan 发表于 2022-8-30 19:29
博客怎么这么卡的?挖矿了么?


¯\_〳 •̀ o •́ 〵_/¯这个主题特效拉满就这样,你换成5950x就不卡了(乐),都什么年代了还整网页挖矿呢,费劲写文章的时间还没有我摸鱼赚的多呢,没必要嵌挖矿,再说也没几个人看能挣几个米。
作者: xhcj666    时间: 2022-8-31 13:24
ios有adb的客户端吗?
作者: 华盛顿    时间: 2022-8-31 17:17
本帖最后由 华盛顿 于 2022-8-31 17:20 编辑

求教楼主,Demo里的web版安卓13是怎么整的呀,

我把教程里,安卓8的代码,换成安卓13,




然后再执行,scrcpy-ws,的代码,





就会报下边这个错,
无论试多少次都是这样,
每次都DD全新的系统,应该不是系统环境和端口占用的问题,
8虽然能运行,但毕竟版本老了,


作者: emptysuns    时间: 2022-8-31 17:45
华盛顿 发表于 2022-8-31 00:17
求教楼主,Demo里的web版安卓13是怎么整的呀,

我把教程里,安卓8的代码,换成安卓13,

错误信息很清楚啊,你的iptables版本太低无法识别--dport参数,导致docker无法自动配置防火墙....
作者: Mr.lin    时间: 2022-8-31 17:49
牛逼
作者: 华盛顿    时间: 2022-8-31 18:27
本帖最后由 华盛顿 于 2022-8-31 18:37 编辑
emptysuns 发表于 2022-8-31 17:45
错误信息很清楚啊,你的iptables版本太低无法识别--dport参数,导致docker无法自动配置防火墙.... ...


具体得升到几呀,
之前是1.8.4,

搞到1.8.7,还是这个错误,

docker0: iptables v1.8.7 (nf_tables): unknown option "--dport"





这133个 Pulls,估计有一半,都是我 Pull 的

作者: happy61    时间: 2022-8-31 20:19
flyqie 发表于 2022-8-31 02:23
不一定必须scrpy,这种一般都是自己开发,加自定义功能比较方便。

改rom是必须的操作,总得写hal和加自 ...

嗯,只是我看他解包的确是把scrpy的搭进去了。在开机的时候,用root权限启动scrpy代替adb启动
作者: buspotato    时间: 2022-8-31 21:47
还是真机更好吧
作者: zhongziso    时间: 2022-8-31 23:52
mark
作者: 皮皮大仙    时间: 2022-9-1 22:14
华盛顿 发表于 2022-8-31 17:17
求教楼主,Demo里的web版安卓13是怎么整的呀,

我把教程里,安卓8的代码,换成安卓13,

我跟你一样的问题,我用的12也不行,你后来解决了吗?
作者: laoxong    时间: 2022-9-1 22:19
华盛顿 发表于 2022-8-30 23:42
经过多次尝试,上边所述的问题,已经解决了,

就是在你的第二篇文章,“启动redroid容器”,里的启动参 ...

Iptables 的问题
重启下Docker 和 Iptables试试
作者: 小旭    时间: 2022-9-1 22:20
yailone1 发表于 2022-8-29 20:12
强。几百台手机刷快手的时代过去了吗

UCLOUD已经做出来 TK批量养号
作者: 华盛顿    时间: 2022-9-2 10:58
皮皮大仙 发表于 2022-9-1 22:14
我跟你一样的问题,我用的12也不行,你后来解决了吗?

没有解决,

也不知道楼主demo里的13是怎么运行起来的
作者: 小二的cat    时间: 2022-9-2 20:49

你这网站真顶不住啊,直接把我这核显干满了
作者: 嘉然今天吃什么    时间: 2022-9-2 21:01
你这个博客太哈人了。我[email protected] CPU干到70%
作者: 我是傻瓜    时间: 2022-9-2 21:21
X86可以使用吗
作者: voysup    时间: 2022-9-2 21:24
嘉然今天吃什么 发表于 2022-9-2 21:01
你这个博客太哈人了。我 CPU干到70%

哈哈  这个主题是这样的  就是作者故意搞人的
作者: mmc199    时间: 2022-9-2 21:26
玉藻前 发表于 2022-8-31 12:18
感谢大佬分享。
最近用的https://app.webadb.com/scrcpy,webadb。就是不知道为啥只能usb投屏,还在 ...

请问web远程的搞懂了么,我想借助这个网站在手机上触屏使用
作者: voysup    时间: 2022-9-2 21:27
本帖最后由 voysup 于 2022-9-2 22:25 编辑
我是傻瓜 发表于 2022-9-2 21:21
X86可以使用吗



作者: mmc199    时间: 2022-9-2 21:28
本帖最后由 mmc199 于 2022-10-6 15:07 编辑
华盛顿 发表于 2022-8-31 18:27
具体得升到几呀,
之前是1.8.4,


先别开硬解,我13开硬解也报你这个错误了,而且给我iptables损坏了,,而且给我ashmem_linux,binderfs模块删没了,害我重新dd了系统,软解目前只有9不行,9加了软解参数,logcat看它还是在连硬解,导致错误,adb连不上

================

如果已经报了 iptables v1.8.4 (legacy):  -j DNAT unknown option "--to-destination" 错误,是直接开了安卓13导致了内核错误,只能先reboot。reboot即可恢复正常状态。
我多次尝试发现,运行安卓13的必须先运行一遍安卓8.1。不然100%触发这个bug,先安卓8.1再开13就一切正常。注意8.1和13的映射的data文件夹要分开,不然运行后会导致8.1没网,或者scrcpy无法访问软解显卡web屏幕页空白。

安卓9的包加软解参数,docker的sh里的logcat里看还是在尝试连硬解显卡,导致报错adb连不上。

docker: Error response from daemon: driver failed programming external connectivity on endpoint scrcpy-web (7b755240ca7231d006456cdd8b399faec61e23fe54b439987afcbd604d0783ed):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 48000 -j DNAT --to-destination 172.17.0.3:8000 ! -i docker0: iptables v1.8.4 (legacy): unknown option "--to-destination"
Try `iptables -h' or 'iptables --help' for more information.
(exit status 2)).

重安内核和iptables或ufw可用下面命令(不必要,reboot后,先运行8.1再运行13就不会报错。)
apt reinstall ufw
apt reinstall iptables
apt reinstall linux-image-`uname -r`
apt reinstall linux-headers-`uname -r`
apt reinstall linux-modules-`uname -r`
apt reinstall linux-modules-extra-`uname -r`
作者: 我是傻瓜    时间: 2022-9-2 21:29
voysup 发表于 2022-9-2 21:27
arm都可以   更别说X86了

看了,现在市面上的安卓app x86的太少了
作者: 小二的cat    时间: 2022-9-2 22:29
离谱了,先安装了安卓8,试了一下,再安装安卓13,发现adb安装的via在桌面不显示,然后再安装安卓8,发现自带的webview和自己安装的via都不能访问网络了,再安装安卓13又可以正常访问网络,每次都清掉了data文件夹的
作者: 小二的cat    时间: 2022-9-2 22:37
小二的cat 发表于 2022-9-2 22:29
离谱了,先安装了安卓8,试了一下,再安装安卓13,发现adb安装的via在桌面不显示,然后再安装安卓8,发现自 ...

原来安卓13是要向上滑一下打开应用抽屉,真出鬼了,不知道为什么再安卓8无法连接网络了
作者: 玉藻前    时间: 2022-9-2 23:38
mmc199 发表于 2022-9-2 21:26
请问web远程的搞懂了么,我想借助这个网站在手机上触屏使用

没有...我根据
https://github.com/yume-chan/ya-webadb/issues/349
设置了下chrome,生成app,并不能显示tcp链接的按钮...
甚至网页都没**常显示了
作者: 乌拉擦    时间: 2022-9-3 00:55

404不知什么原因
作者: mmc199    时间: 2022-9-5 15:17
本帖最后由 mmc199 于 2022-9-5 15:31 编辑
玉藻前 发表于 2022-9-2 23:38
没有...我根据
https://github.com/yume-chan/ya-webadb/issues/349
设置了下chrome,生成app,并不能显 ...


chrome 可能已关掉了这个功能 ,我用QQ浏览器成功了,因为qq浏览器官网现在是chromium版本94的  
右键创建快捷方式,在程序后面空格 加上这些参数,就能看到Direct Sockets TCP 了,ADB over WiFi 那栏是先给本地usb链接使用的,因为安卓11以下开发者模式里没有开启wifi调试的选项,但是通过命令可以打开。如果是帖子里的redroid不用管,因为已经是打开的了。

--enable-features=DirectSockets --restricted-api-origins=https://ya-webadb.vercel.app  

远程连接redroid时,一定要打开Use forward connection,不然会报下面两个错误

如果连本地手机都报Unable to claim interface. ,那是因为用scrcpy1.24或者其他工具时本地有驻留的adb进程把扫描手机已经占用了,需要任务管理器先关掉adb的后台。





























作者: mmc199    时间: 2022-9-5 16:20
本帖最后由 mmc199 于 2022-9-6 12:14 编辑
华盛顿 发表于 2022-8-31 01:10
不是的,并没有占端口,

就算换成其他端口,也一样报这个错,


如果已经报了 iptables v1.8.4 (legacy):  -j DNAT unknown option "--to-destination" 错误,是直接开了安卓13导致了内核错误,只能先reboot。reboot即可恢复正常状态。
我多次尝试发现,运行安卓13的必须先运行一遍安卓8.1。不然100%触发这个bug,先安卓8.1再开13就一切正常。注意8.1和13的映射的data文件夹要分开,不然运行后会导致8.1没网,或者scrcpy无法访问软解显卡web屏幕页空白。

安卓9的包加软解参数,docker的sh里的logcat里看还是在尝试连硬解显卡,导致报错adb连不上。

docker: Error response from daemon: driver failed programming external connectivity on endpoint scrcpy-web (7b755240ca7231d006456cdd8b399faec61e23fe54b439987afcbd604d0783ed):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 48000 -j DNAT --to-destination 172.17.0.3:8000 ! -i docker0: iptables v1.8.4 (legacy): unknown option "--to-destination"
Try `iptables -h' or 'iptables --help' for more information.
(exit status 2)).

重安内核和iptables或ufw可用下面命令(不必要,reboot后,先运行8.1再运行13就不会报错。)
apt reinstall ufw
apt reinstall iptables
apt reinstall linux-image-`uname -r`
apt reinstall linux-headers-`uname -r`
apt reinstall linux-modules-`uname -r`
apt reinstall linux-modules-extra-`uname -r`


作者: ecs    时间: 2022-9-7 05:36
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 全球主机交流论坛 (https://mjj.022333.xyz/) Powered by Discuz! X3.4