【带你去你不知道的地方】之七:CentOS Linux 7 安装 GNOME 桌面 + RDP 和 VNC 远程登录 —— 隐藏您的真实 IP

在上两篇文章中,我们提到了 Google 反代站通用反代站,他们目前各有各的限制,比如想使用 Gmail 该怎么呢?这就是本篇文章要解决的问题。

您只需要租一台服务器,远程登录上去就可以使用该服务器隐藏您的真实 IP 了。

0 、租赁服务器:

Windows 远程登录还是比较容易的,在此不做过多赘述。本篇文章主要讨论 CentOS Linux 7 操作系统如何配置远程登录,本篇文章将以云主机厂商搬瓦工为例。

注意:

  • 该云主机厂商可匿名注册账号,无需实名认证;
  • 除信用卡支付以外,目前已支持微信支付和支付宝支付;
  • 这里这里均可领取 6 % OFF 的优惠码;
  • 搬瓦工的服务器价格便宜,双核 CPU + 1 GB 物理内存 + 20 GB SSD 硬盘 + 一个月 1100 GB 的流量限制,一年仅需 49.99 美金,再加上 6 % 的优惠,根据现在的汇率计算,折合人民币一年约 320 元;
  • 搬瓦工的服务器不提供 Windows 操作系统,仅提供主流的 Linux 操作系统(如 CentOS 、Ubuntu 和 Debian )。

如下图所示,Ricky 在搬瓦工租赁了一台 20G KVM VPS 。如果您资金充裕建议租赁 40G KVM VPS ,毕竟 20G KVM VPS 只有 1 GB 的物理内存,对于图形界面来说还是比较吃紧的。这里需要说明的是,搬瓦工基于 OpenVZ 的 CentOS Linux 7 服务器在安装 GNOME 桌面后网卡就 GG 了,不过现在搬瓦工也没有基于 OpenVZ 的服务器可以租赁了,全部都是基于 KVM 的了。

20G KVM VPS
20G KVM VPS

1 、重装系统:

如下图所示,进入服务器管理界面,我们需要将服务器的操作系统重装为 centos-7-x86_64 ;选中 “ centos-7-x86_64 ” ,再在 “ I agree that all existing data on my VPS will be lost .  ” 处打勾,然后点击 “ Reload ” 。默认的操作系统是 centos-7-x86_64-bbr ,带有 BBR 的 Linux Kernel 版本比较高(目前是 5.x ),目前在使用 yum 安装 GNOME 桌面时会装不上,提示 rpm 包有冲突啥的,所以要换成 longterm 版本的 Linux kernel(也就是 3.x )。

更换操作系统
更换操作系统

紧接着会跳转至如下界面,这里显示了新的 SSH 端口号和新的 root 密码:

新的 SSH 端口号和新的 root 密码
新的 SSH 端口号和新的 root 密码

如下图所示,服务器开机后,Ricky 这里使用 SecureCRT( Windows 版MacOS 版 )来 SSH 登录这台服务器:

使用 SecureCRT 来 SSH 登录这台服务器
使用 SecureCRT 来 SSH 登录这台服务器

2 、配置防火墙:

注意:CentOS Linux 7 自带的防火墙是 firewalld ,但本例中使用的是 iptables 防火墙,您习惯用哪个就用哪个。搬瓦工的 CentOS Linux 7 服务器,防火墙默认都是关闭的,无论是 firewalld 还是 iptables 。

firewalld 防火墙常用命令如下所示:

# 查看 firewalld 防火墙是否在运行:
systemctl status firewalld.service

# 查看 firewalld 防火墙是否开机自启动:
systemctl is-enabled firewalld.service

# 不允许 firewalld 防火墙开机自启动:
systemctl disable firewalld.service

# 查看firewalld 防火墙已放行的端口:
firewall-cmd --zone=public --list-ports

# 关闭 firewalld 防火墙:
systemctl stop firewalld.service

现在我们先来安装来自阿里云的 EPEL 源,然后再安装 iptables 防火墙:

[root@desktop ~]# yum -y install wget
[root@desktop ~]# wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@desktop ~]# yum clean all
[root@desktop ~]# yum makecache
[root@desktop ~]# yum -y install iptables

并配置防火墙(请根据实际需要进行相应地修改):

[root@desktop ~]# echo '#!/bin/bash

iptables -F

iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

