顯示具有 rdp 標籤的文章。 顯示所有文章
顯示具有 rdp 標籤的文章。 顯示所有文章

Disable UDP to solve frequent RDP disconnection

解決 RDP 遠端桌面經常斷線問題:「關閉 UDP 傳輸」


在使用 Windows 內建的遠端桌面(RDP, Remote Desktop Protocol)連線時,你是否也常遇到連線突然卡死、畫面凍結,或是頻繁跳出「連線已中斷,正在嘗試重新連線」的提示?

這類問題通常與網路環境對 UDP 協定 的支援程度有關。雖然 UDP 具備低延遲的特性,但在某些防火牆、VPN 或不穩定的 Wi-Fi 環境下,UDP 封包容易遺失,進而導致 RDP 連線不斷斷線。

解決方案:將 RDP 連線改為僅使用傳統且穩定的 TCP 協定!

設定步驟(透過群組原則編輯器)

請在發起連線的用戶端電腦(Client)上執行以下設定:

  1. 按鍵盤上的 Win + R 開啟「執行」視窗,輸入 gpedit.msc 並按下Enter,開啟「群組原則編輯器」
  2. 在左側樹狀選單中,依序展開至以下路徑:
    電腦設定 (Computer Configuration) > 系統管理範本 (Administrative Templates) > Windows 元件 (Windows Components) > 遠端桌面服務 (Remote Desktop Services) > 遠端桌面連線用戶端 (Remote Desktop Connection Client)
  3. 在右側面板中找到 「關閉用戶端的 UDP (Turn off UDP on client)」 設定項目,點擊兩下開啟。
  4. 將狀態切換為 「已啟用 (Enabled)」,然後點擊「確定」儲存設定。

為什麼這樣做有效?

預設情況下,現代 Windows 的 RDP 會同時使用 TCP 與 UDP 進行傳輸。當網路環境對 UDP 封包處理不佳(例如 QoS 限制、防火牆攔截或 NAT 問題)時,連線品質就會大幅下降。關閉 UDP 後,遠端桌面會強制回退到純 TCP 模式,雖然延遲可能會微幅增加,但連線的穩定度與抗干擾能力會大幅提升

提示:設定完成後,建議重新啟動「遠端桌面連線」軟體或直接重啟電腦以確保設定生效。

how to recover the windows desktop in an RDP session

使用遠端桌面 (RDP) 工具連線到遠方 Windows 電腦時,有時候不小心關閉或弄壞了檔案總管 ( explorer.exe) 行程,導致工作列消失,或桌面變成一片黑,無法操作。這種情況下,毋須驚慌,以下是一步步如何啟動 工作管理員 (Task Manager),恢復桌面的方法。

  1. 步驟一:打開命令列視窗 (CMD)
    1. 打開工作管理員:按下 Windows Key + X  或 Ctrl + Shift + Esc 或 Ctrl + Alt + End,然後選擇「工作管理員」。
    2. 啟動新工作:在工作管理員中,點擊「檔案」選單,然後選擇「執行新工作」。
    3. 輸入命令:在彈出的對話框中,輸入 cmd,然後按下「確定」或 Enter 鍵。

  2. 步驟二:登出並重新登入
    1. 輸入登出命令:在命令提示字元後,輸入以下指令並按下 Enter:
      shutdown /l
      這個關機指令加上 (l)ogout 登出參數,會立即登出當前使用者。
    2. 重新登入:登出後,重新登入你的帳號。此時,桌面應該會恢復正常。

這個方法利用了 Windows 的內建功能來解決因誤操作導致的桌面消失問題。通過工作管理員啟動命令提示字元,然後使用登出命令,再重新登入,可以快速恢復桌面環境。這是一個簡單而有效的解決方案,適用於遠端桌面連線遇到類似無法操作的情況。

rdp port is not listening when using xrdp

Ubuntu等Linux系統可以透過xrdp軟體監聽tcp rdp (3389)埠號,接受Windows mstsc遠端桌面客戶端連線。
一旦發現3389埠號無法連線,可以如下進行診斷:

1.檢查3389埠號是否有行程監聽
  $ sudo lsof -i :3389
  COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
  xrdp    12345 xrdp    6u  IPv4 257547474      0t0  TCP *:3389 (LISTEN)

  $ sudo ss -tulpn | grep 3389
  tcp    LISTEN     0      2         *:3389                  *:*                   users:(("xrdp",pid=12345,fd=6))

2.重新啟動xrdp服務
  $ sudo rm /var/run/xrdp/xrdp.pid    # 刪除舊行程記錄,才能重啟服務
  $ sudo service xrdp restart         # 舊重啟方法
  $ sudo systemctl restart xrdp       # 新重啟方法

turn old pc to ad hoc desktop connectors


想要善用舊電腦,最佳方法不外是拿來當專用伺服器或客戶端使用.
以下介紹如何利用thinstation軟體,製作專用桌面連接器.
特色如下:
1.提供rdp/vnc/xdm協定的連線客戶端程式,可連接windows/unix桌面.
2.可製成iso映像檔,配合grub2,從硬碟開機(本文採用);
或直接syslinux安裝到硬碟,從硬碟開機(待嚐試).
3.硬碟只耗掉100MB空間,適用於硬碟容量少之舊型電腦.
4.記憶體只耗掉100MB,適用於記憶體容量少之舊型電腦.
5.提供各種顯示卡及網路卡驅動程式,適用於舊型電腦.

注意:安裝grub2是為了能從硬碟的iso檔啟動開機,
目前支援grub2的為ubuntu 10.04 LTS以上,
故首先安裝ubuntu軟體.以下操作皆在ubuntu上進行.

