容器(ubuntu20.04)开启远程桌面rdp(显示xterm和xclock)(下)

docker pull chanhyeok/sshd_ubuntu20.04

root@fv-az844-904:/tmp# docker images |grep sshd_ubuntu20.04
chanhyeok/sshd_ubuntu20.04   latest      b5f181a7000b   5 months ago    281MB
root@fv-az844-904:/tmp# docker inspect -f {{.Config.Entrypoint}}  b5f181a7000b
[]
root@fv-az844-904:/tmp# 

启动docker镜像:

docker run -it --name ssh2004 -p 0.0.0.0:2233:22 -p 53389:3389 -v /sbin/busybox:/bin/busybox -v /sbin/busybox:/bin/netstat b5f181a7000b;

在容器内执行命令:

root@857a784f9dd9:/# grep NA /etc/os-release
NAME="Ubuntu"
PRETTY_NAME="Ubuntu 20.04.5 LTS"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
root@857a784f9dd9:/# uname -a
Linux 857a784f9dd9 5.15.0-1031-azure #38~20.04.1-Ubuntu SMP Mon Jan 9 18:23:48 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
root@857a784f9dd9:/# 

给容器安装deb包:

export LANG=en_US.UTF-8
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none
apt-get update; \
apt install -y xorg dbus-x11 x11-xserver-utils xterm xinit xorgxrdp ; \
which X  && apt install -y xrdp  ;

最后有一句:saving to /etc/xrdp/rsakeys.ini,阿里云的镜像貌似没有

启动xrdp:

which xrdp xrdp-sesman xrdp-sessman;
setsid /usr/sbin/xrdp-sesman --nodaemon ; 
setsid /usr/sbin/xrdp  --nodaemon ;
root@857a784f9dd9:/# which xrdp xrdp-sesman xrdp-sessman;
/usr/sbin/xrdp
/usr/sbin/xrdp-sesman
root@857a784f9dd9:/# setsid /usr/sbin/xrdp-sesman --nodaemon ; 
root@857a784f9dd9:/# setsid /usr/sbin/xrdp  --nodaemon ;starting sesman in foreground...
Global configuration:
    ListenAddress:            127.0.0.1
    ListenPort:               3350
    EnableUserWindowManager:  1
    UserWindowManager:        startwm.sh
    DefaultWindowManager:     /etc/xrdp/startwm.sh
    ReconnectScript:          /etc/xrdp/reconnectwm.sh
    AuthFilePath:             disabled
Session configuration:
    MaxSessions:              50
    X11DisplayOffset:         10
    KillDisconnected:         0
    IdleTimeLimit:            0
    DisconnectedTimeLimit:    0
    Policy:                   0
Security configuration:
    AllowRootLogin:           1
    MaxLoginRetry:            4
    AlwaysGroupCheck:         0
    RestrictOutboundClipboard: 0
    TSUsersGroup:             (not defined)
    TSAdminsGroup:            (not defined)
Xorg parameters:
    Parameter 00              /usr/lib/xorg/Xorg
    Parameter 01              -config
    Parameter 02              xrdp/xorg.conf
    Parameter 03              -noreset
    Parameter 04              -nolisten
    Parameter 05              tcp
    Parameter 06              -logfile
    Parameter 07              .xorgxrdp.%s.log
Xvnc parameters:
    Parameter 00              Xvnc
    Parameter 01              -bs
    Parameter 02              -nolisten
    Parameter 03              tcp
    Parameter 04              -localhost
    Parameter 05              -dpi
    Parameter 06              96
SessionVariables parameters:
    Parameter 00              PULSE_SCRIPT=/etc/xrdp/pulse/default.pa
xrdp-sesman[2631]: (2631)(139973929264704)[DEBUG] libscp initialized

[20230218-17:44:24] [DEBUG] libscp initialized
xrdp-sesman[2631]: (2631)(139973929264704)[INFO ] starting xrdp-sesman with pid 2631

[20230218-17:44:24] [INFO ] starting xrdp-sesman with pid 2631
xrdp-sesman[2631]: (2631)(139973929264704)[INFO ] listening to port 3350 on 127.0.0.1

[20230218-17:44:24] [INFO ] listening to port 3350 on 127.0.0.1

root@857a784f9dd9:/# xrdp[2633]: (2633)(140450042058560)[INFO ] starting xrdp with pid 2633

[20230218-17:44:26] [INFO ] starting xrdp with pid 2633
xrdp[2633]: (2633)(140450042058560)[INFO ] address [0.0.0.0] port [3389] mode 1

[20230218-17:44:26] [INFO ] address [0.0.0.0] port [3389] mode 1
xrdp[2633]: (2633)(140450042058560)[INFO ] listening to port 3389 on 0.0.0.0

[20230218-17:44:26] [INFO ] listening to port 3389 on 0.0.0.0
xrdp[2633]: (2633)(140450042058560)[INFO ] xrdp_listen_pp done

[20230218-17:44:26] [INFO ] xrdp_listen_pp done

