前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux centos 安装GNOME Desktop 桌面和 vnc远程-虚拟化KVM

linux centos 安装GNOME Desktop 桌面和 vnc远程-虚拟化KVM

原创
作者头像
eisc
修改2021-03-05 10:13:40
5.7K0
修改2021-03-05 10:13:40
举报
文章被收录于专栏:linux 自动化运维
代码语言:javascript
复制
#!/bin/bash
repo="/etc/yum.repos.d/epel-7.repo"
if [ ! -e $repo ]; then                 # -e 判断文件存在;参考:Shell if 条件判断文件或目录
yum install -y wget
cd /etc/yum.repos.d/
mkdir bak
mv * bak
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
                                        # 移动两个文件到 目录
#wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
#sed -i  's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
                                        # yum源没有对应版本包匹配;修改yum为centos7
yum clean all                           # 清除原有缓存
yum makecache                           # 生成新的缓存
                                        # make cache [meɪk]  [kaʃ]  制作 缓存{ka xi}
yum  list                               # 校验yum
cd
else 
echo "yum已经切换"
fi

###############  安装 vnc ##############

yum groupinstall -y "GNOME Desktop"     # 安装GNOME Desktop图形桌面服务
yum install -y tigervnc-server          # 安装vnc
systemctl get-default                   # 查看系统运行模式
systemctl set-default graphical.target  # 切换到桌面模式运行
init 5                                  # 启动桌面模式

ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
                                        # 设置桌面运行模式为默认启动模式
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
                                        # 设置vnc用systemctl来管理(第一个用户vncserver@:1.service,第二个用户vncserver@:2.service,其他以此类推)
vncset="/etc/systemd/system/vncserver@:1.service.back"          
if [ ! -e  $vncset ]; then
echo "正在备份文件" ; cp /etc/systemd/system/vncserver@:1.service /etc/systemd/system/vncserver@:1.service.back
else
echo "备份文件存在"
fi
cat /dev/null > /etc/systemd/system/vncserver@:1.service										
cat > /etc/systemd/system/vncserver@:1.service << "EOF"
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target
EOF
										# 修改vnc用户为root(其他系统用户也可以这样改)
										
										
										
										
systemctl daemon-reload					# 刷新systemctl
echo "设置vnc密码(第二个用户修改密码,vncpasswd user2,其他以此类推)"
vncpasswd


vncset="/etc/sysconfig/vncservers"			
if [ ! -e  $vncset ]; then
echo "正在备份文件" ; cp /etc/sysconfig/vncservers /etc/sysconfig/vncservers.back
else
echo "备份文件存在"
fi
cat /dev/null > /etc/sysconfig/vncservers
cat > /etc/sysconfig/vncservers <<"EOF"
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768 -BlacklistTimeout 0"

EOF
# 修改vnc黑名单限制,否则会出现vnc客户端连接不上的情况(/etc/sysconfig/vncservers)

firewall-cmd --zone=public --add-port=5901/tcp --permanent
                                        # 防火墙放行端口(vnc端口第一个用户5901,创建第二个用户5902,其他以此类推)
firewall-cmd --add-service vnc-server   # 防火墙放行vnc服务    
firewall-cmd --reload                   # 放行好端口和服务,重启防火墙才能生效
firewall-cmd --list-port                # 查看端口是否放行成功
systemctl daemon-reload                 # 刷新
systemctl start vncserver@:1.service    # 启动vnc
#启动,关闭,重启vnc
#systemctl start vncserver@:1.service       #启动
#systemctl stop vncserver@:1.service        #关闭
#systemctl restart vncserver@:1.service     #重启

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档