v2rayN 로컬 포트 충돌 해결: 10808 사용 중인 프로세스 확인 및 포트 변경

시작할 때 포트 사용 중 오류가 뜨나요? Windows 명령으로 점유 프로세스를 찾고, 설정에서 로컬 SOCKS·HTTP 수신 포트를 바꾸는 방법과 변경 후 함께 조정할 항목을 안내합니다.

핵심 내용

v2rayN에서 코어를 시작할 때 수신에 실패하거나 브라우저에서 프록시 연결이 거부되는 경우에 적용됩니다. 먼저 로그에서 충돌 포트를 확인한 뒤 Windows 명령으로 수신 프로세스를 찾으세요. 중복 실행을 종료할 수 있다면 기존 포트를 유지하고, 두 인스턴스를 함께 실행해야 할 때만 수신 설정을 변경하세요. 마지막으로 시스템 프록시와 앱 프록시 설정도 함께 바꿔 ‘코어는 시작됐지만 브라우저는 이전 포트에 연결하는’ 문제를 방지합니다.

1. 10808 포트 충돌과 노드 연결 실패의 차이

로컬 수신 포트는 브라우저와 명령줄 도구가 v2rayN 코어에 연결하는 진입점이며, 구독 서버의 원격 포트가 아닙니다. 로그에 127.0.0.1:10808 바인딩 실패가 표시되면 요청을 로컬에서 받기 전부터 문제가 발생한 것입니다. 이 경우 노드 변경, 구독 갱신, VMess·VLESS 매개변수 수정으로는 포트 점유가 해결되지 않는 경우가 많습니다.

앱 프록시 설정 로컬 수신 포트 라우팅 규칙 적용 원격 노드 연결

먼저 v2rayN 메인 화면의 로그 영역에서 시작 직후 기록을 확인하고, 오류에 표시된 주소·포트·시간을 메모하세요. 다음은 자주 보이는 오류 문구이며, 앞뒤 로그 접두사는 코어와 시스템에 따라 달라질 수 있습니다. 핵심은 ‘주소가 이미 사용 중’인 경우와 ‘접근이 거부됨’을 구분하는 것입니다. 후자는 일반적인 점유 프로세스를 찾지 못할 수도 있습니다.

오류: Only one usage of each socket address (protocol/network address/port) is normally permitted.

원인 및 해결 방법: Windows에서 흔히 나타나는 소켓 주소 충돌 오류입니다. 로그에 표시된 로컬 포트를 확인하고 수신 프로세스를 찾아 중복 인스턴스를 종료하거나, 현재 인스턴스에 사용 가능한 포트를 지정하세요.

오류: bind: address already in use

원인 및 해결 방법: 지정한 주소와 포트에 다시 바인딩할 수 없는 상태로, 해당 포트를 이미 다른 프로세스가 수신 중일 때 자주 발생합니다. 사용 중인 시스템에 맞는 방법으로 수신 프로세스를 확인하세요. 구독이 만료된 문제로 오해하지 마세요.

오류: An attempt was made to access a socket in a way forbidden by its access permissions.

원인 및 해결 방법: 포트 접근이 제한된 상태입니다. 시스템에서 제외한 포트 범위나 보안 정책이 원인일 수 있습니다. 먼저 수신 프로세스와 제외 범위를 확인한 뒤, 사용 중이 아니면서 제외되지 않은 포트를 선택하세요.

2. Windows에서 10808 수신 프로세스 확인하기

아래 명령은 Windows PowerShell에서 실행합니다. TCP 수신 상태를 확인하세요. 출력에 10808이 있다는 이유만으로 점유 중이라고 판단하면 안 됩니다. 일반적인 아웃바운드 연결에도 이 숫자가 포함될 수 있으므로 로컬 주소, 로컬 포트, 수신 상태를 함께 확인해야 합니다.

Get-NetTCPConnection -LocalPort 10808 -State Listen -ErrorAction SilentlyContinue |
  Select-Object LocalAddress, LocalPort, State, OwningProcess

OwningProcess는 프로세스 번호인 PID입니다. 결과에 PID 4321이 표시되면 아래 명령을 실행하세요. 4321은 예시이므로 실제 조회 결과로 바꿔야 합니다. PID는 프로세스가 다시 시작되면 바뀌므로 이전 기록을 그대로 사용하지 마세요.

Get-Process -Id 4321 | Select-Object Id, ProcessName, Path

Get-CimInstance Win32_Process -Filter "ProcessId = 4321" |
  Select-Object ProcessId, ExecutablePath, CommandLine

실행 파일 경로를 보면 압축을 푼 폴더가 다른 두 프로그램을 구분하는 데 도움이 되고, 명령줄은 코어가 어떤 설정을 사용하는지 확인하는 단서가 됩니다. 일부 프로세스 정보는 관리자 권한이 있어야 조회할 수 있습니다. 경로가 표시되지 않는다고 프로세스가 없는 것은 아닙니다. 도움을 요청할 때는 전체 명령줄이나 설정 내용을 그대로 공개하지 마세요. 로컬 경로와 연결 정보가 포함될 수 있습니다.

