前言
在公司搞了个虚拟机,跑Linux系统,为了访问图形界面需要安装远程桌面,但是因为虚拟机不通外网,内部的yum源也没有对应的包可供安装,只能通过离线安装的方式操作了,这次选择xrdq
,也算是之前在树莓派上惯用的工具了。
默认以下所有操作均使用root权限进行。
使用iptables开放端口
由于受到安全管控,虚拟机默认关闭除SSH功能外的所有端口。为了能够顺利地上传安装包,咱们选择通过FTP,那么就要装vsftpd并开放对应端口(20、21),开放端口这里选择iptables
进行操作,相对比较方便。
使用yum
进行安装:
yum install -y iptables
yum install -y iptables-services
启动:
systemctl start iptables
systemctl enable iptables
查看状态:
systemctl status iptables
会显示:Active: active (exited)
,而不是running
,这是因为它在应用了防火墙规则之后就退出了。
编辑配置文件,将20、21端口添加进去,下一步的FTP需要:
vim /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p TCP --dport 20 -j ACCEPT
-A OUTPUT -p TCP --sport 20 -j ACCEPT
-A INPUT -p TCP --dport 21 -j ACCEPT
-A OUTPUT -p TCP --sport 21 -j ACCEPT
COMMIT
下次遇到想要开放只要照抄就可以了。
重启iptables使规则生效:
systemctl restart iptables
安装vsftpd
同样地,使用yum进行安装:
yum install -y vsftpd
启动:
systemctl start vsftpd
systemctl enable vsftpd
查看状态:
systemctl status vsftpd
通常情况下,配置文件在:/etc/vsftpd/vsftpd.conf
,先不动它,这个时候就可以用了。
咱们使用FileZilla,点击文件
-站点管理器
,创建一个新的站点,在常规
中:
- 协议:FTP - 文件传输协议
- 主机:主机的IP地址
- 端口:默认20/21,可以不填
- 加密:如果可用,使用显式的FTP over TLS
因为我这个虚拟机是有账户的,因此登录类型选择正常
,填入用户名/密码,点击连接
进行测试。
连接成功后,左侧是本地电脑所显示的文件,右侧则为远端服务器的文件,通常情况会定位在/home/{你的用户名}
的文件夹下。
离线安装xrdp
由于虚拟机不能通外网,咱们得自己下载下来之后上传然后编译安装:
http://downloads.sourceforge.net/project/xrdp/xrdp/0.6.0/xrdp-v0.6.0.tar.gz
下载该压缩文件,通过上一步的FileZilla上传到服务器,定位到文件所在目录。
解压:
tar -xzvf xrdp-v0.6.0.tar.gz
进入安装包目录:
cd xrdp-v0.6.0
安装几个依赖(我这里没有pam-devel
,但似乎不影响后续步骤):
yum install -y gcc
yum install -y pam-devel
yum install -y openssl-devel
yum install -y libtool
配置:
./bootstrap
./configure
如果提示有依赖包没有安装,那么就安装之后重新执行配置步骤,直到没有报错。
安装:
make
make install
由于默认的443端口属于高危端口,要规避,因此要改一下连接的端口:
cd /etc/xrdp
vim xrdp.ini
修改[globals]
中port
的值,我这里写了个6666。
新增端口需要到iptables的配置文件中添加放通规则:
vim /etc/sysconfig/iptables
在COMMIT
上方添加:
-A INPUT -p TCP --dport 6666 -j ACCEPT
-A OUTPUT -p TCP --sport 6666 -j ACCEPT
重启iptables使规则生效:
systemctl restart iptables
启动xrdp
:
./xrdp.sh start
测试xrdp
以Windows的远程桌面工具为例,点击Win
键打开开始菜单,输入远程桌面连接
,输入计算机名(就是IP地址:端口的形式,例如192.168.1.1:6666),暂时不需要用户名,点击连接,会出现login to xrdp
的选项。
Module默认,用户名和密码就按照登录的填写就好,点击OK即可。
坑
在测试的过程遇到了系统锁屏了,当我输入密码后点击Unlock就卡住了的问题,找了一圈都没有太多参考的例子。然后我自己尝试了重启xrdp、重启虚拟机、重装xrdp等等操作都还是一样的问题。
最后用root账号登录就可以直接跳过锁屏界面了,吓得我赶紧去把锁屏给关了。
总之就是很坑。