公司不让用虚拟机,要用 windows + 安全管理软件 ,但可以 申请 远程 虚拟机环境 ,我平时都是用 i3wm+ archlinux 开发 ,i3wm 切换程序 窗口很方便 ,所以想到 用 本机 win+ 远程 虚拟机 archlinux 的 开发模式
alacritty , xkeysnail , webstorm , goland ,chrome 等等
xkeysnail 是用来映射按键的 ,好让我盲打 编程中常用的符号,现在 已经离不开了,具体可以看 V2EX 如何打符号的帖子
i3wm 基本没有配置 就配置了 个 i3 status bar ,改了 快捷键 也没有装 sddm 登录软件 ,目前 arch 的启动流程是
安装 了 xrdp tigervnc 两个软件 ,然后 启动 xrdp 服务
在 windows 下 打开 mstsc , 输入 linux 的 ip , 会进入一个 蓝色 的背景页面
会有 session , username ,和 password 三个 表格 字段
session 有 xorg , xvnc ,vnc-any , neutrinordp-any 4 个选项
其中 使用 xorg 选项 输入 用户名密码后 , 就还是一样的蓝背景 ,过一会 说 连接拒绝之类的 ,无法 远程
选择 xvnc 选项,输入用户名密码后, 可以 进 远程 的 i3wm 桌面
选择 vnc-any 和 neutrinordp-any 后 ,都提示要 输入 ip port 和 密码 ,但是我看 对应的端口号 我应该是没有起来 ,所以 输入了 也是黑屏 ,这两个方法 先放弃
使用 xvnc 方式 远程连接 i3wm 后 ,正常的 webstorm , chrome 软件 都能打开 ,但是 alacritty 却打不开了 ,还好我还有别的 terminal 备用 , 我打开 了 cool-retro-term 终端 然后输入 alacritty
报错为
$ alacritty
thread 'main' panicked at 'Failed to initialize any backend! Wayland status: NoCompositorListening X11 status: XOpenDisplayFailed', /build/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.26.1/src/platform_impl/linux/mod.rs:619:9
note: run with RUST_BACKTRACE=1
environment variable to display a backtrace
然后 我又尝试启动 xkeysnail 按键 映射软件 ,也无法打开 ,报错为
Traceback (most recent call last): [8/4707]
File "/usr/lib/python3.10/site-packages/Xlib/support/unix_connect.py", line 119, in get_socket
s = _get_unix_socket(address)
File "/usr/lib/python3.10/site-packages/Xlib/support/unix_connect.py", line 98, in _get_unix_socket
s.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/lib/python3.10/site-packages/Xlib/support/unix_connect.py", line 123, in get_socket s = _get_tcp_socket(host, dno) File "/usr/lib/python3.10/site-packages/Xlib/support/unix_connect.py", line 93, in _get_tcp_socket s.connect((host, 6000 + dno)) ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/bin/xkeysnail", line 6, in <module> cli_main() File "/usr/lib/python3.10/site-packages/xkeysnail/init.py", line 62, in cli_main eval_file(args.config) File "/usr/lib/python3.10/site-packages/xkeysnail/init.py", line 6, in eval_file exec(compile(file.read(), path, 'exec'), globals()) File ".config.py", line 4, in <module> from xkeysnail.transform import * File "/usr/lib/python3.10/site-packages/xkeysnail/transform.py", line 16, in <module> def get_active_window_wm_class(display=Xlib.display.Display()): File "/usr/lib/python3.10/site-packages/Xlib/display.py", line 89, in init self.display = _BaseDisplay(display) File "/usr/lib/python3.10/site-packages/Xlib/display.py", line 71, in init protocol_display.Display.init(self, *args, **keys) File "/usr/lib/python3.10/site-packages/Xlib/protocol/display.py", line 89, in init self.socket = connect.get_socket(name, protocol, host, displayno)
File "/usr/lib/python3.10/site-packages/Xlib/support/connect.py", line 87, in get_socket return mod.get_socket(dname, protocol, host, dno) File "/usr/lib/python3.10/site-packages/Xlib/support/unix_connect.py", line 127, in get_socket raise error.DisplayConnectionError(dname, str(val)) Xlib.error.DisplayConnectionError: Can't connect to display ":0": [Errno 111] Connection refused
alacritty 和 xkeysnail 在正常的 linux + i3wm 都能打开的
远程 使用 xvnc 的方式 却打不开 ,感觉是 因为 xserver 的环境 变了么 ?
1
ScepterZ 2022-07-22 10:10:16 +08:00
如果 vsc 能搞定就用 vsc 吧,现在 vsc remote 用的多就是因为它是在太简单了,啥都不用配置就能用,虽然功能稍微弱点,但是勉强能接受
|
3
ProPh3t 2022-07-22 10:29:49 +08:00
Can't connect to display ":0" 两个问题看起来都是一个问题,即连接不到 DISPLAY:0,可以看看 VNC 下环境变量 DISPLAY 是不是 0 ,从这里排查.
|
4
975779964 OP @ProPh3t 我设置了 DISPLAY=:0 后 ,然后 再次根据 报错提示 设置 环境变量 ,最后 报的错 是 这个
$ alacritty thread 'main' panicked at 'Failed to initialize any backend! Wayland status: XdgRuntimeDirNotSet X11 status: XOpenDisplayFailed', /build/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.26.1/src/platform_impl/linux/mod.rs:619:9 stack backtrace: 0: 0x55608278545f - <unknown> 1: 0x55608263957c - <unknown> 2: 0x556082758fb4 - <unknown> 3: 0x5560827877ba - <unknown> 4: 0x556082788702 - <unknown> 5: 0x556082788212 - <unknown> 6: 0x556082788186 - <unknown> 7: 0x556082788142 - <unknown> 8: 0x556082464f92 - <unknown> 9: 0x5560825dd4bf - <unknown> 10: 0x55608247ffe3 - <unknown> 11: 0x5560825d62c3 - <unknown> 12: 0x7fc3bbc29290 - <unknown> 13: 0x7fc3bbc2934a - __libc_start_main 14: 0x556082470d35 - <unknown> 15: 0x0 - <unknown> 先不提 alacritty ,这个 有别的命令行 terminal 替代 , 请问 按键映射 有对应的替代么? 或者 xkeysnail 这个 报错 有办法 解决么 ? |
5
muxueqz 2022-07-22 10:51:32 +08:00
|
7
975779964 OP @ProPh3t 我在 linux 下是 直接 sudo systemctl enable --now xrdp 这样的就 没有管了 ,然后 在 win 下 是 用 mstsc 然后 有即个选项 ,我选择的是 xvnc 然后 输入用户名和密码就好了
|
8
975779964 OP @muxueqz 我刚下载 了 x2go ,然后我想按 win+d 启动 程序 ,结果 直接 触发 win 的快捷键了, 请问 怎么 设置 不让触发 win 的快捷键呢 ?
|
9
haoliang 2022-07-22 11:23:25 +08:00
我有过一次使用经验是,忘了是远程桌面还是 docker 化 chromium ,需要 xhost 的加持,具体命令忘了。楼主可以搜索下。
|
10
iamzuoxinyu 2022-07-22 11:42:25 +08:00
> 我刚下载 了 x2go ,然后我想按 win+d 启动 程序 ,结果 直接 触发 win 的快捷键了, 请问 怎么 设置 不让触发 win 的快捷键呢
@975779964 这个只能改 i3 的 leader key 了,你要习惯了 windows 键的位置,可以先在 windows 下将 win 键通过注册表重新映射成 alt 或其它,然后在 i3 里将 leader key 改成 alt 。 > 其中 使用 xorg 选项 输入 用户名密码后 , 就还是一样的蓝背景 ,过一会 说 连接拒绝之类的 ,无法 远程 或许是防火墙的问题?改下 ssh xforward 权限? 另外可以试试用 vcxsrv ,直接 ssh -X 做转发。 |
11
muxueqz 2022-07-22 11:52:45 +08:00
|
12
MaxTan 2022-07-22 11:58:31 +08:00
直接用 VcXsrv 或者 mobaxterm 自带的 x11 server
不过这样 wm 的 modkey 就不能用 win 键了,需要另外设定 |
13
zer 2022-07-22 13:32:42 +08:00
nomachine 远程试过么?
|
14
whitegerry 2022-07-22 13:44:51 +08:00
同 archlinux + i3wm ,用的 xrdp ,没有配置过 tigervnc 。
alacritty 可以打开 |
15
whitegerry 2022-07-22 13:46:33 +08:00
xkeysnail 没有用过,另外远程连接用的是 xorg 。
|
16
975779964 OP @whitegerry 你是怎么联上的呢? 我 虚拟机 装了 xrdp 和 tigervnc ,但是 远程 以 xorg 的方式 连 是 无法 连上的
|
17
whitegerry 2022-07-22 14:06:23 +08:00
@975779964 xrdp 安装参考了这个 gist 里的步骤: https://gist.github.com/GregaVrbancic/71f8e9891f4f70032a9e5882a88839ce ,
|
18
yaoyao1128 2022-07-22 14:23:49 +08:00 via iPhone
如果用 xorg 的话 archwiki 有说
Xorg backend To use xorgxrdp instead for the backend, install the xorgxrdpAUR package. Add allowed_users=anybody to /etc/X11/Xwrapper.config to allow anybody to start an X server. 之后建议看下现在所在的 display 号码 有时候分配的不一定是 0 |
19
zocome 2022-07-22 15:11:33 +08:00
mark ,同想用 xrdp 远程 arch+i3
|
20
beginor 2022-07-22 21:51:22 +08:00 via Android
搭车问一下,这样的 x11 用起来卡卡的,是不是没有硬件加速呢?
我记得微软的 hyperv 装 Linux 之后也是用 xrdp ,但是速度很快,非常流畅。 |
21
secondwtq 2022-07-23 12:25:24 +08:00
VNC 连接如果是用 VNC 自己的 X Server 的话,是不能使用 GPU 的,alacritty 整个就是绕着 GPU 加速做的,自然不能用
|
22
basncy 2022-07-26 12:32:39 +08:00
1. xrdp xvnc 前端 rdp(对应 mstsc), 后端 vncserver(比如 127.0.0.1:5900)
2. xrdp xorg 前端 rdp(对应 mstsc), 后端是 /usr/lib/Xorg. 跟那些半吊子教程讲的 ssh Xforward 有半毛钱关系. 3. anydesk, 有人试过吗?效果怎样. |
23
whitegerry 2022-08-20 10:30:14 +08:00
@beginor xrdp 的硬件加速几乎等于没有,还是靠 cpu 。现在主力 nomachine ,因为笔记本是 hidpi 的屏,i3 设置好 hidpi ,又能 gpu 加速,使用体验比 xrdp 好多了。
|
24
whitegerry 2022-08-20 10:32:11 +08:00
一台物理机和一个 pve 的虚拟机都是 arch+i3 ,都有显卡加速,主力 nomachine ,备用 xrdp 。
|
25
whitegerry 2022-09-08 13:34:41 +08:00
@beginor xrdp 也可以用 gpu 加速,这两天弄出来了
|
26
975779964 OP @whitegerry 我现在尝试了 nomachine ,他也不能 转发 我的 按键呢, 导致 xkeysnail 映射不成功
https://bbs.archlinuxcn.org/viewtopic.php?id=12716 我现在 特别 想要一个能 支持 xkeysnail 映射的 远程 软件 |
27
beginor 2022-09-09 09:07:20 +08:00
@whitegerry 怎么弄,有教程么?
|
28
whitegerry 2022-09-09 09:20:42 +08:00
@beginor 也不需要什么教程,arch 安装 xrdp 和 xorgxrdp-glamor 或者 nvidia 那个包就好了,client 可以用 freerdp 测试,参数 /gfx:AVC444
|
29
beginor 2022-09-09 14:42:37 +08:00 via Android
可惜 Ubuntu 没有这个包,另外这样能用微软远程桌面么?
|
30
whitegerry 2022-09-23 09:35:40 +08:00
@beginor 这两天又试了一下,linux 做 host, 核显 uhd610, 没有 parsec, 就用的 sunshine, 客户端安装 moonlight, 体验下来确实非常丝滑,就像在本机一样,比 parsec 的体验还好一点,这是没想到的。一直喜欢用的 nomachine 瞬间感觉就差了一大截。
我在办公室连家里,带宽设置 8Mbps, 画面质量和锐利度都很稳定。之前在家局域网用 windows 测试 parsec 的时候画面颜色和锐利度质量都会变。 |
31
beginor 2022-09-23 21:59:00 +08:00 via Android
@whitegerry 好吧,老哥你真能折腾。我还是 xrdp 凑合用吧
|
32
hanssx 2022-10-13 09:41:57 +08:00
@975779964 楼主搞定了没,nomachine 有个问题是快捷键优先使用 host(控制端)的,好像还没办法设置
@whitegerry linux 做 host 是作为控制端吗? xrdp 用 gpu 加速能用 windows 的 mstsc.exe 连接吗? |
33
whitegerry 2022-10-13 14:24:31 +08:00
@hanssx mstsc.exe 链接也可以用 gpu 加速,建议关闭 linux 端的 composer ,不然会有延时。
linux 做 host 指它作为服务端,控制端在客户机这边。 |
34
975779964 OP @hanssx 搞定不了 ,这几款 远程快捷键应该都是用的 host(控制端) 的, 导致我 xkeysnail 按键映射不了 ,我现在放弃 了,我 目前的方案是 使用 win10 安装 虚拟机 linux , 然后 另一台电脑 win10 用 mstsc ,远程 这台 win10 ,然后 使用 虚拟机 linux 写代码, 这样他的按键 映射是 好用的
|
35
hanssx 2022-10-13 21:44:57 +08:00
@whitegerry linux 的 composer 不会是 php 那个 composer 吧? sunshine 就是 moonlight 吧,有空试试。
@975779964 这样有点难受,我是用 nomachine ,也就 windows 那几个快捷键会占用,实在冲突的改一下也能用。 |
36
hanssx 2022-10-13 23:42:11 +08:00
刚试了下,用 vnc 5900 端口那个作为 xrdp 是可以全局在 linux 下操作的,但是画面流畅度太低,应该是没法用或者没开硬件加速的原因。
|
37
whitegerry 2022-10-14 06:15:18 +08:00 via iPhone
@hanssx 不是,是合成器,比如 i3 用的 picom 那种。
|
38
whitegerry 2022-10-14 06:16:40 +08:00 via iPhone
@hanssx linux host 用 sunshine ,客户端用 moonlight 。
|
39
whitegerry 2022-10-14 06:19:47 +08:00 via iPhone 1
@hanssx xrdp 硬件加速是走 xorg 的,如果走 vnc 不如直接 realvnc ,那个是硬件加速的,效果跟 nomachine 类似,快捷键的问题我忘了 realvnc 是什么情况。
|
40
975779964 OP @whitegerry 我 arch i3wm 下载了 sunshine ,然后 sudo sunshine ,配置好后,win10 下载了 moonlight 远程过去发现鼠标键盘都不能动是为什么呀? 你有没有遇到过,是怎么解决的?
|
41
icepie 355 天前
sunshine 不需要 sudo 吧
|