root@857a784f9dd9:/# 

修改root用户密码:

echo root:123456|chpasswd;

使用SSH客户端的本地转发远程服务器的53389端口:

ssh -o StrictHostKeyChecking=no -CNf -L 53389:127.0.0.1:53389 root@vps_ip -p port_number

使用win10x64的远程桌面连接(下图选择Xorg):

如果密码正确输入后,远程桌面突然退出,可能需要如下代码:

echo xterm>>~/.xsession;
chmod 777 ~/.xsession;

备注:

报以下错误,不影响使用

rdpLoadLayout: keylayout 0x00000804 variant  display 10
fuse: device not found, try 'modprobe fuse' first
[1672748244]: FUSE       xfuse_init_lib: 790 : ERROR: fuse_mount() failed
rdpkeybChangeKeyboardControl:
rdpkeybChangeKeyboardControl: autoRepeat on
rdpkeybChangeKeyboardControl:
rdpkeybChangeKeyboardControl: autoRepeat on
xrdp-chansrv [1672748246]: xcommon_init: connected to display ok
fuse: device not found, try 'modprobe fuse' first
[1672748247]: FUSE       xfuse_init_lib: 790 : ERROR: fuse_mount() failed
xrdp-chansrv [1672748247]: sound_init:
fuse: device not found, try 'modprobe fuse' first
[1672748247]: FUSE       xfuse_init_lib: 790 : ERROR: fuse_mount() failed
xrdp-chansrv [1672748247]: audin_init:
rdpInDeferredRepeatCallback:
rdpkeybChangeKeyboardControl:
rdpkeybChangeKeyboardControl: autoRepeat off

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Ubuntu 20.04可以通过VNC远程桌面进行访问和控制。要使用VNC,您需要安装VNC服务器和VNC客户端。您可以使用TightVNC、RealVNC或UltraVNC等VNC客户端。在Ubuntu 20.04安装VNC服务器时,您可以使用TigerVNC或x11vnc。安装后,您可以通过VNC客户端连接到Ubuntu 20.04远程桌面。 ### 回答2: Ubuntu20.04系统可以通过VNC实现远程桌面,使得不同的电脑可以远程连接到同一台电脑进行操作。 首先,我们需要在Ubuntu系统中安装VNC服务和桌面环境。可以通过终端运行以下命令进行安装: sudo apt update sudo apt install vnc4server xubuntu-desktop 其中,vnc4server是VNC服务的安装包,xubuntu-desktop是Ubuntu下的一个轻量级桌面环境,也可以根据需要安装其他桌面环境。 安装完成后,运行以下命令启动VNC服务,并设定连接密码: vncserver :1 vncpasswd 启动后,可以通过VNC客户端远程连接Ubuntu系统,输入用户名和密码,即可进入Ubuntu桌面。 有时候,连接成功后,只能看到一个灰色的桌面,无法进行任何操作。这时需要通过终端再次运行以下命令: export DISPLAY=:0 xfce4-session & 其中,DISPLAY=:0是环境变量的设置,xfce4-session是桌面启动的命令。 这样就可以愉快地进行远程桌面操作了。如果需要断开连接,可以直接关闭VNC客户端,或者通过终端运行以下命令: vncserver -kill :1 总之,通过VNC远程桌面,我们可以方便地远程管理Ubuntu系统,提高工作效率,同时也增强了系统的安全性。 ### 回答3: Ubuntu 20.04是一款非常流行的操作系统,它提供了多种方式来远程连接到桌面。其中,VNC(Virtual Network Computing)是一种通过网络访问远程计算机桌面的协议。 首先,我们需要安装VNC服务器和客户端软件。打开终端,输入以下命令: sudo apt-get update sudo apt-get install vnc4server tightvncserver 安装完成后,我们需要创建一个VNC会话。输入以下命令: vncserver :1 这将创建一个名为:1的VNC会话,并在您的主目录下创建一个新的配置文件。VNC会话的地址格式为 IP地址:端口号,例如192.168.1.100:1。 接下来,我们需要设置VNC会话的连接密码。使用以下命令设置密码: vncpasswd 在终端中输入两次密码,并提示确认。这将设置VNC会话的访问密码。 然后,我们需要启动VNC会话。使用以下命令启动VNC会话: vncserver -geometry 1920x1080 -depth 24 :1 这将启动一个VNC会话,分辨率为1920x1080,色深为24位。 现在,我们需要在远程计算机上安装并配置VNC客户端。Windows和Mac OS X等操作系统通常都提供了自己的VNC客户端,或者您可以选择使用VNC Viewer,这是一个免费的VNC客户端软件。安装完成后,您需要输入VNC会话地址和密码,即可连接到远程计算机的桌面。 在连上VNC远程桌面后,您可以通过VNC Viewer的图形界面来操作Ubuntu 20.04系统。同时,也可以启动终端并在远程计算机上执行命令。但是,建议您不要在远程桌面中执行类似重启计算机或关闭系统的操作,以免意外导致系统崩溃或数据丢失。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值