#---SSH---
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport XXXX -j ACCEPT

#---RDP---
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3389 -j ACCEPT

#---VNC---
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT

#---PING---
iptables -A INPUT -p icmp -m state --state NEW -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited' > /root/firewall.sh

其中 XXXX 为 SSH 的端口号,如 22 。

如果您只允许特定 IP 地址来访问 SSH 的 XXXX 端口、RDP 的 3389 端口和 VNC 的 5901 端口,可以这么配置(请根据实际需要进行相应地修改):

[root@desktop ~]# echo '#!/bin/bash

iptables -F

iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

#---SSH---
iptables -A INPUT -s YYYY -p tcp --dport XXXX -j ACCEPT

#---RDP---
iptables -A INPUT -s YYYY -p tcp --dport 3389 -j ACCEPT

#---VNC---
iptables -A INPUT -s YYYY -p tcp --dport 5901 -j ACCEPT

#---PING---
iptables -A INPUT -p icmp -m state --state NEW -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited' > /root/firewall.sh

其中 XXXX 为 SSH 的端口号,如 22 ;YYYY 为要放行的 IP 地址或者 IP 地址段,如 8.8.8.8/32 或者 192.168.1.0/24 。

设置脚本的访问权限并执行脚本,再设置开机自启动即可:

[root@desktop ~]# chmod a+x /root/firewall.sh
[root@desktop ~]# sh /root/firewall.sh
[root@desktop ~]# echo 'sh /root/firewall.sh' >> /etc/rc.local

[root@desktop ~]# chmod +x /etc/rc.d/rc.local
[root@desktop ~]# chmod +x /etc/rc.local

3 、更新系统:

更新完毕后建议使用 reboot 命令重启一下服务器:

[root@desktop ~]# yum -y update
[root@desktop ~]# reboot

4 、安装 GNOME 桌面:

重启完成后,安装 GNOME 桌面:

[root@desktop ~]# yum groupinstall "X Window System" "GNOME Desktop" -y

下面这条命令是将操作系统的默认启动方式改为从图形界面启动,Ricky 个人觉得没有必要,默认从命令行启动就可以了,RDP 或者 VNC 远程登录再用图形界面就好:

[root@desktop ~]# systemctl set-default graphical.target

将默认启动方式改为从命令行启动,需使用下面这条命令(默认就是从命令行启动,无需执行):

[root@desktop ~]# systemctl set-default multi-user.target

5 、增加 Swap 交换分区的容量:

使用命令 free -m 我们可以看到,这台服务器物理内存只有 1 GB ,Swap 交换分区只有 259 MB(相当于 Windows 上的虚拟内存,即把一部分硬盘空间当做内存来使用;如需了解 free -m 命令的更多内容,请点击这里):

