X11 转发

文章目录

  • 参考
  • 参与者与凭据
    • 情景1 : 桌面终端下打开firefox
    • 情景2 : ssh 终端下打开firefox
  • 情景1
    • 桌面终端下的 案例与DISPLAY
  • 情景2
    • 基于X11转发的ssh案例
    • ssh 终端下的 DISPLAY
  • 情景2 下 vim 慢的问题

参考

  • 什么是X11-forwarding?怎么使用?
  • 为什么X11转发如此低效?
  • 一次分析vim启动慢原因的经历

参与者与凭据

情景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 慢的问题

  • 情景 : ssh + vim + X11转发 实现 在 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   耗时,  支持拷贝

你可能感兴趣的:(杂七杂八总览,服务器,linux,X11,转发)