修改远程桌面服务(Remote Desktop Service)的端口号,有几点原因:
- 默认是 3389 端口,也是经常被端口嗅探器扫描的一个端口。更换端口号,一定程度上可以带来更好的安全性。
- 如果一个路由器后,有多台电脑希望可以被远程访问,那么可以通过 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')