[root@desktop ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1006          68         284           5         653         745
Swap:           259           1         258
[root@desktop ~]#

对于图形界面来说,只有 1 GB 物理内存显然是不够用的,随便用 Firefox 浏览器打开几个网页物理内存就要消耗掉几百 MB 了。如果您资金充足,大可购买配置更高的服务器;如果资金不够怎么办呢?那就增加 Swap 交换分区的容量,凑合着用。

此时 Ricky 打算再把 2GB 的硬盘空间划给 Swap 交换分区,具体命令如下所示:

[root@desktop ~]# dd if=/dev/zero of=/swap1 bs=1M count=2048

设置交换分区文件:

[root@desktop ~]# mkswap /swap1

启动 Swap :

[root@desktop ~]# swapon /swap1

设置开机时自动启动 Swap 交换分区:

echo '/swap1 swap swap defaults 0 0' >> /etc/fstab

我们现在使用命令 free -m 来看一下,Swap 交换分区的容量已经加大了:

[root@desktop ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1006          70          64           5         871         764
Swap:          2307           1        2306
[root@desktop ~]#

重启后再看看,没有问题:

[root@desktop ~]# reboot

重启后:

[root@desktop ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1006          94         722           7         190         754
Swap:          2307           0        2307
[root@desktop ~]#

6 、配置 RDP :

先安装 XRDP ,然后启动 XRDP 服务,并将 XRDP 服务设置为开机自启动:

[root@desktop ~]# yum -y install xrdp
[root@desktop ~]# systemctl start xrdp.service
[root@desktop ~]# systemctl enable xrdp.service

我们怎么知道 XRDP 服务启动成功了呢?可使用如下命令查看服务的状态:

[root@desktop ~]# systemctl status xrdp.service
● xrdp.service - xrdp daemon
   Loaded: loaded (/usr/lib/systemd/system/xrdp.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-06-21 04:06:38 EDT; 28s ago
     Docs: man:xrdp(8)
           man:xrdp.ini(5)
 Main PID: 3772 (xrdp)
   CGroup: /system.slice/xrdp.service
           └─3772 /usr/sbin/xrdp --nodaemon

Jun 21 04:06:38 desktop systemd[1]: Started xrdp daemon.
Jun 21 04:06:38 desktop xrdp[3772]: (3772)(139810483972544)[INFO ] starting xrdp with pid 3772
Jun 21 04:06:38 desktop xrdp[3772]: (3772)(139810483972544)[INFO ] listening to port 3389 on 0.0.0.0
[root@desktop ~]#

也可以使用如下命令查看 XRDP 服务是否有在监听相关端口( RDP 默认使用 3389 端口,与 Windows 一致):

[root@desktop ~]# netstat -ntlp | grep xrdp
tcp        0      0 127.0.0.1:3350          0.0.0.0:*               LISTEN      3771/xrdp-sesman    
tcp        0      0 0.0.0.0:3389            0.0.0.0:*               LISTEN      3772/xrdp           
[root@desktop ~]#

因为我们的防火墙已经放行了 3389 端口,所以我们现在尝试使用 RDP 来远程登录这台服务器。

以 Windows 7 操作系统为例,先按 Windows 微标键 + R ,输入 mstsc ,然后点击 “ 确定 ”(如下图所示):

快速启动 Windows 远程桌面连接
快速启动 Windows 远程桌面连接

接着会打开如下窗口,输入您服务器的 IP 地址,然后点击 “ 连接 ”:

Windows 远程桌面连接
Windows 远程桌面连接

接着在如下窗口输入您 CentOS Linux 7 的 root 账号和密码:

输入您 CentOS Linux 7 的 root 账号和密码
输入您 CentOS Linux 7 的 root 账号和密码

登录后就可以看到 GNOME 桌面了:

GNOME 桌面
GNOME 桌面

打开 Firefox 浏览器,访问 Gmail 自然也是没有问题的了:

访问 Gmail
访问 Gmail

至此,RDP 远程登录配置完毕。

7 、配置 VNC :

先安装 tigervnc-server :

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

Ricky 建议创建一个新的 Linux 账号用于 VNC 登录(这里创建的 Linux 账号名称为 vnc ),并设置 VNC 登录密码:

[root@desktop ~]# adduser vnc
[root@desktop ~]# su vnc
[vnc@desktop root]$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
[vnc@desktop root]$

接下来需要将 VNC 默认的配置文件复制一份到系统目录 /etc/systemd/system/ 中:

[vnc@desktop root]$ exit
[root@desktop ~]# cp /lib/systemd/system/vncserver@.service  /etc/systemd/system/vncserver@:1.service

在 @ 后面的数字 1 表示的是显示界面的序列号,对应的端口是 port 5900 + 序列号。对于每一个启动的 VNC 服务,端口号 5900 会自增 1 。

我们先来看一下这份配置文件,如下两处地方需要进行修改,需要将其替换为刚刚创建的 Linux 账号名称:

[root@desktop ~]# cat /etc/systemd/system/vncserver@\:1.service
# The vncserver service unit file
#
# Quick HowTo:
# 1. Copy this file to /etc/systemd/system/vncserver@.service
# 2. Replace <USER> with the actual user name and edit vncserver
# parameters appropriately
# (ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
# PIDFile=/home/<USER>/.vnc/%H%i.pid)
# 3. Run `systemctl daemon-reload`
# 4. Run `systemctl enable vncserver@:<display>.service`
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, you should
# limit connections to the local host and then tunnel from
# the machine you want to view VNC on (host A) to the machine
# whose VNC output you want to view (host B)
#
# [user@hostA ~]$ ssh -v -C -L 590N:localhost:590M hostB
#
# this will open a connection on port 590N of your hostA to hostB's port 590M
# (in fact, it ssh-connects to hostB and then connects to localhost (on hostB).
# See the ssh man page for details on port forwarding)
#
# You can then point a VNC client on hostA at vncdisplay N of localhost and with
# the help of ssh, you end up seeing what hostB makes available on port 590M
#
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
#
# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer' manual page.


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

[Install]
WantedBy=multi-user.target
[root@desktop ~]#

可使用如下命令进行替换:

[root@desktop ~]# sed -i "s#^ExecStart=/usr/sbin/runuser -l <USER>#ExecStart=/usr/sbin/runuser -l vnc#g" /etc/systemd/system/vncserver@\:1.service
[root@desktop ~]# sed -i "s#^PIDFile=/home/<USER>#PIDFile=/home/vnc#g" /etc/systemd/system/vncserver@\:1.service

重新运行系统 systemd 的初始化程序以便使新的配置文件生效,然后启动 tigervnc-server 服务,并将 tigervnc-server 服务设置为开机自启动:

[root@desktop ~]# systemctl daemon-reload
[root@desktop ~]# systemctl start vncserver@:1
[root@desktop ~]# systemctl enable vncserver@:1

我们怎么知道 tigervnc-server 服务启动成功了呢?可使用如下命令查看服务的状态:

[root@desktop ~]# systemctl status vncserver@:1
[0m vncserver@:1.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2019-06-22 03:00:29 EDT; 20s ago
 Main PID: 31750 (Xvnc)
   CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
           31750 /usr/bin/Xvnc :1 -auth /home/vnc/.Xauthority -desktop desktop:1 (vnc) -fp catalogue:/etc/...

Jun 22 03:00:26 desktop systemd[1]: Starting Remote desktop service (VNC)...
Jun 22 03:00:29 desktop systemd[1]: Started Remote desktop service (VNC).
[root@desktop ~]#

也可以使用如下命令查看 tigervnc-server 服务是否有在监听相关端口( VNC 默认使用 59XX 端口):

[root@desktop ~]# netstat -ntlp | grep vnc
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      31750/Xvnc          
tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN      31750/Xvnc          
tcp        0      0 127.0.0.1:5910          0.0.0.0:*               LISTEN      3943/Xvnc           
tcp6       0      0 :::5901                 :::*                    LISTEN      31750/Xvnc          
tcp6       0      0 :::6001                 :::*                    LISTEN      31750/Xvnc          
tcp6       0      0 ::1:5910                :::*                    LISTEN      3943/Xvnc           
[root@desktop ~]#

此时强烈建议重启一下服务器:

[root@desktop ~]# reboot

因为我们的防火墙已经放行了 5901 端口,所以我们现在尝试使用 VNC Viewer 来远程登录这台服务器。

先下载 VNC Viewer ,以 64 位 Windows 操作系统为例,先选择 “ Standalone EXE x64 ” ,然后点击 “ Download VNC Viewer ”(如下图所示):

下载 VNC Viewer
下载 VNC Viewer

如下图所示,Standalone EXE 版本的 VNC Viewer 无需安装,直接运行即可使用;在输入框输入 ” IP 地址:端口号 ” ,然后回车即可连接服务器:

VNC Viewer
VNC Viewer

这里只需要输入密码就可以了,无需输入账号,因为 5901 端口已经和名为 “ vnc ” 的 Linux 账号绑定在一起了:

VNC Viewer
VNC Viewer

如下图所示,成功连接上了!

GNOME 桌面
GNOME 桌面

不过你可能会发现画质不太好,所以我们需要调整一下。如下图所示,右键单击这台服务器,选择 “ Properties ” :

VNC Viewer
VNC Viewer

如下图所示,再选择 “ Options ” 选项卡,将 “ Picture quality ” 设置为 “ High ” ,然后点击 “ OK ” 即可:

VNC Viewer
VNC Viewer

再连接一次,画质清晰了好多:

GNOME 桌面
GNOME 桌面

上 Gmail 自然也是轻轻松松:

访问 Gmail
访问 Gmail

至此,VNC 远程登录配置完毕。

8 、痕迹清理:

痕迹清理是非常简单的:在您需要清理痕迹的时候,将操作系统重装掉即可。

9 、更换 IP :

搬瓦工更换 IP 是需要收费的,具体更换 IP 的页面请点击这里

欢迎享用。

 

本篇文章欢迎转载,转载无需注明出处。

如有疑问,欢迎在下方留言;如本文有什么错误,欢迎在下方留言指正,谢谢。

这篇文章对你有帮助吗?

相关文章

发表评论?

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据