원격 데스크톱(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 인스턴스를 종료한 후 다시 시작해야 합니다.

fstab으로 스왑메모리 추가 설정

fstab 파일을 사용하여 Ubuntu 서버의 스왑 메모리를 현재 1GB에서 4GB로 늘리는 방법에 대해 문의 주셨습니다.

스왑 메모리는 물리적 RAM(메인 메모리)이 부족할 때, 하드 디스크의 특정 공간을 마치 RAM처럼 사용하는 가상 메모리 공간입니다. 시스템이 사용 가능한 물리적 RAM보다 더 많은 메모리를 필요로 할 때, 비활성 데이터를 스왑 공간으로 옮겨 물리적 RAM을 확보하게 됩니다. 이를 통해 애플리케이션 충돌을 방지하고 시스템 안정성을 높일 수 있습니다 .

일반적으로 서버의 물리적 메모리 양에 따라 적절한 스왑 공간을 설정합니다. 예를 들어, 4GB RAM을 가진 서버는 8GB 정도의 스왑 공간을 설정하는 것이 일반적이지만, 서버 메모리가 크다면 항상 RAM의 두 배로 설정할 필요는 없습니다 .

먼저 현재 시스템에 설정된 스왑 공간의 크기를 확인.

sudo swapon --show

또는

free -h

free -h 명령어의 출력에서 “Swap:” 라인을 확인하여 현재 스왑 메모리 사용량과 총 크기를 파악할 수 있습니다.

1GB 스왑을 4GB로 늘리는 단계

기존 1GB 스왑 파일이 /swapfile에 있다고 가정하고, 이를 4GB로 늘리는 절차는 다음과 같습니다. 기존 스왑을 비활성화하고, 새로운 4GB 스왑 파일을 생성한 다음, 이를 활성화하고 영구적으로 적용하는 순서로 진행.

⚠️ 주의사항: 스왑 공간을 비활성화하기 전에 현재 시스템의 물리적 메모리에 여유 공간이 충분한지 확인하는 것이 중요합니다. free -m 명령어로 Mem: free 부분을 확인하여 현재 스왑이 사용 중인 공간보다 여유 물리 메모리가 더 많은지 확인하세요. 그렇지 않으면 시스템 성능 저하 또는 충돌이 발생할 수 있습니다 .


1단계: 기존 스왑 비활성화 및 삭제 (기존에 /swapfile이 1GB인 경우)

먼저 현재 활성화된 스왑 파일을 비활성화합니다.

sudo swapoff /swapfile

이 명령어는 /swapfile 경로의 스왑 사용을 중단시킵니다. 기존 스왑 파일이 다른 이름이거나 여러 개라면, swapon --show 명령으로 확인한 정확한 경로를 사용해야 합니다.

비활성화 후 기존 스왑 파일을 삭제합니다.

sudo rm /swapfile

2단계: 새로운 4GB 스왑 파일 생성

dd 명령어를 사용하여 4GB 크기의 빈 파일을 생성합니다.

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
  • if=/dev/zero: 널(0) 바이트를 읽어옵니다.
  • of=/swapfile/swapfile이라는 이름으로 파일을 생성합니다.
  • bs=1M: 한 블록당 1메가바이트(MB)로 설정합니다.
  • count=4096: 4096개의 블록을 생성하므로, 총 4096 MB = 4 GB 크기의 파일이 만들어집니다  .

3단계: 스왑 파일 권한 설정

생성된 스왑 파일의 보안을 위해 소유자만 읽고 쓸 수 있도록 권한을 설정합니다.

sudo chmod 600 /swapfile

이 권한 설정은 다른 사용자가 스왑 파일에 접근하는 것을 막아 보안을 강화합니다.


4단계: 스왑 영역으로 설정

mkswap 명령어를 사용하여 생성된 파일을 스왑 영역으로 포맷합니다.

sudo mkswap /swapfile

이 명령어는 리눅스가 /swapfile을 스왑 공간으로 인식할 수 있도록 준비시킵니다.


5단계: 스왑 활성화

새로 설정한 스왑 파일을 즉시 활성화합니다.

sudo swapon /swapfile

6단계: /etc/fstab에 스왑 파일 등록 (영구 적용)

재부팅 시에도 스왑 파일이 자동으로 활성화되도록 /etc/fstab 파일에 등록해야 합니다  . 텍스트 에디터(예: nano 또는 vi)를 사용하여 fstab 파일을 엽니다.

sudo nano /etc/fstab

파일 맨 아래에 다음 줄을 추가합니다.

/swapfile swap swap defaults 0 0

파일을 저장하고 종료합니다 (Ctrl+XYEnter for nano).


7단계: 스왑 공간 확인

모든 절차를 마친 후, free -h 명령어를 다시 실행하여 스왑 공간이 4GB로 늘어났는지 확인합니다.

free -h

출력된 “Swap:” 라인에서 총 스왑 공간이 4.0G로 표시되면 성공적으로 적용된 것입니다.

error: Content is protected !!