A.安裝ubuntu,供切割硬碟及安裝grub2
從 http://www.ubuntu.com/download/ubuntu/download
選擇 ubuntu 10.04 LTS, 32-bit (recommended) 下載iso,約686MB
燒錄成光碟,從光碟開機進入LiveCD,不需安裝ubuntu到硬碟.

B.製作一塊>=100MB空間的硬碟切割,供安裝grub2及iso用
從System/Administration/Partition Editor選單,開啟硬碟切割程式.
利用調大小/搬移(Resize/Move),新增(New),格式化(Format To)操作,
找出一塊>=100MB空間,格式化成ext3檔案格式,以下假設該空間為 /dev/sda2.

C.安裝grub2,供硬碟iso開機用
從Applications/Accessories/Terminal選單,開啟終端機.
利用如下指令安裝grub2,
> sudo -s
# mount /dev/sda2 /mnt
# grub-install --no-floppy --root-directory=/mnt /dev/sda
本指令將在sda硬碟的mbr安裝grub2開機程式,
並在/mnt/boot/grub/*產生grub2開機所需相關檔案,
grub2組態檔為/mnt/boot/grub/grub.cfg,稍後再手動補充
# mkdir /mnt/boot/iso

D.安裝thinstation軟體及製作thinstation.iso
D1.下載Thinstation-2.2.2g.tar.bz2軟體,約101MB,
http://sourceforge.net/projects/thinstation/files/thinstation/thinstation-2.2/Thinstation-2.2.2g.tar.bz2/download
D2.解開軟體
# tar jxvf Thinstation-2.2.2g.tar.bz2
D3.修改組態檔1,設定顯示卡,網路卡,聲音卡等驅動程式及套件
# vi Thinstation-2.2.2g/build.conf
D4.修改組態檔2,設定桌面連線程式,網路連線組態,儲存體路徑等
# vi Thinstation-2.2.2g/thinstation.conf.buildtime
系統可以有很多個螢幕(SCREEN),螢幕相當於桌面,預設SCREEN=0;
每個螢幕可以有1,2,3,4四個工作區(WORKSPACE),工作區相當於桌面頁籤,預設WORKSPACE=1;
每支程式跑起來稱作一個連線(SESSION),
利用SESSION_#_TYPE設定桌面程式圖示供點選時,每個連線編號(#)必需不同.
D5.製作 .iso
# ./Thinstation-2.2.2g/build
建立包含如上開機,桌面,網路所需開機光碟映像檔thinstation.iso
此.iso檔案大小取決於Thinstation-2.2.2g/build.conf選用模組多寡.
正常70~80MB左右.
# cp Thinstation-2.2.2g/boot-images/iso/thinstation.iso /mnt/boot/iso/
將開機光碟映像檔thinstation.iso 拷貝到 grub2 開機硬碟切割中.

E.編輯grub2的grub.cfg開機選單,供硬碟啟動thinstation.iso之用
# vi /mnt/boot/grub/grub.cfg
set timeout=5
set default=0
menuentry "Thinstation-2.2.2g-Customed-LiveCD" {
loopback loop (hd0,2)/boot/iso/thinstation.iso
linux (loop)/vmlinuz load_ramdisk=1 ramdisk_blocksize=4096 root=/dev/ram0 ramdisk_size=120000 splash=silent gfxpayload=1024x768 console=ttyS3
initrd (loop)/initrd
}

menuentry "ubuntu-9.04-desktop-i386.iso" {
loopback loop (hd0,2)/boot/iso/ubuntu-9.04-desktop-i386.iso
set root=(loop)
linux /casper/vmlinuz boot=casper iso-scan/filename/boot/iso/ubuntu-9.04-desktop-i386.iso
initrd /casper/initrd.gz
}

menuentry "Windows XP" {
set root=(hd0,1)
chainloader +1
}

menuentry "reboot" {
reboot
}

以上假設第1顆硬碟sda的第1切割sda1即(hd0,1)安裝Windows XP,
第2切割sda2即(hd0,2)安裝grub2開機系統及ubuntu 9.04,thinstation兩種.iso.

# reboot
重新開機之後,就會看到4個選項,如下,



預設5秒進入第1個選項即thinstation.iso.
進入thinstation畫面如下,



每種連線協定皆有兩個圖示,有加(fs)者為全螢幕(fullscreen).
可點選其中的MS Windows圖示,
在Server Name or IP Number,輸入欲連線的Windows IP,
即以rdesktop套件,走rdp協定,連線到Windows桌面.
若想要全螢幕,可在Options,輸入 -f 參數,事後即可用Ctrl-Alt-Enter作全半螢幕切換.

註1: grub2的grub.cfg選單本來設計成程式自動產生,但這裏只用其開機掛載iso功能,
故為求精簡,直接手動編輯.
註2: 此>=100MB硬碟切割其實適合安裝於任何開機硬碟中,
所佔空間少,基本的mount,ssh.scp,e3vi功能也都有,可當作救援開機碟用.
前提是grub2要安裝佔用開機硬碟的mbr (master boot record)即可.
註3:從左下Start功能表,開啟rxvt終端機,用free指令,可觀察目前所用記憶體.
正常只用rdesktop應該不超過100MB,
若你當初在Thinstation-2.2.2g/build.conf選用較多模組,所用記憶體可能到達170MB.

Disable UDP to solve frequent RDP disconnection

解決 RDP 遠端桌面經常斷線問題:「關閉 UDP 傳輸」 在使用 Windows 內建的 遠端桌面(RDP, Remote Desktop Protocol) 連線時,你是否也常遇到連線突然卡死、畫面凍結,或是頻繁跳出「連線已中...

總網頁瀏覽量