简介
机房内部有Windows机器,但是网络上不能直接与Windows的系统ip相通,此时需要一个跳板机来中转远程桌面。
目前已有的办法:
1、可以使用WindowsServer自带的远程桌面服务来中转管理需求,但是只有6个月的试用,需要购买。
2、通过端口映射,指定跳板机的端口,来映射不同的机器。不过增加了运维工作量,需要维护一个对应关系表,记住端口和机器的对应关系。
xrdp是一个很好的选择,基于Linux系统,只做中转工作。除了中转windows的远程桌面,还可以中转vnc和其它服务,有兴趣的可以自行学习
实验环境
CentOS7.4(Infrastructure Server)
实验步骤
一、编译安装NeutirnoRDP
1. 配置yum源
需要安装base源、epel源和nux-dextop源,这是我的配置方式,可根据自己机器的实际情况配置。
仅供参考:
[root@liuxin-test01 ~]# wget -O /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@liuxin-test01 ~]# wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@liuxin-test01 ~]# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
[root@liuxin-test01 ~]# ls /etc/yum.repos.d/
Centos-7.repo epel-7.repo nux-dextop.repo
2. 安装软件
在编译安装过程中依赖到的软件全部安装上。这里是我在安装过程中遇到的,并整理出来的安装包。如果你在安装过程中遇到一些依赖包,可以根据提示把需要的安装包安装上
[root@liuxin-test01 ~]# yum install gcc git cmake openssl-devel libX11-devel libXext-devel libXinerama-devel libXcursor-devel libXdamage-devel libXv-devel libxkbfile-devel alsa-lib-devel cups-devel ffmpeg-devel libXrandr-devel freerdp
3. 在家目录下安装NeutrinoRDP
[root@liuxin-test01 ~]# cd
[root@liuxin-test01 ~]# git clone https://github.com/neutrinolabs/NeutrinoRDP.git
编译时需要的一些.h文件,这里我全部拷贝过去,以防编译出错
[root@liuxin-test01 ~]# cp -r /usr/include/ffmpeg/* /root/NeutrinoRDP/include/
编译安装
[root@liuxin-test01 ~]# cd NeutrinoRDP/
[root@liuxin-test01 NeutrinoRDP]# cmake -DWITH_FFMPEG=OFF .
[root@liuxin-test01 NeutrinoRDP]# make && make install
[root@liuxin-test01 NeutrinoRDP]# cd
二、编译安装XRDP并且带有NeutirnoRDP模块
1. 安装软件
[root@liuxin-test01 ~]# yum install autoconf automake libtool pam-devel freerdp fuse-devel nasm
2. 安装XRDP
[root@liuxin-test01 ~]# echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig' >>~/.bashrc
[root@liuxin-test01 ~]# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
[root@liuxin-test01 ~]# echo /usr/local/lib >> /etc/ld.so.conf.d/neutrinordp.conf
[root@liuxin-test01 ~]# ldconfig
[root@liuxin-test01 ~]# git clone git://github.com/neutrinolabs/xrdp
[root@liuxin-test01 ~]# cd xrdp/
[root@liuxin-test01 xrdp]# ./bootstrap
[root@liuxin-test01 xrdp]# ./configure --enable-neutrinordp
[root@liuxin-test01 xrdp]# make && make install
[root@liuxin-test01 xrdp]# cd
3. 配置XRDP
[root@liuxin-test01 ~]# xrdp-keygen xrdp auto
[root@liuxin-test01 ~]# cp /etc/xrdp/xrdp.sh /etc/init.d/
[root@liuxin-test01 ~]# chkconfig --add xrdp.sh
[root@liuxin-test01 ~]# service xrdp.sh start
Starting: xrdp and sesman . . .
[root@liuxin-test01 ~]# netstat -tunpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 127.0.0.1:3350 0.0.0.0:* LISTEN 820/xrdp-sesman
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 887/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1103/master
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN 818/xrdp
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 887/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1103/master
[root@liuxin-test01 ~]#
三、验证是否成功
1. 查看XRDP的IP地址
[root@liuxin-test01 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:ca:41:84 brd ff:ff:ff:ff:ff:ff
inet 192.168.8.192/24 brd 192.168.8.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feca:4184/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 00:0c:29:ca:41:8e brd ff:ff:ff:ff:ff:ff
2. 尝试远程桌面到XRDP服务器上
远程桌面xrdp跳板机3. 输入跳转到的windows机器的IP、用户名、密码。成功!!!
查看确认跳转成功备注
在做这个实验的时候,废了不少力气,各种依赖包,编译总是出错。不过要有耐心,慢慢来,还要多请教别人。当你做这个试验时并且成功了,要感谢我这篇文章的总结哈
网友评论