동적 포트는 언제 “동적”입니까? 1971이며, 미래의

나는 오늘 Dynamic Ports내 동료 중 한 명과 토론을 하고 있었으며 그들이 어떻게 작동하는지 명확히하는 데 도움을 줄 수있었습니다.

첫 번째 질문 : 경우 IPALL TCP Dynmaic Ports설정이 특정 번호 (1971 말)는 1971 정적 포트 또는 현재 1971이며, 미래의 어떤 시점에서 변경 될 수 있습니다 동적 포트를 가지고 그 의미를 않는 것입니다.

여기에 이미지 설명을 입력하십시오

두 번째 질문 : 이것이 제가 가장 궁금한 질문입니다. IPALL TCP Dynmaic Ports수십 번의 인스턴스 재시작을 통해 몇 년 동안 동일한 포트 ( 설정 값 )를 가진 인스턴스가 있습니다. 실제로 인스턴스가 다시 시작된 후 동적 포트가 실제로 변경되는 이유는 무엇입니까?



답변

이 기사 : 특정 포트에서 수신 대기하도록 SQL Server를 구성하는 방법 은 다음과 같습니다.

동적 포트 할당

동적 포트 할당을 사용하도록 SQL Server 인스턴스를 구성하고 SQL Server 인스턴스를 아직 다시 시작하지 않은 경우 레지스트리 값은 다음과 같이 설정됩니다.

TCPDynamicPorts = 공백

TCPPort = 0

그러나 동적 포트 할당을 사용하도록 SQL Server 인스턴스를 구성하고 SQL Server 인스턴스를 다시 시작하면 레지스트리 값이 다음과 같이 설정됩니다.

TCPDynamicPorts = 사용되는 현재 포트

TCPPort = 사용되는 현재 포트

정적 포트 할당 :

정적 포트를 사용하도록 SQL Server 인스턴스를 구성하고 SQL Server 인스턴스를 아직 다시 시작하지 않은 경우 레지스트리 값은 다음과 같이 설정됩니다.

TCPDynamicPorts = 마지막으로 사용 된 포트

TCPPort = 다음에 다시 시작한 후 사용할 새 정적 포트. 서버 네트워크 유틸리티를 사용하여 설정 한 새 정적 포트

그러나 정적 포트를 사용하도록 SQL Server 인스턴스를 구성하고 SQL Server 인스턴스를 다시 시작하면 레지스트리 값이 다음과 같이 설정됩니다.

TCPDynamicPorts = 공백

TCPPort = 서버 네트워크 유틸리티를 사용하여 설정 한 새로운 정적 포트

두 번째 질문에

명명 된 SQLServer를 시작할 때마다 할당 된 포트를 사용합니다. 포트가 다른 프로그램 에서 사용되는 경우 SQL Server는 다시 시작할 때 다른 포트를 선택합니다. 즉, 동적 포트는 처음 시작할 때 선택되며 일반적으로 향후 다시 시작할 때 (레지스트리에 저장 됨)를 통해 동일하게 유지 됩니다. 다른 프로그램에서 사용하면 SQL Server는 새 포트를 선택합니다. 참고 : Prod Server의 경우 보안 및 관리 용이성 이유로 고정 포트만 사용합니다.

참고 : 더 멋진 점은 다음과 같습니다.

동적 포트가 사용 중인지 T-SQL을 사용하지 않는지 확인하십시오.

SELECT NAME
    ,protocol_desc
    ,type_desc
    ,state_desc
    ,is_admin_endpoint
    ,port
    ,is_dynamic_port
    ,ip_address
FROM sys.tcp_endpoints

netstat -anocmdline을 사용 하여 확인할 수 있습니다 .

또한 클라이언트 측의 레지스트리에서 이전에 캐시 된 내용을 확인하여 SQL 서버에 연결하는 데 사용하는 포트를 확인할 수 있습니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect