ShakeProof

「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')

posted on 2013-09-14 21:33  mirrorwheel  阅读(322)  评论(0编辑  收藏  举报

导航