Windows与Linux相互远程桌面连接

一、概述

远程桌面连接是系统管理和日常运维中的重要工具。通常,我们使用VNC远程连接Linux系统,使用Windows自带的远程桌面连接Windows系统。本文将详细介绍如何在Linux中远程连接Windows,以及在Windows中远程连接Linux,实现跨平台远程桌面访问。

本文以CentOS 6.6为例,其他Linux发行版的操作类似,可根据实际情况调整。

二、Windows远程桌面连接Linux

2.1 环境准备

检查GNOME桌面环境

1
2
# 检查是否已安装GNOME桌面
rpm -qa | grep gnome-desktop

说明:如果查询结果中未显示gnome-desktop,则需要安装GNOME图形界面。

安装GNOME桌面环境

1
2
# 安装GNOME桌面环境
yum -y groupinstall "X Window System" "Chinese Support" "Desktop"

2.2 安装和配置VNC Server

安装VNC Server

1
2
# 安装VNC Server
yum -y install tigervnc-server

配置VNC Server

1
2
3
4
5
6
7
8
# 复制配置文件模板
cp /usr/share/doc/tigervnc-server-1.1.0/example-config/vncserver@.service /etc/systemd/system/

# 编辑配置文件
vim /etc/systemd/system/vncserver@.service

# 修改配置文件中的用户设置
# 将<USER>替换为实际用户名

设置VNC密码

1
2
# 设置VNC连接密码
vncpasswd

2.3 配置防火墙

1
2
3
4
5
6
# 放行VNC端口(5900-5905)和RDP端口(3389)
iptables -I INPUT -p tcp --dport 5900:5905 -j ACCEPT
iptables -I INPUT -p tcp --dport 3389 -j ACCEPT

# 保存防火墙规则
service iptables save

注意:实际放行的VNC端口需要根据配置进行调整。

2.4 安装xrdp服务

安装EPEL仓库

1
2
# 安装EPEL仓库
yum -y install epel-release

安装xrdp

1
2
# 安装xrdp
yum -y install xrdp

配置xrdp

1
2
3
4
5
# 编辑xrdp配置文件
vim /etc/xrdp/xrdp.ini

# 修改显示设置
max_bpp=32

启动xrdp服务

1
2
3
4
5
# 设置xrdp开机自启
chkconfig xrdp on

# 启动xrdp服务
service xrdp start

离线安装选项:如需离线安装,可访问http://www.rpmfind.net/下载适合系统的xrdp RPM包,然后使用以下命令安装:

1
rpm -ivh xrdp-0.6.1-5.el6.x86_64.rpm

2.5 测试连接

在Windows系统中使用远程桌面连接工具,输入Linux服务器的IP地址进行连接测试。

三、Linux远程桌面连接Windows

3.1 环境准备

  1. Linux端:确认已安装GNOME图形桌面环境
  2. Windows端:配置允许远程桌面连接
  3. 防火墙配置:在Windows防火墙中放行远程桌面端口(默认3389)

3.2 安装远程连接工具

1
2
3
# 安装远程桌面客户端
yum -y install rdesktop
yum -y install tsclient

3.3 配置连接

  1. 在Linux系统中打开应用程序Internet终端服务器客户机
  2. 点击Add Connection,选择Windows Terminal Service
  3. 填写连接信息:
    • Name:连接名称
    • Host:Windows主机IP地址
    • Username:Windows用户名
    • Password:Windows密码

注意:如果Windows远程桌面端口不是默认的3389,填写格式为IP:端口

3.4 建立连接

保存配置后,在主界面双击刚才保存的会话配置即可建立连接。

四、Linux远程桌面连接Linux

4.1 环境准备

  1. 本地Linux:确认已安装GNOME图形桌面环境
  2. 远程Linux:安装并配置VNC Server
  3. 防火墙配置:在远程Linux防火墙中放行VNC端口(默认5900+连接ID)

4.2 安装远程连接工具

1
2
3
# 安装VNC客户端
yum -y install vnc
yum -y install tsclient

4.3 配置连接

  1. 在Linux系统中打开应用程序Internet终端服务器客户机
  2. 点击Add Connection,选择VNC
  3. 填写连接信息:
    • Name:连接名称
    • Host:远程Linux主机IP地址和连接ID(格式:IP:连接ID
    • Password:VNC密码

4.4 建立连接

保存配置后,在主界面双击刚才保存的会话配置即可建立连接。

五、全屏模式退出方法

5.1 Linux远程Linux

  • 按下F8键,弹出VNC菜单
  • 点击”Exit Viewer”或取消”Full Screen”选项

5.2 Linux远程Windows

  • 使用组合键Ctrl + Alt + Enter退出全屏模式

六、常见问题与解决方案

6.1 登录失败错误

问题现象:输入正确的用户名和密码,但登录时提示”xrdp_mm_process_login_response: login failed”

查看日志

1
vim /var/log/xrdp-sesman.log

日志内容

1
2
3
4
[20181107-09:17:36] [INFO ] scp thread on sck 7 started successfully
[20181107-09:17:36] [INFO ] ++ created session (access granted): username root, ip x.x.x.x:57714 - socket: 7
[20181107-09:17:36] [INFO ] starting Xvnc session...
[20181107-09:17:36] [ERROR] X server -- no display in range is available

原因分析:超过最大连接数限制

6.2 解决方案

方案一:清理现有连接并调整配置

1
2
3
4
5
6
7
8
9
10
11
# 清理现有xrdp进程
ps -ef | grep xrdp | grep -v grep | awk '{print $2}' | xargs kill -9

# 编辑配置文件
vim /etc/xrdp/sesman.ini

# 修改最大会话数
MaxSessions=100

# 重启服务
service xrdp restart

方案二:优化会话管理配置

1
2
3
4
5
6
7
8
9
10
# 编辑配置文件
vim /etc/xrdp/sesman.ini

# 修改以下配置
MaxSessions=10
KillDisconnected=1
IdleTimeLimit=1800

# 重启服务
service xrdp restart

七、安全建议

7.1 端口安全

  1. 修改默认端口,避免使用3389和5900等常见端口
  2. 使用防火墙限制访问源IP
  3. 定期检查端口扫描和异常连接

7.2 认证安全

  1. 使用强密码策略
  2. 考虑使用SSH隧道加密连接
  3. 定期更换连接密码

7.3 会话管理

  1. 设置合理的会话超时时间
  2. 及时清理闲置会话
  3. 监控异常登录行为

八、总结

通过本文介绍的方法,可以实现Windows与Linux系统之间的相互远程桌面连接,为跨平台系统管理提供了便利。关键要点包括:

  1. Windows连接Linux:需要安装xrdp和VNC Server
  2. Linux连接Windows:使用rdesktop或tsclient工具
  3. Linux连接Linux:使用VNC客户端
  4. 故障排除:关注连接数限制和配置参数

在实际使用中,建议根据具体需求和安全要求,调整配置参数和连接方式,确保远程连接的安全性和稳定性。


注意事项

  1. 本文基于CentOS 6.6编写,其他版本可能需要调整命令
  2. 生产环境中建议使用更安全的连接方式,如SSH隧道
  3. 定期更新相关软件包,修复安全漏洞