이 문제는 터미널 서버의 다른 응용 프로그램에서 RDP(원격 데스크톱 프로토콜)와 동일한 TCP 포트를 사용하고 있기 때문에 발생할 수 있습니다. RDP에 할당된 기본 포트는 3389입니다.
이 문제를 해결하려면 RDP와 동일한 포트를 사용하는 응용 프로그램을 확인합니다. 해당 응용 프로그램의 포트 할당을 변경할 수 없으면 레지스트리를 편집하여 RDP에 할당된 포트를 변경하십시오. 레지스트리를 편집한 후에는 터미널 서비스를 다시 시작해야 합니다. 터미널 서비스를 다시 시작한 후에는 RDP 포트가 제대로 변경되었는지 확인해야 합니다.
이러한 작업을 수행하려면 다음 단원을 참조하십시오.
RDP와 동일한 포트를 사용하는 응용 프로그램 확인
netstat 도구를 실행하여 포트 3389나 할당된 RDP 포트가 터미널 서버의 다른 응용 프로그램에서 사용되는지 확인할 수 있습니다.
netstat를 사용하려면:
터미널 서버에서 시작, 실행을 차례로 클릭하고 cmd를 입력한 다음 확인을 클릭합니다.
명령 프롬프트에서 netstat -a -o를 입력하고 Enter 키를 누릅니다.
상태가 Listening인 TCP 포트 3389 또는 할당된 RDP 포트의 항목을 찾습니다. 이러한 항목이 있으면 다른 응용 프로그램에서 이 포트를 사용하고 있는 것입니다. 해당 포트를 사용하는 서비스나 프로세스의 PID(프로세스 식별자)가 PID 열 아래에 나타납니다.
포트 3389나 할당된 RDP 포트를 사용하는 응용 프로그램을 확인하려면 netstat 도구에서 얻은 PID 정보와 함께 tasklist 명령줄 도구를 사용합니다.
터미널 서버에서 시작, 실행을 차례로 클릭하고 cmd를 입력한 다음 확인을 클릭합니다.
tasklist /svc를 입력한 다음 Enter 키를 누릅니다.
포트와 연결된 PID 번호(netstat 출력에 표시됨)의 항목을 찾습니다. 해당 PID와 연결된 서비스나 프로세스가 오른쪽에 나타납니다.
RDP에 할당된 포트 변경
이 응용 프로그램에서 다른 포트를 사용할 수 있는지 확인해야 합니다. 응용 프로그램의 포트를 변경할 수 없으면 RDP에 할당된 포트를 변경해야 합니다.
중요: RDP에 할당된 포트를 변경하는 방법은 권장되지 않습니다.
RDP에 할당된 포트를 변경해야 하면 레지스트리를 편집해야 합니다.
이 절차를 수행하려면 로컬 Administrators 그룹의 구성원이거나 적절한 권한을 위임 받아야 합니다.
RDP에 할당된 포트를 변경하려면:
주의: 레지스트리를 잘못 편집하면 시스템이 심각하게 손상될 수 있습니다. 레지스트리를 변경하기 전에 중요한 데이터를 모두 백업해야 합니다.
터미널 서버에서 레지스트리 편집기를 엽니다. 레지스트리 편집기를 열려면 시작, 실행을 차례로 클릭하고 regedit를 입력한 다음 확인을 클릭하십시오.
사용자 계정 컨트롤 대화 상자가 나타나면 표시되는 작업이 원하는 작업인지 확인한 다음 계속을 클릭합니다.
다음 레지스트리 하위 키를 찾아 클릭합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
참고: RDP-TCP가 기본 연결 이름입니다. 터미널 서버에서 특정 연결의 포트를 변경하려면 WinStations 키 아래에서 연결을 선택하십시오.
오른쪽 창에서 PortNumber 레지스트리 항목을 두 번 클릭합니다.
RDP에 할당할 포트 번호를 값 데이터 상자에 입력합니다. PortNumber가 16진수 값으로 입력됩니다.
확인을 클릭하여 변경 내용을 저장한 다음 레지스트리 편집기를 닫습니다.
터미널 서비스 다시 시작
RDP 포트 할당 변경 내용을 적용하려면 터미널 서비스를 중지한 다음 시작합니다.
이 절차를 수행하려면 로컬 Administrators 그룹의 구성원이거나 적절한 권한을 위임 받아야 합니다.
터미널 서비스를 중지한 다음 시작하려면:
터미널 서버에서 서비스 스냅인을 엽니다. 서비스 스냅인을 열려면 시작을 클릭하고 관리 도구를 가리킨 다음 서비스를 클릭하십시오.
사용자 계정 컨트롤 대화 상자가 나타나면 표시되는 작업이 원하는 작업인지 확인한 다음 계속을 클릭합니다.
서비스 창에서 Terminal Services를 마우스 오른쪽 단추로 클릭한 다음 다시 시작을 클릭합니다.
다른 서비스를 다시 시작할 것인지 묻는 메시지가 나타나면 예를 클릭합니다.
Terminal Services 서비스의 상태 열에 시작됨이 표시되는지 확인합니다.
RDP 포트가 변경되었는지 확인합니다.
RDP 포트 할당이 변경되었는지 확인하려면 netstat 도구를 사용합니다.
netstat를 사용하려면:
터미널 서버에서 시작, 실행을 차례로 클릭하고 cmd를 입력한 다음 확인을 클릭합니다.
명령 프롬프트에서 netstat -a를 입력하고 Enter 키를 누릅니다.
RDP에 할당한 포트 번호의 항목을 찾습니다. 포트가 목록에 나타나고 포트 상태가 Listening이어야 합니다.
중요: 원격 데스크톱 연결과 터미널 서버 웹 클라이언트에서는 기본적으로 포트 3389를 사용하여 터미널 서버에 연결합니다. 터미널 서버에서 RDP 포트를 변경하는 경우 원격 데스크톱 연결과 터미널 서버 웹 클라이언트에서 사용하는 포트를 수정해야 합니다. 자세한 내용은 다음 Microsoft 기술 자료 문서를 참조하십시오.
Target | Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TerminalServer | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 1036 | ||
Event Source | Microsoft-Windows-TerminalServices-RemoteConnectionManager | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | System |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TerminalServer.EventCollection.1036" Enabled="onStandardMonitoring" Target="Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TerminalServer" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>System</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">1036</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-TerminalServices-RemoteConnectionManager</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TerminalServer.EventCollection.1036.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
</WriteActions>
</Rule>