您现在的位置是:首页 >技术杂谈 >X11 转发网站首页技术杂谈

X11 转发

__pop_ 2024-08-28 12:01:03
简介X11 转发

参考

参与者与凭据

情景1 : 桌面终端下打开firefox

桌面终端下打开firefox // 与 x11转发 无关
    X11 client
    X11 server
firefox <--A--> X11 server
    A 是 桌面终端 下的 DISPLAY 的值 , 要与 X11 server 的 log 对应 // 用户需要关注,可以修改默认值达到其他效果

情景2 : ssh 终端下打开firefox

ssh 终端下 打开firefox  // 基于 x11转发 的应用
    X11 client & X11 server
    ssh client & ssh server // ssh client 和  ssh server 都要配置 X11转发
	
	firefox <--A--> ssh server <--C--> ssh client <--B--> X11 server
	
    A 是 ssh 得到的终端下的 DISPLAY 的值 , 由sshd 自动分配  , 用户无需关注
    B 是 ssh client(例如 secure CRT ) 设置的 DISPLAY 的 值 , 要与 X11 server 的 log 对应 // 用户需要关注,可以修改默认值达到其他效果
    C 可以是用户密码,也可以是 秘钥

情景1

桌面终端下的 案例与DISPLAY

在桌面终端打印出来是DISPALY=:0.0  // 对应情景1 的凭据A
然后firefox , firefox 就在 当前桌面下 打开了 

export DISPLAY=10.37.30.85:0.0 // 在ssh终端下不能这样用
然后firefox , firefox 就在 10.37.30.85 的桌面下 打开了

情景2

基于X11转发的ssh案例

"windows X11 server"
	DISPLAY=127.0.0.1:0.0  // server 的配置,凭据B 向这里 对齐

windows secure CRT 
    开启x11转发
    DISPLAY=127.0.0.1:0.0  // 对应情景2的凭据B  

windows secure CRT  ssh centos
$ echo $DISPLAY 
localhost:12.0  // 对应情景2的凭据A   
	// 这个是 sshd 分配的. // sshd 要配置 X11Forwarding yes
$firefox
    show in "windows X11 server"

ssh 终端下的 DISPLAY

  • ssh服务器配置X11转发,客户端X11转发打开 , ssh得到的终端 下的 DISPLAY变量
DISPLAY …,它的格式是DISPLAYhost:NumA.NumB
    在第一个ssh终端 DISPLAY=localhost:12.0 // 只有 在 secure CRT 设置 X11转发 时 ,该变量才存在。否则为空
    在第二个ssh终端 DISPLAY=localhost:13.0 // 在ssh下,
    ...

  • ssh服务器配置X11转发,客户端X11转发关闭 , ssh得到的终端 下的 DISPLAY变量
[suweishuai@matlab02 linux-5.4]$ echo $DISPLAY  // 得到的为空

情景2 下 vim 慢的问题

参考 : https://blog.nowcoder.net/n/8042a45543e2453a8a933ce9fa764a7f
	// 在 局域网下 一点都感觉不到慢
	// 要是经过互联网ssh ,就感觉慢了
用 vim --startuptime tmp.txt ~/.vim/vimrc 评估时间
set clipboard=exclude:.* // 该句确实可以缩短时间,但是会丢失 该功能 : 在 vim 中拷贝到系统粘贴板的功能
set clipboard=unnamed    // 该句可以重拾该功能,但是慢。 而且该句必须在 vim启动时加载,功能才有效
  • 解决方案
vim 的配置文件中 ~/.vim/vimrc
	set clipboard=exclude:.*
新建一个配置文件~/.vim/vimrc_copy
	set clipboard=unnamed
新建一个 可执行脚本文件 , 名为vimc
vim -u ~/.vim/vimrc_copy $@
--------------------------------
vim  不耗时,不支持拷贝
vimc   耗时,  支持拷贝
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。