원격 데스크톱(RDP) 연결 포트 번호 변경 방법

원격 데스크톱(RDP) 연결 포트 번호를 변경하는 방법은 보안 강화를 위해 매우 중요한 절차입니다. 기본 포트인 3389번을 다른 포트로 변경하여 무단 접근 시도를 줄일 수 있습니다. [5]

다음은 RDP 포트 번호를 변경하는 자세한 단계입니다.

1단계: 원격 데스크톱 연결 허용 설정 확인 (사전 준비)

먼저 원격 데스크톱 연결 자체가 허용되어 있는지 확인해야 합니다. [1]

  1. Win + R을 눌러 실행 창을 열고 sysdm.cpl을 입력한 후 확인을 클릭합니다.
  2. 시스템 속성 창에서 원격 탭으로 이동합니다.
  3. 원격 데스크톱 섹션에서 “이 컴퓨터에 대한 원격 연결 허용”을 선택합니다.
    • 외부 네트워크에서 접근이 필요할 경우 “네트워크 수준 인증을 사용하는 컴퓨터에서만 연결 허용” 옵션은 해제하는 것이 좋습니다. [1]

2단계: 레지스트리 편집기를 통해 포트 번호 변경

RDP 포트 번호는 Windows 레지스트리에서 변경할 수 있습니다. [5]

  1. Win + R을 눌러 실행 창을 열고 regedit을 입력한 후 확인을 클릭하여 레지스트리 편집기를 실행합니다.
  2. 다음 경로로 이동합니다.
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  3. RDP-Tcp 폴더에서 PortNumber라는 항목을 찾아 더블 클릭합니다. [5]
  4. 값 편집 창이 나타나면 단위10진수로 변경합니다.
  5. 값 데이터에 새롭게 사용하고자 하는 포트 번호를 입력합니다. (예: 3389 대신 50000 등 1024~65535 사이의 사용되지 않는 포트).
    • 주의: 변경하려는 포트가 다른 서비스와 충돌하지 않는지 확인해야 합니다. 일반적으로 49152번 이상의 포트 중 하나를 선택하는 것이 좋습니다.
  6. 확인을 클릭하고 레지스트리 편집기를 닫습니다.

3단계: Windows 방화벽 설정

새로운 RDP 포트 번호에 대한 방화벽 규칙을 추가하여 연결을 허용해야 합니다. 이 단계를 건너뛰면 변경된 포트로 RDP 접속이 불가능해집니다. [2] [5]

  1. Windows 검색에서 “Windows Defender 방화벽” 또는 “고급 보안이 포함된 Windows Defender 방화벽”을 검색하여 실행합니다.
  2. 왼쪽 패널에서 인바운드 규칙을 클릭합니다. [2]
  3. 오른쪽 패널에서 새 규칙을 클릭합니다.
  4. 규칙 종류로 포트를 선택하고 다음을 클릭합니다.
  5. TCP를 선택하고 특정 로컬 포트에 2단계에서 변경한 포트 번호(예: 50000)를 입력한 후 다음을 클릭합니다.
  6. 연결 허용을 선택하고 다음을 클릭합니다.
  7. 규칙을 적용할 프로필을 선택합니다 (일반적으로 모두 선택). 다음을 클릭합니다.
  8. 규칙의 이름(예: “RDP New Port”)을 입력하고 마침을 클릭합니다. 팁: 기존 “원격 데스크톱 – 사용자 모드(TCP-In)” 규칙을 수정할 수도 있습니다. 해당 규칙을 더블클릭하여 ‘프로토콜 및 포트’ 탭에서 ‘로컬 포트’를 ‘특정 포트’로 변경하고 새 포트 번호를 입력한 후 ‘범위’ 탭에서 필요에 따라 원격 IP 주소를 제한하는 등 보안 설정을 강화할 수 있습니다. [2]

4단계: 원격 데스크톱 서비스 재시작

레지스트리 변경 사항을 적용하려면 원격 데스크톱 서비스를 재시작해야 합니다. [3]

  1. Win + R을 눌러 실행 창을 열고 services.msc를 입력한 후 확인을 클릭하여 서비스 관리자를 실행합니다. [3]
  2. 서비스 목록에서 Remote Desktop Services (원격 데스크톱 서비스)를 찾아 선택합니다.
  3. 마우스 오른쪽 버튼을 클릭하여 다시 시작을 선택합니다. [3]
    • : 시스템을 재부팅해도 변경 사항이 적용됩니다. [3]

5단계: 변경된 포트로 RDP 연결 테스트

이제 변경된 포트 번호로 RDP 연결을 시도하여 잘 작동하는지 확인합니다.

  1. Win + R을 눌러 실행 창을 열고 mstsc를 입력한 후 확인을 클릭하여 원격 데스크톱 연결 클라이언트를 실행합니다. [1]
  2. 컴퓨터(C): 입력란에 [IP 주소]:[새 포트 번호] 형식으로 입력합니다.
    • 예) 192.168.1.100:50000
  3. 연결을 클릭하여 접속을 시도합니다.

