termux转发X桌面和音频

termux转发X桌面和音频,第1张

大部分内容引自网络,感谢相关作者。

这是最简单的方法,效率略低于adb转发。

手机proot安装系统完毕后,在容器系统中启动ssh服务器,PC端不能通过密码验证的原因是用户PAM验证,在 /etc/sshd_config 的配置文件中简单禁用PAM即可。同时保证 /dev/pts 目录的写入权限,sshd需要它。同时要知道termux只能自由使用8000以上端口,默认ssh端口是8022,登录同时转发X:

在较早时候,ssh转发音频很简单,只需要执行下列命令:

本质上,就是将音频输入设备(REMOTE)连接到音频输出设备(LOCAL),流块大小为1Kb。

当我们使用alsamixer命令时,按下F6键,我们可以看到系统拥有的所有声卡。

还可以使用下列命令:

如果还要获得其它设备的连接,就需要重新启动一个ssh会话:

或者使用ffmpeg:

hw:3 指要录音的设备(可以使用 arecord -l 命令得到,也可以使用设备名,使用 arecord -L 获得,获得系统默认设备 arecord -L | grep sysdefault )。

如果没有alsa支持,那么这么做:

plughw:3 同样由 arecord 找出来的。

mplayer也木有可以使用ffplay(只是ffmpeg的一部份):

现代发行版基本都使用PulseAudio来控制硬件设备,因此,当PulseAudio运行时,使用 plughw:2 会失败。一般情况下,使用PulseAudio默认的就可以了,可以采用 pavucontrol 命令选择输入源。

PC端配置Pulseaudio服务器,首先安装paprefs工具来配置网络音频访问,然后在服务端 /etc/pulse/defaultpa 文件中插入一行语句:

有些情况下,pulseaudio不读取默认文件,则需要手动载入模块。

可能需要打开防火墙相应(默认4713)端口。

可以通过以下命令查看运行的X Server桌面号:

传统上,X Server监听TCP 6000端口,可能需要再防火墙打开该端口,现在系统启动时加了 -nolisten tcp ,需要去掉这个选项。在使用gdm3的系统中,可以修改 /etc/gdm3/daemonconf 文件:

DisallowTCP=false ,然后重启gdm3。

客户端需要设置 $DISPLAY 变量,指向服务器的地址,例如:

出于一般的安全考虑,默认不允许直接访问X,需要使用 xhost 命令添加客户端,例如:

由于上层存在不同的窗口管理器,可能还需要修改相应的配置方式。

Xauth是半安全连接,远程服务器直接访问本地X Server会被阻止。因此需要设置Xauth。

Xauth显示规范采用了一种称为"magic cookie"的证书方式,客户端需要提交这个"cookie"给服务端。

Xauth默认配置使用环境变量 $XAUTHORITY 指向的文件或者用户目录下的 Xauthority 文件。

如果要编辑指定Xauthority文件,则执行 xauth -f xxx 命令。

另外一种ssh方式混合秘钥:

检查是否能显示于本地机器:

xclock -display IP:桌面号

默认情况下,XServer关闭tcp端口,因此需要重开一个Xorg。

linuxmint mate下:

按ctrl+alt+f1打开一个tty,启动一个Xorg:

X其实是一个Xorg命令的封装脚本。

按ctrl+alt+f7回已登录桌面,虚拟终端下启动一个mate-session:

这里要使用dbus作为进程间通信服务,否则无法正常启动mate桌面。

如果没有错误,按ctrl+alt+f8就可以看到mate桌面已经启动了。

打开新开桌面的虚拟终端,基于IP验证登录:

如需重启后仍然生效,需要写入/etc/X[n]hosts文件,其中n为桌面号。

查看是否监听了6001端口,如果桌面号是2,XServer会在6002端口监听。以此类推。

可以看到XServer对6001端口监听了。

最后在防火墙打开6001端口,允许数据进入。

最后在客户机正常设置$DISPLAY变量即可。

如果不新开X,那么需要确定使用的桌面管理器,比如lightdm和gdm,如果是lightdm,修改 /etc/lightdm 下X启动相关配置文件,其中加入字段:

查看使用什么窗口管理器,可以查看下X服务器的进程:

gdm则添加如下字段:

然后可能还要修改 /etc/X11/xinit/xserverrc :

默认情况下监听6000端口。

还有一种xhost关闭安全验证的简写方法:

即默认允许所有客户机访问。

X-Server与X-Client之间的远程通信使用TCP方式, 在实际测试中发现X-Server和X-Client在同一个局域网内才能连接成功, X-Client连接NAT后的X-Server的话是不能成功的 看来这协议是’NAT敏感’的 解决方法通常是使用SSH隧道。