명령 프롬프트에서 확인하는 방법

netstat -ano -p tcp | findstr ":10808"
tasklist /FI "PID eq 4321"

3. 중복 실행, 남아 있는 코어 프로세스, 시스템 제외 포트

프로세스를 찾았다면 해당 프로그램의 트레이 메뉴에서 정상적으로 종료한 다음 다시 조회하세요. v2rayN은 창을 닫아도 트레이에서 계속 실행될 수 있습니다. 다른 사용자 세션, 시작 프로그램, 이전에 압축을 푼 폴더의 인스턴스가 포트를 계속 점유할 수도 있습니다. 코어 프로세스 이름은 단서일 뿐이므로 이름만 보고 같은 이름의 프로세스를 모두 종료하지 마세요.

  1. 같은 클라이언트를 두 번 실행한 경우: 유지할 인스턴스와 폴더를 확인하고 다른 인스턴스를 종료하세요. 트레이 아이콘과 작업 관리자의 파일 위치를 확인한 뒤 남겨 둔 인스턴스를 다시 시작합니다.
  2. 종료 후에도 코어가 계속 수신하는 경우: 해당 PID의 경로와 명령줄을 확인해 방금 종료한 인스턴스에 속하며 다른 용도가 없는지 확인하세요. 확인 후 작업 관리자에서 종료합니다. 종료한 뒤 포트를 다시 조회하고, 시작 버튼을 연달아 누르지 마세요.
  3. 다른 프로그램을 계속 사용해야 하는 경우: 데이터베이스, 개발 서버, 시스템 프로세스를 강제로 종료하지 마세요. v2rayN에 다른 포트 조합을 지정하고 해당 프록시를 사용하는 앱도 함께 변경하세요.
  4. 수신 프로세스가 없는데도 접근 거부가 표시되는 경우: 시스템에서 제외한 포트 범위를 확인하세요. 가상화나 컨테이너 네트워크 기능이 포트 할당에 영향을 줄 수 있으므로 실제 컴퓨터의 조회 결과를 기준으로 판단해야 합니다.
netsh interface ipv4 show excludedportrange protocol=tcp
netsh interface ipv6 show excludedportrange protocol=tcp

조회 결과의 시작 포트와 끝 포트 사이에 10808이 포함되는지 확인하세요. 해당 범위에 속한다면 시스템 예약 항목을 삭제하기보다 범위 밖의 포트를 선택하는 편이 안전합니다. 수신 기록도 없고 제외 범위에도 해당하지 않는다면 관리자 권한으로 반복 실행해 보기보다 시작 순간의 로그, 바인딩 주소, 보안 프로그램 기록을 추가로 확인하세요.

4. 설정에서 SOCKS, HTTP, 혼합 포트 변경하기

먼저 현재 설정을 기록한 뒤 「설정」→「매개변수 설정」을 열고 「Core 기본 설정」에서 로컬 수신 관련 항목을 찾으세요. 버전과 코어 조합에 따라 ‘로컬 혼합 수신 포트’만 표시될 수도 있고, SOCKS와 HTTP 설정이 따로 제공될 수도 있습니다. 현재 화면과 시작 로그를 기준으로 확인하고 입력란이 반드시 두 개 있다고 가정하지 마세요.

10808
이 예시에서 확인할 수신 포트
11808
혼합 또는 SOCKS 포트 예시
11809
독립 HTTP 포트 예시

11808과 11809는 이 문서의 설정 예시일 뿐, 사용 중인 컴퓨터에서 비어 있다고 보장할 수 없습니다. 저장하기 전에 앞서 소개한 명령으로 두 포트를 조회하고 시스템 제외 범위도 확인하세요. 포트 번호만으로 프로토콜이 정해지는 것은 아닙니다. 10808이 반드시 SOCKS이거나 10809가 반드시 HTTP인 것은 아니며, 실제로 어떤 요청을 받는지는 인바운드 설정에 따라 달라집니다.

현재 설정 유형 변경 예시 앱에서 지정할 값
단일 혼합 수신 포트 로컬 혼합 수신 포트를 11808로 변경 지원되는 HTTP와 SOCKS 요청은 모두 이 포트로 연결합니다. 앱에서 올바른 프록시 프로토콜을 선택해야 합니다.
SOCKS와 HTTP 수신 포트 분리 SOCKS는 11808, HTTP는 11809로 변경 SOCKS 앱은 11808에, HTTP 프록시 앱은 11809에 연결
사용자 지정 설정의 인바운드 설정 파일에서 실제 인바운드 수신 포트 확인 앱은 해당 인바운드 설정을 따라야 합니다. 화면의 설정값이 사용자 지정 파일에 반영되지 않을 수도 있습니다.
  1. 실패했을 때 되돌릴 수 있도록 기존 포트, 수신 주소, 시스템 프록시 모드를 기록하세요.
  2. 매개변수 설정에서 실제 사용 중인 수신 항목을 변경하세요. 노드 서버 포트는 수정하지 마세요.
  3. 설정을 저장하고 서비스를 다시 시작하세요. 현재 버전에 별도 재시작 메뉴가 없다면 클라이언트를 정상 종료한 후 다시 여세요.
  4. 이번 시작 로그에 바인딩 오류가 없는지 확인하고, 새 포트에서 수신이 시작됐는지 다시 조회하세요.

