vnc通过ssh隧道连接到Linux服务器

在deepin、ubuntu、Centos 8上测试通过。

约定

sshname表示在.ssh/config里的名字,可以是IP地址。
注:测试用的服务器的sshname都为L1707

服务器

debian系:

sudo apt install tightvncserver

Centos 8:

sudo yum install tigervnc-server.x86_64
vncserver
searchstar@L1707:~$  vncserver

You will require a password to access your desktops.

Password: 
Warning: password truncated to the length of 8.
Verify:   
Would you like to enter a view-only password (y/n)? n

New 'X' desktop is L1707:1

Creating default startup script /home/searchstar/.vnc/xstartup
Starting applications specified in /home/searchstar/.vnc/xstartup
Log file is /home/searchstar/.vnc/L1707:1.log

客户端

先构建ssh隧道,其语法如下

ssh -g -L xxxx:ip:5901 sshname

个人理解:其原理是ssh登陆到sshname这台服务器,然后以这台服务器为视角,在本地的xxxx端口和ip:5901端口之间转发数据。相当于这两个端口变成了一个端口。

对于我们的情况,命令这样写:

ssh -g -L 5901:localhost:5901 sshname

这样就把服务器自己的5901端口映射到本地的5901端口了。

然后保持这个shell不动,另开一个shell,打开vncviewer:

sudo apt install xtightvncviewer
vncviewer localhost:1

在这里插入图片描述
就是任务栏没了。。。

如果需要在终端中执行GUI程序,先查看DISPLAY环境变量是否已经设置了:

echo $DISPLAY

如果输出不为空,就可以直接在终端中执行GUI命令了:
在这里插入图片描述
如果输出为空说明没有设置,可以手动设置一下:

export DISPLAY=:1

然后执行GUI命令后窗口就会显示在之前打开的桌面上。

xclock

在这里插入图片描述

关闭vncserver

vncserver -kill :1

参考文献

http://www.zsythink.net/archives/2450
https://blog.csdn.net/cuma2369/article/details/107668471

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 SSH 隧道中使用 VNC,您需要执行以下步骤: 1. 在远程 Linux 机器上安装并启动 VNC 服务器。您可以使用 TightVNC 或 TigerVNCVNC 服务器。 2. 在您的本地计算机上打开终端,并使用以下命令通过 SSH 连接到远程 Linux 机器: ``` ssh -L <local-port>:localhost:<remote-port> <username>@<remote-IP-address> ``` 其中 `<local-port>` 是您本地计算机上用于 VNC 连接的端口号,例如 5901;`<remote-port>` 是远程 Linux 机器上 VNC 服务器监听的端口号,例如 5901;`<username>` 是您在远程 Linux 机器上的用户名;`<remote-IP-address>` 是远程 Linux 机器的 IP 地址。 3. 输入您的密码以进行身份验证。 4. 现在,您已经通过 SSH 连接到远程 Linux 机器,并且已经通过 SSH 隧道将本地计算机的端口号映射到远程 Linux 机器上的端口号。 5. 在本地计算机上打开 VNC 客户端,并连接到 `localhost:<local-port>`。 6. 输入您在远程 Linux 机器上设置的 VNC 访问密码。 7. 现在,您可以在本地计算机上看到远程 Linux 机器的桌面环境了。 请注意,通过 SSH 隧道使用 VNC 可以提供更安全的连接,因为所有数据都是通过加密的 SSH 通道传输的。但是,由于数据需要在本地计算机和远程 Linux 机器之间传输,因此可能会对性能产生影响。此外,如果您需要与多个远程 Linux 机器建立 VNC 连接,则需要设置不同的本地端口号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值