CentOS7:在ECS上搭建xfce+vnc+firefox的实现

前言

最近在研究项目时,需要在ECS/VPS上搭建一套环境来进行远程操作,通过这几天的重新学习和分析,发现大部分朋友在操作这些项目时都是使用256M/512M的低配机器,然而现在的Firefox越做越大,占用的内存越来越多,故考虑使用轻量级桌面环境xfce和启用2倍内存的SWAP文件来简单缓解下服务器内存紧张的问题。

购买ECS

国内的朋友可以考虑阿里云/腾讯云/华为云一类的厂商,具体的我只用过阿里云,长期使用下来各方面表现还不错,学生机给的内存也大。

现在的轻量应用服务器貌似比ECS划算,大家可以试试。
传送门:https://www.aliyun.com/minisite/goods?userCode=ku8y5qvg

安装Xfce

上面的大家看看就好,不要冲动,我身边好多朋友一冲动就买了好多个VPS,然后放着吃灰。。。

安装epel-release

在安装Xfce之前,我们要先安装epel-release包

[root@localhost ~]# yum install epel-release -y

[user@localhost ~]$ sudo yum install epel-release -y

sudo提权的,还需要输入当前用户密码(PS:当前用户需要在sudo文件内或在wheel组内才可以哦)

安装 “X Window Environment”

安装Xfce

首先,我们通过这条命令确定Xfce在yum里的安装名称:

[root@localhost ~]# yum grouplist
Available Environment Groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Cinnamon Desktop
   MATE Desktop
   Basic Web Server
   Virtualization Host
   Server with GUI
   GNOME Desktop
   KDE Plasma Workspaces
   Development and Creative Workstation
Available Groups:
   Cinnamon
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Educational Software
   Electronic Lab
   Fedora Packager
   General Purpose Desktop
   Graphical Administration Tools
   Haskell
   LXQt Desktop
   Legacy UNIX Compatibility
   MATE
   Milkymist
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
   TurboGears application framework
   Xfce
Done

我们在列表的最后找到了Xfce,通过以下命令进行安装:

[root@localhost ~]# yum groupinstall Xfce -y

安装完成后进入下一步。

安装VNC

这里VNC服务器选择tigervnc-server。

[root@localhost ~]# yum install tigervnc-server -y

安装完成后进行配置:
1、复制一份[email protected]到/etc/init.d目录下,并修改名称。

[root@localhost ~]#   cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

2、配置vncserver@:1.service

[root@localhost ~]#   vi /etc/systemd/system/vncserver@:1.service

把里面的 < USER > 改为需要配置远程访问的用户名,这里以root为例。

#源文件
[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  -c "/usr/bin/vncserver %i"
PIDFile=/home//.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target
#修改后
[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=/home/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

设置远程访问密码

通过vncpasswd设置当前用户的VNC访问密码

[root@localhost ~]# vncpasswd
Password:(输入你的密码)
Verify:(再输入一遍)
Would you like to enter a view-only password (y/n)? n(不需要只读访问远程桌面的选“n”)
A view-only password is not used

systemctl重加载

[root@localhost ~]# systemctl daemon-reload

修改当前用户的xstartup

[root@localhost ~]# vi ~/.vnc/xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
startxfce4 &

启动vncserver

[root@localhost ~]# vncserver :1

修改防火墙设置(或禁用防火墙)

修改防火墙以允许VNC数据通过

[root@localhost ~]# systemctl enable firewalld
[root@localhost ~]# systemctl start firewalld
[root@localhost ~]# firewall-cmd --add-service=vnc-server --permanent
[root@localhost ~]# firewall-cmd --reload

或停用防火墙(不建议)

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

安装Firefox

这里直接通过epel仓库获取firefox就好了。

[root@localhost ~]# yum install firefox -y

调整SWAP

以我正在使用的服务器1U512M10GSSD为例。
通过VNC连接到服务器后,打开Firefox已经很卡了,查看内存使用情况可知:

[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           486M        386M        7.5M        9.1M         93M         78M
Swap:             0           0           0

内存使用基本可以说已经用尽了,现在我们引入SWAP缓解下内存使用压力。

创建swap文件

一般在云服务器上很难调整硬盘分区结构,故使用swap文件来代替swap分区。

[root@localhost ~]# dd if=/dev/zero of=/home/swapfile bs=1k count=1000000
[root@localhost ~]# chmod 600 /home/swapfile
[root@localhost ~]# chown root:root /home/swapfile
[root@localhost ~]# mkswap /home/swapfile
[root@localhost ~]# swapon /home/swapfile

如此一来,已经配置好swap文件并启用了(临时),现在来看看内存占用。

[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           486M        305M          9M         23M        171M        144M
Swap:          976M        384M        592M

虽然内存占用依旧恐怖,但已经可以明显看到,SWAP文件已经帮忙存储了一些数据,在使用体验上也有些许改进。

开机自动启用swapfile文件

由于swapfile文件不像swap分区一样不怎么变动,故而我更倾向于把开机启动swap写在rc.local而不是fstab。

[root@localhost ~]# echo "swapon /home/swapfile" >> /etc/rc.d/rc.local
[root@localhost ~]# chmod +x /etc/rc.d/rc.local

DONE.

你可能感兴趣的:(CentOS)