「2013-9-14」Change Remote Desktop Port

修改远程桌面服务(Remote Desktop Service)的端口号,有几点原因:

  1. 默认是 3389 端口,也是经常被端口嗅探器扫描的一个端口。更换端口号,一定程度上可以带来更好的安全性。
  2. 如果一个路由器后,有多台电脑希望可以被远程访问,那么可以通过 a) 定制不同的端口号 b) 路由器上设置不同端口的 port forwarding 两个简单的步骤,完成这个需求。

运行下面这个简单的脚本,如「python modify_remote_desktop_port.py 6789」就可以将 RDP 的端口号修改为 6789(如果没有提供第二个参数,则默认是修改为 5589)。

# -*- coding: utf-8 -*-

# filename: modify_remote_desktop_port.py



import winreg



def ModifyRDPort(port=5589):

    keyString = 'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber'

    ksList = keyString.split('\\')[1:-1]



    portKey = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE)

    for i in ksList:

        portKey = winreg.OpenKey(portKey, i, access=winreg.KEY_ALL_ACCESS)



    # @keyItemValue is a (value, type) tuple.

    keyItemValue = winreg.QueryValueEx(portKey, 'PortNumber')

    assert(keyItemValue[1] == winreg.REG_DWORD)



    winreg.SetValueEx(portKey, 'PortNumber', None, winreg.REG_DWORD, port)

    winreg.CloseKey(portKey)



if __name__ == '__main__':

    import sys

    if len(sys.argv) == 1: # 'python module_name.py'

        ModifyRDPort()

    else:

        try:

            port = int(sys.argv[1])

            ModifyRDPort(port)

        except ValueError:

            print('Usage: python modify_remote_desktop_port.py $port_name_integer')

你可能感兴趣的:(Desktop)