美文网首页技术也要去运维Windows相关
xrdp搭建Windows跳板机(修改版)

xrdp搭建Windows跳板机(修改版)

作者: 小小运维 | 来源:发表于2018-02-12 13:41 被阅读256次

    简介

    机房内部有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、用户名、密码。成功!!!

    查看确认跳转成功

    备注

    在做这个实验的时候,废了不少力气,各种依赖包,编译总是出错。不过要有耐心,慢慢来,还要多请教别人。当你做这个试验时并且成功了,要感谢我这篇文章的总结哈

    相关文章

      网友评论

        本文标题:xrdp搭建Windows跳板机(修改版)

        本文链接:https://www.haomeiwen.com/subject/zmurtftx.html