이 방법으로 RDP 연결 포트 번호를 안전하게 변경하고 관리하실 수 있습니다. 혹시라도 진행 중에 막히는 부분이 있으시면 언제든지 다시 질문해주세요!

참고 자료

[1] m.blog.naver.com – 윈도우 원격 데스크톱(RDP) 설정 및 포트 번호 변경 (https://m.blog.naver.com/ahtid/222888468057)
[2] tsplus.net – RDP 포트를 변경하는 방법 (https://tsplus.net/ko/remote-access/blog/how-to-change-the-rdp-port/)
[3] 서버엔지니어공략집 – 원격 데스크톱(RDP) Port 변경 – 서버엔지니어공략집 (https://93it-serverengineer.co.kr/66)
[4] learn.microsoft.com – 컴퓨터에서 원격 데스크톱 수신 대기 포트 변경 (https://learn.microsoft.com/ko-kr/windows-server/remote/remote-desktop-services/remotepc/change-listening-port)
[5] cafe24.zendesk.com – 윈도우 가상서버 원격데스크탑 ( RDP ) 포트 변경 방법을 … (https://cafe24.zendesk.com/hc/ko/articles/9504340705433-%EC%9C%88%EB%8F%84%EC%9A%B0-%EA%B0%80%EC%83%81%EC%84%9C%EB%B2%84-%EC%9B%90%EA%B2%A9%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%83%91-RDP-%ED%8F%AC%ED%8A%B8-%EB%B3%80%EA%B2%BD-%EB%B0%A9%EB%B2%95%EC%9D%84-%EC%95%88%EB%82%B4%ED%95%A9%EB%8B%88%EB%8B%A4)

WSL ubuntu 자동실행 on windows start

WSL Ubuntu를 자동으로 시작하는 가장 일반적이고 권장되는 방법은 **Windows 작업 스케줄러(Task Scheduler)**를 이용하는 것입니다. 이를 통해 Windows가 시작될 때마다 원하는 WSL 명령어를 실행할 수 있습니다.


1. Windows 작업 스케줄러를 이용한 WSL Ubuntu 자동 실행

이 방법은 Windows 부팅 시 특정 WSL 배포판을 실행하고, 그 안에서 필요한 스크립트나 서비스를 자동으로 시작하는 데 사용됩니다.

단계별 설정 방법:

  1. 작업 스케줄러 열기:
    • Windows 검색창에 “작업 스케줄러”를 입력하여 실행합니다.
  2. 새 작업 만들기:
    • 작업 스케줄러 창의 오른쪽 패널에서 “작업 만들기…”를 클릭합니다.
  3. 일반 탭 설정:
    • 이름(N): 원하는 작업 이름을 입력합니다. (예: WSL_Ubuntu_AutoStart)
    • 설명(D): 작업에 대한 설명을 입력합니다. (선택 사항)
    • 사용자 또는 그룹 변경(C)…:
      • “사용자 또는 그룹 변경” 버튼을 클릭합니다.
      • 사용자 이름에 SYSTEM을 입력하고 “이름 확인”을 클릭한 후 확인을 누릅니다. (SYSTEM 계정은 사용자가 로그인하지 않아도 Windows 시작 시 작업을 실행할 수 있습니다. 특정 사용자 계정으로 로그인한 후에만 실행하려면 해당 사용자 계정을 선택합니다.)
    • 사용자가 로그온할 때만 실행(O) 또는 사용자 로그온 여부와 관계없이 실행(U):
      • 백그라운드에서 서비스처럼 작동해야 한다면 사용자 로그온 여부와 관계없이 실행(U)을 선택하는 것이 좋습니다.
    • 가장 높은 권한으로 실행(I): 이 항목에 체크합니다.
    • 구성(F): “Windows 10” (또는 현재 사용 중인 Windows 버전에 맞춰)을 선택합니다.
  4. 트리거 탭 설정:
    • “새로 만들기(N)…” 버튼을 클릭합니다.
    • 작업 시작(G): 드롭다운 메뉴에서 “시작 시(At startup)” 또는 “로그온 시(At logon)”를 선택합니다.
      • 시작 시: Windows 부팅과 함께 작업을 시작합니다. (로그인 전)
      • 로그온 시: 특정 사용자가 Windows에 로그인할 때 작업을 시작합니다.
      • 대부분의 경우 시작 시를 선택하는 것이 좋습니다.
    • “확인”을 클릭합니다.
  5. 동작 탭 설정:
    • “새로 만들기(N)…” 버튼을 클릭합니다.
    • 동작(T): “프로그램 시작”을 선택합니다.
    • 프로그램/스크립트(P): wsl.exe를 입력합니다.
    • 인수 추가(선택 사항)(A): 여기에 WSL Ubuntu를 실행하고 백그라운드 명령을 수행하는 핵심 인수를 입력합니다.-d Ubuntu -u <USERNAME> /bin/bash -c "서비스_시작_명령_또는_스크립트 &"
      • -d UbuntuUbuntu 배포판을 지정합니다. (설치된 배포판 이름이 다르면 변경하세요.)
      • -u <USERNAME>: WSL에서 명령을 실행할 사용자 이름을 지정합니다. (예: root 또는 사용자 계정 이름)
      • /bin/bash -c "...": 이 부분은 WSL 내부에서 실행될 명령입니다.
        • 서비스 시작 예시 (Apache2 웹 서버):-d Ubuntu -u root /bin/bash -c "service apache2 start && tail -f /var/log/apache2/access.log &" (tail -f는 WSL이 종료되지 않도록 백그라운드에서 로그 파일을 계속 모니터링하는 예시입니다.)
        • n8n 또는 다른 애플리케이션 실행 예시:-d Ubuntu -u <USERNAME> /bin/bash -c "/usr/local/bin/n8n start --tunnel &" (n8n의 경로가 다를 수 있습니다.)
        • 자신만의 스크립트 실행 예시: 먼저 WSL Ubuntu 내부에 실행할 스크립트 파일(예: /home/<USERNAME>/startup.sh)을 만들고 실행 권한을 부여합니다.#!/bin/bash service apache2 start /usr/local/bin/n8n start --tunnel # 기타 필요한 모든 시작 명령어를 이곳에 추가합니다. 그리고 작업 스케줄러에는 다음과 같이 입력합니다.-d Ubuntu -u <USERNAME> /bin/bash -c "/home/<USERNAME>/startup.sh &"
      • 마지막의 & 기호는 이 명령이 백그라운드에서 실행되도록 합니다.
    • “확인”을 클릭하고 “작업 만들기” 창도 “확인”을 클릭하여 작업을 저장합니다.

주의사항:

  • 서비스 시작 시 sudo 문제: wsl 명령어에서 -u root를 사용하여 루트 권한으로 실행하거나, 스크립트 내부에서 sudo 명령을 사용해야 할 경우 비밀번호 입력 문제가 발생할 수 있습니다. 이 경우 sudoers 파일을 편집하여 특정 명령에 대해 비밀번호 없이 sudo를 허용하는 설정을 추가할 수 있습니다. (예: username ALL=(ALL) NOPASSWD: /usr/sbin/service apache2 start) 하지만 이는 보안상 주의해야 합니다.
  • WSL 서비스 관리: WSL2의 경우 systemd가 정식으로 지원되므로, 서비스 관리가 훨씬 쉬워졌습니다. $ wsl --update 명령어로 최신 버전을 유지하는 것이 좋습니다.

2. VBScript를 이용한 자동 실행 (선택적 방법)

일부 사용자는 VBScript를 활용하여 WSL 자동 실행을 설정하기도 합니다. 이 방법은 스크립트 파일을 만들어 shell:startup 폴더에 넣거나 작업 스케줄러에서 VBScript를 실행하는 방식입니다. 

wsl-autostart.vbs 파일 내용 예시:

vbs

Set oShell = CreateObject("WScript.Shell")
oShell.Run "wsl -d Ubuntu -u your_username /path/to/your/startup_script.sh", 0, false
  • 위 VBScript를 wsl-autostart.vbs로 저장하고, Windows 시작 폴더 (shell:startup 입력 후 이동)에 복사해 넣으면 Windows 로그인 시 자동으로 실행됩니다. 0, false는 창을 띄우지 않고 백그라운드에서 실행하라는 의미입니다.

3. 백그라운드 실행 및 WSL 인스턴스 유지

  • wsl.exe는 기본적으로 백그라운드 실행: wsl.exe 자체는 실행 시 별도의 콘솔 창을 유지하지 않고 백그라운드에서 리눅스 인스턴스를 시작합니다.
  • WSL2 인스턴스 자동 종료 방지 (vmIdleTimeout): WSL2는 리소스 효율성을 위해 모든 프로세스가 종료되면 일정 시간 후 자동으로 가상 머신을 종료합니다. 이를 방지하고 WSL 인스턴스를 계속 실행 상태로 유지하려면 ~/.wslconfig 파일에 vmIdleTimeout 설정을 추가하여 유휴 시간을 늘릴 수 있습니다. 
    • Windows의 사용자 프로필 폴더(C:\Users\<YourUsername>)에 .wslconfig 파일을 생성하거나 편집합니다.
    • 파일 내용을 다음과 같이 추가합니다.[wsl2] # WSL2 가상 머신이 유휴 상태가 된 후 종료될 때까지 기다릴 시간(분) # 0으로 설정하면 유휴 상태라도 종료되지 않습니다. vmIdleTimeout=0
    • 설정을 적용하려면 wsl --shutdown 명령으로 모든 WSL 인스턴스를 종료한 후 다시 시작해야 합니다.
error: Content is protected !!