0

我正在尝试构建一个安装了 xrdp 服务的 linux docker 容器,以便我不仅可以通过 localhost 接口,还可以通过主机网络 eth0 ip 接口远程访问 RDP 服务。我无法理解我在这里缺少 docker 网络并正确启动容器。Docker 在 Ubuntu Linux 20.04 上运行。作为测试,当我运行这个 docker 命令时:

docker run --rm -d --network host --name my_nginx nginx

我观察到 nginx 正在侦听端口 80 并暴露在 localhost 接口上,我可以使用浏览器访问它。验证:

sudo netstat -tulpn | grep 80

现在这是我正在尝试构建和启动的 linux 容器。我使用 Dockerfile 来启动 xrdp 服务。

FROM kalilinux/kali-rolling

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get -y update && apt-get -y dist-upgrade && apt-get -y autoremove && apt-get install -y wget && apt-get clean

RUN apt-get -y install vim net-tools whois netcat exploitdb man-db dirb nikto wpscan uniscan nodejs npm python3-pip tor proxychains

RUN apt-get install xrdp lxde-core lxde tigervnc-standalone-server -y

COPY ./xrdp.ini /etc/xrdp/xrdp.ini

COPY ./Xwrapper.config /etc/X11/Xwrapper.config

RUN service xrdp start

ENTRYPOINT ["/bin/bash"]

现在我构建容器并尝试像这样运行它:

docker run --rm -d --network host --name my_kali kali

容器看起来不像在运行,并且没有端口 3389 监听 lo 或 eth0 接口。现在,当我以另一种方式运行容器时,我可以通过 Docker0 IP 接口 (172.17.0.2) 使用 RDP 客户端访问主机:

docker run -ti kali

但这只会暴露 Docker0 专用网络上的 RDP 服务。目标或用例是构建一个可以通过主机的 eth0 接口访问的容器。用户可以 RDP 进入它并使用 GUI 运行工具。对我在这里缺少的任何帮助表示赞赏。

4

1 回答 1

0

这是 Dockerfile 中的解决方案: CMD /usr/sbin/xrdp-sesman;/usr/sbin/xrdp -n

然后使用 -p 启动映像: docker run -d --name kali-image -p 3389:3389 kali

验证端口是否正在侦听: docker port kali-image

感谢上面的大卫迷宫。

于 2020-06-30T22:03:18.580 回答