全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 10951|回复: 58

【已更新】用docker运行Android web版远程桌面,浏览器访问

  [复制链接]
发表于 2022-8-29 20:00:09 | 显示全部楼层 |阅读模式
本帖最后由 emptysuns 于 2022-9-2 23:42 编辑

书接上贴
https://hostloc.com/thread-1065193-1-1.html

Demo:


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

更新:argo tunnel + workers授权方法,感谢ChenYFan https://hostloc.com/forum.php?mod=viewthread&tid=1069535
发表于 2022-8-30 23:42:43 | 显示全部楼层
本帖最后由 华盛顿 于 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端”的代码,



总是报下图的错,


发表于 2022-9-7 05:36:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-8-31 01:21:23 | 显示全部楼层
本帖最后由 mmc199 于 2022-9-5 16:31 编辑


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



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


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






发表于 2022-9-5 15:17:53 | 显示全部楼层
本帖最后由 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的后台。




























发表于 2022-9-2 21:28:04 | 显示全部楼层
本帖最后由 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-8-29 20:12:13 来自手机 | 显示全部楼层
强。几百台手机刷快手的时代过去了吗
发表于 2022-8-29 20:04:34 | 显示全部楼层
不错,马上安排抄袭。
发表于 2022-8-29 20:14:21 | 显示全部楼层
不卡吗 还能打王者 原神行吗
 楼主| 发表于 2022-8-29 20:19:20 | 显示全部楼层
ncnc 发表于 2022-8-29 03:14
不卡吗 还能打王者 原神行吗

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

想法有点深远
发表于 2022-8-30 08:59:26 来自手机 | 显示全部楼层
有人愿意5元借我玩一个小时吗?只是想跑下程序能不能正常使用
发表于 2022-8-30 10:14:04 | 显示全部楼层
楼主的干货太棒,墙裂精神上支持!!!
发表于 2022-8-30 17:08:09 | 显示全部楼层
本帖最后由 华盛顿 于 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;
    }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-7 06:43 , Processed in 0.091280 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表