요약: 인바운드 유형을 확인한 뒤 포트 변경

화면에 혼합 포트만 있다면 HTTP 포트를 따로 찾거나 만들 필요가 없습니다. 설정이 분리되어 있다면 두 항목을 각각 확인하세요. 변경이 제대로 됐는지는 입력란의 숫자가 바뀌었는지가 아니라 새 포트를 예상한 코어 프로세스가 수신 중인지로 판단해야 합니다.

5. 포트 변경 후 함께 바꿔야 할 설정

로컬 포트를 바꿔도 직접 입력한 프록시 주소는 대개 자동으로 갱신되지 않습니다. 특히 열려 있는 터미널 창, 브라우저의 독립 프록시 설정, 다운로드 도구를 확인하세요. 기존 연결은 잠시 유지되다가 새 연결에서만 오류가 날 수 있으므로 앱을 다시 열어 테스트해야 합니다.

아래는 PowerShell 현재 세션에서 사용할 설정 예시입니다. 새 포트가 해당 프로토콜을 지원하는지 확인한 경우에만 사용하세요. HTTP 전용 포트가 11809라면 앞의 두 줄을 사용합니다. 혼합 포트가 11808이라면 앞의 두 줄에 있는 포트를 11808로 바꾸면 됩니다. 세 번째 줄은 수신 포트가 SOCKS5를 지원해야 사용할 수 있습니다.

$env:HTTP_PROXY = "http://127.0.0.1:11809"
$env:HTTPS_PROXY = "http://127.0.0.1:11809"
$env:ALL_PROXY = "socks5h://127.0.0.1:11808"

6. 새 포트 확인 및 문제 단계별 진단

먼저 수신 상태를 확인하고, 다음으로 프록시 핸드셰이크를 테스트한 뒤, 마지막으로 특정 웹사이트에 접속해 보세요. 이렇게 하면 로컬 포트, 프록시 프로토콜, 원격 연결 문제를 구분할 수 있습니다. 아래 명령의 포트는 예시이므로 설정이 다르면 실제 값으로 바꾸세요.

Test-NetConnection 127.0.0.1 -Port 11808

curl.exe --proxy socks5h://127.0.0.1:11808 --connect-timeout 10 --max-time 20 -I https://example.com/

curl.exe --proxy http://127.0.0.1:11809 --connect-timeout 10 --max-time 20 -I https://example.com/

실제 인바운드 유형에 맞는 curl.exe 명령 하나만 선택하면 됩니다. 혼합 포트가 11808이라면 HTTP 테스트에도 11808을 사용하세요. Test-NetConnection 성공은 TCP 연결이 성립했다는 뜻일 뿐, 프로토콜이 맞거나 원격 노드를 사용할 수 있다는 의미는 아닙니다. 예시 URL은 연결 확인용이며, 프록시를 통해 아웃바운드되는지는 현재 라우팅 규칙에 따라 달라집니다.

확인 결과 먼저 확인할 항목 다음 단계
새 포트에서 수신이 시작되지 않음 설정이 적용됐는지, 코어가 시작됐는지 시작 로그를 확인하고 사용자 지정 설정과 실제 바인딩 주소를 대조
포트는 수신 중이지만 프록시 핸드셰이크 실패 HTTP와 SOCKS 프로토콜이 서로 맞는지 앱의 프록시 유형을 바로잡고 다른 프로그램에 연결된 것은 아닌지 확인
프록시 핸드셰이크 후 연결 시간 초과 아웃바운드 노드, DNS, 라우팅 로그 노드 연결 문제를 확인하고 로컬 포트를 무작정 계속 바꾸지 않기
명령줄은 되지만 브라우저는 실패 브라우저의 프록시 설정 출처와 이전 프로세스 브라우저의 개별 설정을 변경하고 완전히 종료한 뒤 다시 테스트

7. 반복되는 충돌 마무리 점검

컴퓨터를 다시 시작할 때마다 충돌이 반복된다면 포트 번호를 계속 늘리기보다 로그인 시작 항목과 여러 압축 해제 폴더를 확인하세요. 실제로 사용할 클라이언트 폴더 하나를 정하고 수신 포트와 용도를 기록하세요. 두 인스턴스를 함께 실행해야 한다면 각각 다른 수신 포트를 지정하고 앱의 프록시 설정도 따로 관리해야 합니다.

로컬 수신을 복구한 다음 구독, 노드, 라우팅 문제를 확인하세요. 설치부터 첫 실행까지의 전체 절차는 v2rayN 설정 가이드를 참고하세요. 그 밖의 자주 발생하는 오류는 자주 묻는 질문에서 찾아볼 수 있습니다.

v2rayN 다운로드