在 Ubuntu 19.04 上,我使用 xfce4 会话管理器安装了 xrdp,并且我可以从企业网络上的 Windows 10 Pro 计算机登录(使用 Fortinet VPN)。不幸的是,虽然我可以登录并工作,但几分钟后连接断开,并显示 Windows 消息“发生内部错误”。我尝试了在网上找到的所有方法,但都没有成功。
我运行这个程序的机器是 172.17.110.140。
以下是该机器上的 /var/log/xrdp.log 的选集:
[20190815-13:36:57] [INFO ] Socket 12: AF_INET6 connection received from ::ffff:10.212.134.151 port 63054 [20190815-13:36:57] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:172.17.110.140 port 3389) [20190815-13:36:57] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389) [20190815-13:36:57] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem [20190815-13:36:57] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem [20190815-13:36:57] [ERROR] Cannot read private key file /etc/xrdp/key.pem: Permission denied [20190815-13:36:57] [DEBUG] TLSv1.3 enabled [20190815-13:36:57] [DEBUG] TLSv1.2 enabled [20190815-13:36:58] [DEBUG] Security layer: requested 11, selected 0 [20190815-13:36:58] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:172.17.110.140 port 3389) [20190815-13:36:58] [INFO ] Socket 12: AF_INET6 connection received from ::ffff:10.212.134.151 port 63055 [20190815-13:36:58] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:172.17.110.140 port 3389) [20190815-13:36:58] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389) [20190815-13:36:58] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem [20190815-13:36:58] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem [20190815-13:36:58] [ERROR] Cannot read private key file /etc/xrdp/key.pem: Permission denied [20190815-13:36:58] [DEBUG] TLSv1.3 enabled [20190815-13:36:58] [DEBUG] TLSv1.2 enabled [20190815-13:36:58] [DEBUG] Security layer: requested 0, selected 0 [20190815-13:36:58] [INFO ] connected client computer name: PC0K39KK [20190815-13:36:58] [INFO ] adding channel item name rdpdr chan_id 1004 flags 0x80800000 [20190815-13:36:58] [INFO ] adding channel item name rdpsnd chan_id 1005 flags 0xc0000000 [20190815-13:36:58] [INFO ] adding channel item name cliprdr chan_id 1006 flags 0xc0a00000 [20190815-13:36:58] [INFO ] adding channel item name drdynvc chan_id 1007 flags 0xc0800000 [20190815-13:36:58] [INFO ] Non-TLS connection established from ::ffff:10.212.134.151 port 63055: encrypted with standard RDP security [20190815-13:36:59] [DEBUG] xrdp_00006de6_wm_login_mode_event_00000001 [20190815-13:36:59] [INFO ] Loading keymap file /etc/xrdp/km-00000409.ini [20190815-13:36:59] [WARN ] local keymap file for 0x00000409 found and doesn't match built in keymap, using local keymap file [20190815-13:36:59] [DEBUG] xrdp_wm_log_msg: connecting to sesman ip 127.0.0.1 port 3350 [20190815-13:36:59] [INFO ] xrdp_wm_log_msg: sesman connect ok [20190815-13:36:59] [DEBUG] xrdp_wm_log_msg: sending login info to session manager, please wait... [20190815-13:36:59] [DEBUG] return value from xrdp_mm_connect 0 [20190815-13:36:59] [INFO ] xrdp_wm_log_msg: login successful for display 13 [20190815-13:36:59] [DEBUG] xrdp_wm_log_msg: started connecting [20190815-13:36:59] [INFO ] lib_mod_log_peer: xrdp_pid=28134 connected to X11rdp_pid=26456 X11rdp_uid=1001 X11rdp_gid=1001 client_ip=::ffff:10.212.134.151 client_port=63055 [20190815-13:36:59] [DEBUG] xrdp_wm_log_msg: connected ok [20190815-13:37:03] [ERROR] xrdp_mm_connect_chansrv: connect failed trying again... [20190815-13:37:03] [DEBUG] Closed socket 18 (AF_UNIX) [20190815-13:37:07] [ERROR] xrdp_mm_connect_chansrv: connect failed trying again... [20190815-13:37:08] [DEBUG] Closed socket 18 (AF_UNIX) [20190815-13:37:12] [ERROR] xrdp_mm_connect_chansrv: connect failed trying again... [20190815-13:37:12] [DEBUG] Closed socket 18 (AF_UNIX) [20190815-13:37:16] [ERROR] xrdp_mm_connect_chansrv: connect failed trying again... [20190815-13:37:16] [ERROR] xrdp_mm_connect_chansrv: error in trans_connect chan [20190815-13:37:16] [DEBUG] Closed socket 16 (AF_INET6 ::1 port 52842)
这对你来说意味着什么?
Windows 事件日志包括以下内容:
RDPClient_TCP: An error was encountered when transitioning from TcpStateConnectingTransport to TcpStateDisconnected in response to TcpEventConnectionTimeout (error code 0x80004004).
我还可以尝试什么?
谢谢,
史蒂夫
顺便说一句,这是我的 xrdp.ini 文件的副本:
[Globals]
; xrdp.ini file version number
ini_version=1
; fork a new process for each incoming connection
fork=true
; tcp port to listen
port=3389
; 'port' above should be connected to with vsock instead of tcp
use_vsock=false
; regulate if the listening socket use socket option tcp_nodelay
; no buffering will be performed in the TCP stack
tcp_nodelay=true
; regulate if the listening socket use socket option keepalive
; if the network connection disappear without close messages the connection will be closed
tcp_keepalive=true
#tcp_send_buffer_bytes=32768
#tcp_recv_buffer_bytes=32768
; security layer can be 'tls', 'rdp' or 'negotiate'
; for client compatible layer
security_layer=negotiate
; minimum security level allowed for client
; can be 'none', 'low', 'medium', 'high', 'fips'
crypt_level=high
; X.509 certificate and private key
; openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365
certificate=
key_file=
; set SSL protocols
; can be comma separated list of 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3'
ssl_protocols=TLSv1.2, TLSv1.3
; set TLS cipher suites
#tls_ciphers=HIGH
; Section name to use for automatic login if the client sends username
; and password. If empty, the domain name sent by the client is used.
; If empty and no domain name is given, the first suitable section in
; this file will be used.
autorun=
allow_channels=true
allow_multimon=true
bitmap_cache=true
bitmap_compression=true
bulk_compression=true
#hidelogwindow=true
max_bpp=32
new_cursors=true
; fastpath - can be 'input', 'output', 'both', 'none'
use_fastpath=both
; when true, userid/password *must* be passed on cmd line
#require_credentials=true
; You can set the PAM error text in a gateway setup (MAX 256 chars)
#pamerrortxt=change your password according to policy at http://url
;
; colors used by windows in RGB format
;
blue=009cb5
grey=dedede
#black=000000
#dark_grey=808080
#blue=08246b
#dark_blue=08246b
#white=ffffff
#red=ff0000
#green=00ff00
#background=626c72
;
; configure login screen
;
; Login Screen Window Title
#ls_title=My Login Title
; top level window background color in RGB format
ls_top_window_bg_color=009cb5
; width and height of login screen
ls_width=350
ls_height=430
; login screen background color in RGB format
ls_bg_color=dedede
; optional background image filename (bmp format).
#ls_background_image=
; logo
; full path to bmp-file or file in shared folder
ls_logo_filename=
ls_logo_x_pos=55
ls_logo_y_pos=50
; for positioning labels such as username, password etc
ls_label_x_pos=30
ls_label_width=65
; for positioning text and combo boxes next to above labels
ls_input_x_pos=110
ls_input_width=210
; y pos for first label and combo box
ls_input_y_pos=220
; OK button
ls_btn_ok_x_pos=142
ls_btn_ok_y_pos=370
ls_btn_ok_width=85
ls_btn_ok_height=30
; Cancel button
ls_btn_cancel_x_pos=237
ls_btn_cancel_y_pos=370
ls_btn_cancel_width=85
ls_btn_cancel_height=30
[Logging]
LogFile=xrdp.log
LogLevel=DEBUG
EnableSyslog=true
SyslogLevel=DEBUG
; LogLevel and SysLogLevel could by any of: core, error, warning, info or debug
[Channels]
; Channel names not listed here will be blocked by XRDP.
; You can block any channel by setting its value to false.
; IMPORTANT! All channels are not supported in all use
; cases even if you set all values to true.
; You can override these settings on each session type
; These settings are only used if allow_channels=true
rdpdr=true
rdpsnd=true
drdynvc=true
cliprdr=true
rail=true
xrdpvr=true
tcutils=true
; for debugging xrdp, in section xrdp1, change port=-1 to this:
#port=/tmp/.xrdp/xrdp_display_10
; for debugging xrdp, add following line to section xrdp1
#chansrvport=/tmp/.xrdp/xrdp_chansrv_socket_7210
;
; Session types
;
; Some session types such as Xorg, X11rdp and Xvnc start a display server.
; Startup command-line parameters for the display server are configured
; in sesman.ini. See and configure also sesman.ini.
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000
[vnc-any]
name=vnc-any
lib=libvnc.so
ip=ask
port=ask5900
username=na
password=ask
#pamusername=asksame
#pampassword=asksame
#pamsessionmng=127.0.0.1
#delay_ms=2000
[neutrinordp-any]
name=neutrinordp-any
lib=libxrdpneutrinordp.so
ip=ask
port=ask3389
username=ask
password=ask
; You can override the common channel settings for each session type
#channel.rdpdr=true
#channel.rdpsnd=true
#channel.drdynvc=true
#channel.cliprdr=true
#channel.rail=true
#channel.xrdpvr=true