ssh tunneling应用案例-AWS EC2 vnc图形化桌面的支持

一般地,无论是AWS EC2还是阿里云的云主机,linux系统默认都只提供ssh登录方式。如果你是一个技术控,非常希望把图形化界面给折腾出来,这其中就不需有vnc server的支持,除此之外,还涉及到如vnc client如何和vnc server通信的问题。 有两个方案: 

1. 手工在安全组中开放更多的端口

2. 通过ssh隧道来桥接vnc client和server的通信链路

第一种方式非常容易理解,我们重点讨论第2种,也就是在不开放更多端口情况下,仅使用ssh的22端口来实现vnc连接

具体地,需要以下的步骤

1. 创建好aws ec2或者阿里云主机

2. 在windows客户端上安装Realvnc

3. ssh到ec2上执行以下命令(以ubutu为例子)安装vncserver及其依赖的组件

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal xfce4 vnc4server

4.启动vncserver,输入vnc password

随后编辑~/.vnc/xstartup文件并替换为以下内容:

#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

5. 重点来了,开启ssh的端口forwarding

ssh -L 5902:localhost:5902 -i amazon.pem ubuntu@ec2–5290172228.compute-1.amazonaws.com

再启动vncserver

vncserver -geometry 1340x750

需要注意的是,1340x750是指的我的windows桌面次寸。随后

6.使用Realvnc来连接localhost:5902并且输入上面已经设置过的pasword.(there is a correlation between them (eg. display 1 = vnc port 5901, 6001 and display 2 = vnc port 5902 etc)

 

https://medium.com/@Arafat./graphical-user-interface-using-vnc-with-amazon-ec2-instances-549d9c0969c5

 

posted @ 2019-07-02 14:56  世有因果知因求果  阅读(1142)  评论(0编辑  收藏  举报