还有一个内容, 那就是XDM(X-Display-Manager), 他使用的是XDMCP协议, 走UDP177端口 以后有机会再补充这块内容。

为解决刚说的’NAT敏感’问题 我们常常使用SSH隧道上的端口转发功能来绕过问题。

远端上的X-Client应用程序访问其本地SSH-Server开启的转发监听端口PORT1, SSH-Server将其在Port1在监听接入的数据通过已经建立好连接的SSH隧道转发到我们本地的SSH-Client, SSH-Client再将数据转发到本地X-Server所监听的TCP端口PORT2。

以PORT1为6010, PORT2为6002为例, 其SSH隧道建立及开启转发功能的连接命令为:

ssh有个简洁的-X参数能自动根据环境配置以上转发参数及远端SSH终端的DISPLAY环境变量 可以自行翻阅文档查看详情,这功能需要在SSH-Server开启’X11 Forwarding’选项,

这样一来就避开了’NAT敏感’的问题, 从X-Client看来他只是访问本地的X-Server, 从X-Server看来他只是接入本地的X-Client, 所有X层面上看到的IP都是127001。

同时这个做法避开了X-Security的xauth远程主机验证,因为都认为是本地主机的访问,只需允许本地访问即可。

大概是速度最快的方式。

所谓UDS,即“Unix domain socket”,即IPC,socket原本用于网络通讯,后来在其框架构建了一种IPC(inter-process communication),即称UDS。

NAMESPACE_RESERVED :就是initc中/dev/socket/下建立的socket文件。

NAMESPACE_FILESYSTEM:普通命名空间。

NAMESPACE_ABSTRACT:虚拟命名空间。

adb reverse 使用方法查阅帮助文档即可。

显示端执行:

然后远程端设置好 DISPLAY 的桌面号,即可正常显示:

有疑问可参考前面描述的内容。

效率最高,整个手机都可以镜像投屏,树莓派可以使用lazycast,延迟可控制在300毫秒。pc端scrcpy(非miracast),低传输率下100毫米延迟。其它实现没有使用过。

使用ssh协议

建议在连接WiFi时设置静态ip即主机号

连接Termux使用端口号8022

示例中用户名为u0_a444

设置用户密码

开启ssh

①连接

②用户身份验证

把用户名和密码填了

1

在termux使用pkg install python,显示 package ‘python’ is not available,but is referred to by anothoer package This may mean that the package is Misssing,has been obsolete,or is only available from another source E:Package ‘python’ has no installation candidate

参考

可能是我替换成清华源出了问题。 发现原来是清华源路径写错了,deb 后多加了[archall,arm],删掉即可

2

然后安装了ohmyzsh进行终端配色,在~中使用命令vim zshrc来设置主题。 但是有些字符不能显示,猜测是因为缺少某个库。 参考 我猜是缺少powerline fonts,进行安装: 安装失败,又出现了不能locate的问题。 参考 解决:因为第一次安装不全,重新执行命令安装一次成功。

3

用anLinux应用辅助安装不带桌面的Ubuntu系统在termux上。

4

安装mysql。 参考

5

发生E:unable to locate package pkg。这种错误一般是源错误,解决方法是换源 参考

我的是Ubuntu1804LTS,替换了源依然没有解决,网上说是源的版本可能有问题,但我确实是到清华源官网选择了相应版本。依然报404 not found [IP:地址]

6 键盘输入问题

方法一

从左向右滑动,显示隐藏式导航栏,长按左下角的KEYBOARD

方法二

使用Termux快捷键:音量++Q键

常用快捷键

Ctrl键是终端用户常用的按键 – 但大多数触摸键盘都没有这个按键。为此,Termux使用音量减小按钮来模拟Ctrl键。

例如,在触摸键盘上按音量减小+ L发送与在硬件键盘上按Ctrl + L相同的输入。

Ctrl+A -> 将光标移动到行首

Ctrl+C -> 中止当前进程

Ctrl+D -> 注销终端会话

Ctrl+E -> 将光标移动到行尾

Ctrl+K -> 从光标删除到行尾

Ctrl+L -> 清除终端

Ctrl+Z -> 挂起(发送SIGTSTP到)当前进程

音量加键也可以作为产生特定输入的特殊键

以上就是关于termux转发X桌面和音频全部的内容,包括:termux转发X桌面和音频、局域网Xshell连接Termux、install-nethunter-termux下载失败等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9834741.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存