大部分内容引自网络,感谢相关作者。
这是最简单的方法,效率略低于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下载失败等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)