v2rayN 로컬 포트 사용 중: 10808 충돌 확인 및 수신 포트 변경

v2rayN 실행 시 포트 사용 중 오류가 뜨나요? Windows 명령으로 점유 프로세스를 찾고 로컬 혼합 수신 포트를 변경한 뒤, 브라우저와 시스템 프록시 설정을 함께 업데이트하는 방법을 안내합니다.

핵심 내용

Windows에서 v2rayN을 실행한 뒤 수신에 실패하거나 코어가 종료되거나 브라우저 연결이 거부되는 경우에 적합합니다. 먼저 로그에서 충돌한 포트가 로컬 10808인지 확인한 다음 PID로 점유 프로그램을 찾으세요. 안전하게 종료할 수 있는 이전 프로세스라면 포트를 비우고, 여러 인스턴스를 함께 실행해야 한다면 사용 가능 여부를 확인한 10818로 변경합니다. 마지막으로 시스템 프록시, 브라우저 확장 프로그램, 터미널 변수를 함께 업데이트하고 로컬 수신과 실제 접속을 각각 확인하세요. 구독이나 원격 노드부터 변경할 필요는 없습니다.

오류부터 구분하기: 로컬 수신 실패는 노드 장애가 아닙니다

v2rayN 메인 창 아래쪽의 로그 영역에서 listen, bind 및 로컬 주소가 포함된 줄을 확인하세요. 실패 주소가 127.0.0.1:10808이라면 코어가 해당 연결 지점을 열지 못한 것입니다. 브라우저 요청이 아직 코어에 전달되기 전이므로 VMess 또는 VLESS 노드를 바꾸거나 구독을 반복해서 업데이트해도 로컬 포트는 비워지지 않습니다.

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

원인 및 해결 방법: 같은 수신 주소와 포트를 다른 프로세스가 이미 사용 중일 가능성이 큽니다. 이 줄 앞에 표시된 주소를 기준으로 PID를 조회하고 점유 프로세스를 확인한 뒤, 중복 인스턴스를 종료하거나 v2rayN의 수신 포트를 변경하세요.

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

원인 및 해결 방법: 시스템 예약 포트, 독점 바인딩 또는 보안 정책이 원인일 수 있으며, 일반적인 프로세스 점유와는 다릅니다. 먼저 수신 목록을 확인하고 Windows 제외 포트 범위를 조회하세요. 보안 소프트웨어를 바로 끄지 마세요.

오류: Failed to connect to 127.0.0.1 port 10808

원인 및 해결 방법: 접속하는 쪽에서 로컬 프록시에 연결하지 못했다는 뜻이며, 이 메시지만으로 포트 충돌이라고 단정할 수는 없습니다. 코어가 실행 중인지, 클라이언트의 실제 수신 포트가 여전히 10808인지 확인하세요.

이 문서에서는 Windows 10, Windows 11 및 v2rayN 7.x 한국어 인터페이스의 혼합 수신 설정을 기준으로 설명합니다. 세부 버전에 따라 옵션 그룹이 달라질 수 있으므로 현재 창에 표시된 항목을 확인하세요. 이전 설정은 SOCKS와 HTTP 포트를 각각 지정할 수도 있습니다. 10808과 10809가 모든 버전에서 공통으로 쓰이는 고정 포트 쌍이라고 가정하지 마세요.

10808을 수신 중인 프로세스와 프로그램 경로 확인하기

PowerShell에서 아래 명령을 먼저 실행하세요. 이 명령은 TCP 수신 상태만 조회하며 프로그램을 종료하지 않습니다. 결과가 없으면 조회 시점에 해당 포트를 수신 중인 TCP 프로세스가 없다는 뜻입니다. 결과가 있으면 OwningProcess 값을 기록하고 로컬 주소가 루프백인지 와일드카드 주소인지 확인하세요.

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

조회된 PID가 6420이라고 가정하고 아래 명령으로 프로세스 이름, 경로, 명령줄을 확인합니다. 6420은 예시일 뿐이므로 실행할 때는 현재 PC에서 조회한 값으로 바꿔야 합니다. 일반 권한으로 경로가 보이지 않으면 관리자 PowerShell에서 다시 조회할 수 있습니다. 그렇다고 클라이언트 실행 권한까지 높이지는 마세요.

Get-Process -Id 6420 | Select-Object Id, ProcessName, Path
Get-CimInstance Win32_Process -Filter "ProcessId = 6420" |
  Select-Object ProcessId, ExecutablePath, CommandLine

명령 프롬프트를 사용한다면 다음 명령으로 조회할 수도 있습니다. findstr는 텍스트를 필터링할 뿐이므로, 로컬 주소 열의 포트가 정확히 10808이고 상태가 LISTENING인지 직접 확인해야 합니다. 원격 포트나 이미 연결된 상태를 수신 충돌로 오인하지 마세요.

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

이전 인스턴스 종료 또는 로컬 혼합 수신 포트 변경

먼저 중복 실행인지, 여러 인스턴스를 함께 실행해야 하는 상황인지 구분하세요. 점유 프로세스가 더 이상 사용하지 않는 이전 인스턴스라면 시스템 트레이 메뉴에서 「종료」를 선택하고 몇 초 뒤 다시 조회합니다. 메인 창을 닫아도 트레이로 최소화될 뿐 수신 포트가 해제되지 않을 수 있습니다.

  1. 기존 설정 기록하기

    「설정」→「매개변수 설정」에서 현재 수신 포트, 수신 주소, LAN 연결 옵션을 기록하세요. 되돌릴 수 있도록 기존 값 10808을 남겨 두세요. 노드 편집 창의 서버 포트는 변경하지 마세요.

  2. 새 포트 사용 가능 여부 확인하기

    앞서 사용한 PowerShell 명령으로 10818을 조회하세요. -LocalPort 10808을 -LocalPort 10818로 바꾸면 됩니다. 수신 기록이 없으면 아래 설명에 따라 제외 범위도 확인하세요. 10818은 예시이며 모든 PC에서 사용 가능한 것은 아닙니다.

  3. 수신 포트 변경하기

    「설정」→「매개변수 설정」→「Core: 기본 설정」으로 이동해 「로컬 혼합 수신 포트」를 찾고 10808을 10818로 변경하세요. 버전에 따라 SOCKS와 HTTP 항목이 따로 있다면 각각의 값을 기록하고 설정한 뒤, 이후에는 실제 프로토콜에 맞는 포트를 입력하세요.

  4. 저장 후 다시 불러오기

    「확인」을 클릭하고 코어가 다시 로드되는 로그를 확인하세요. 인터페이스에서 재시작을 안내하면 v2rayN을 완전히 종료한 뒤 다시 실행합니다. 새 바인딩 실패가 없는지 확인하고 10818이 수신 상태인지 조회하세요.

  5. 연결 지점 확인하기

    새 포트에 해당하는 PID가 현재 사용하는 클라이언트 폴더의 프로세스인지 확인하세요. PC 내부에서만 사용할 경우 루프백 수신을 유지하세요. 충돌을 해결하려고 「LAN에서의 연결 허용」을 켜지 마세요. 수신 범위를 넓혀도 포트 충돌은 해결되지 않습니다.

시스템 프록시, 브라우저, 명령줄 설정 동기화하기

로컬 혼합 포트는 HTTP와 SOCKS 요청에 같은 연결 지점을 사용할 수 있지만, 모든 앱의 개별 설정까지 자동으로 바꾸지는 않습니다. 포트를 10818로 변경한 뒤 브라우저 확장 프로그램이나 터미널이 여전히 10808을 가리키면 코어는 실행 중인데 웹페이지가 열리지 않는 문제가 생길 수 있습니다.

앱 프록시 설정 로컬 수신 포트 코어 라우팅 규칙 원격 노드 연결 대상 사이트 응답
  1. 시스템 프록시 새로 설정: v2rayN 메인 화면 아래쪽의 「시스템 프록시」에서 먼저 「시스템 프록시 해제」를 선택한 다음 「시스템 프록시 자동 설정」을 선택하세요. 이 단계는 연결 지점 설정을 다시 기록하는 과정이며 모든 프로그램이 해당 설정을 따르는 것은 아닙니다.
  2. Windows 설정 확인: Windows 「설정」→「네트워크 및 인터넷」→「프록시」로 이동하세요. 수동 프록시를 사용한다면 주소와 포트를 확인하고, 자동 구성 스크립트를 사용한다면 이전 스크립트 주소가 남아 있는지 확인하세요. 과거 설정 두 가지를 함께 사용하지 않도록 주의하세요.
  3. 브라우저 확장 프로그램 확인: 확장 프로그램이 프록시를 제어한다면 HTTP 또는 SOCKS 연결 주소를 127.0.0.1:10818로 바꾸거나, 테스트하는 동안 시스템 프록시를 사용하도록 전환하세요. 확장 프로그램에 이전 포트가 남아 있으면 시스템 설정을 덮어쓸 수 있습니다.
  4. 터미널 변수 확인: HTTP_PROXY, HTTPS_PROXY, ALL_PROXY에 10808이 남아 있는지 확인하고 앱 자체의 프록시 설정 파일도 살펴보세요.

아래 명령은 현재 PowerShell 세션만 변경하며 환경 변수를 영구 저장하지 않습니다. 혼합 수신을 사용 중이라면 HTTP 연결 주소로 두 변수를 설정할 수 있습니다. HTTPS_PROXY라는 변수 이름은 HTTPS 요청에 사용할 프록시라는 뜻이며, 프록시 주소 자체가 반드시 https://로 시작해야 한다는 의미는 아닙니다.

$env:HTTP_PROXY = "http://127.0.0.1:10818"
$env:HTTPS_PROXY = "http://127.0.0.1:10818"
Remove-Item Env:ALL_PROXY -ErrorAction SilentlyContinue

앱에서 원래 SOCKS를 사용했다면 지원 여부를 확인한 뒤 socks5h://127.0.0.1:10818로 바꿀 수 있습니다. 모든 명령줄 프로그램이 같은 변수를 지원한다고 가정하지 마세요. 시스템 설정에서 변수를 영구 저장했다면 저장된 값도 변경하고 터미널을 새로 여세요.

점유 기록이 없을 때 확인할 제외 포트 및 수신 설정

로그에 권한 관련 바인딩 오류가 표시되지만 수신 조회 결과가 없다면 Windows의 제외 포트 범위를 확인하세요. 가상화 또는 네트워크 서비스 때문에 일부 포트는 일반 바인딩에 사용할 수 없습니다. 수신 목록이 비어 있어도 해당 포트를 사용할 수 있다고 단정할 수는 없습니다.

netsh interface ipv4 show excludedportrange protocol=tcp
netsh interface ipv6 show excludedportrange protocol=tcp

로컬 바인딩 실패를 피하려고 원격 노드의 서버 포트를 변경하지 마세요. 서버 포트는 아웃바운드 연결 설정이고 로컬 혼합 포트는 인바운드 수신 설정이므로 두 값이 같을 필요는 없습니다. 네트워크 전체를 초기화하거나 클라이언트를 재설치하는 것도 우선하지 마세요. 변경 범위만 커질 뿐 포트 점유 문제가 해결된다는 보장은 없습니다.

두 단계로 확인하기: 먼저 수신 상태, 다음 요청 테스트

변경을 마친 뒤 10818이 수신 중인지 확인하고 프록시를 명시해 요청을 테스트하세요. 이렇게 하면 코어 미실행, 앱이 계속 사용하는 이전 포트, 원격 연결 실패를 구분할 수 있습니다. 트레이 아이콘만 보고 해결 여부를 판단하지 마세요.

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

curl.exe --noproxy "" --proxy http://127.0.0.1:10818 --connect-timeout 5 --max-time 15 -I https://example.com/

여기서는 curl.exe를 사용합니다. 이전 버전의 Windows PowerShell에서 curl이 다른 명령으로 해석되는 문제를 피하기 위해서입니다. --noproxy ""는 기존 우회 목록 때문에 이번 프록시 테스트가 건너뛰어지는 것을 방지합니다. 5초는 연결 시간 제한, 15초는 전체 요청 제한이며 실제 지연 시간 측정값이 아닙니다. 예시 사이트는 요청 경로 확인용이므로 실제로 접속할 대상도 별도로 테스트해야 합니다.

자주 묻는 질문: 포트 변경 후 빠뜨리기 쉬운 설정

10808을 반드시 10818로 바꿔야 하나요?

그렇지 않습니다. 10818은 비교를 위한 예시일 뿐입니다. 수신 상태와 제외 범위를 확인한 뒤 사용할 수 있는 포트를 선택하세요. 포트 번호가 높다고 연결 속도가 빨라지는 것은 아닙니다. 포트를 정한 뒤에는 모든 접속 프로그램에서 같은 값을 사용하면 됩니다.

컴퓨터를 다시 시작할 때마다 충돌이 발생하면 어떻게 하나요?

오류가 발생한 직후 점유 PID와 프로세스 경로를 확인하세요. Windows 「설정」→「앱」→「시작」과 작업 스케줄러에 이전 폴더를 실행하는 항목이 저장되어 있는지도 살펴보세요. 예상한 한 가지 방식만 남기고, 중복 실행을 가리기 위해 포트를 계속 바꾸지 마세요.

혼합 포트를 바꾸면 구독과 노드도 다시 입력해야 하나요?

로컬 포트가 바뀌었다고 노드 정보를 다시 입력할 필요는 없습니다. 원격 서버 주소, 포트, 인증 정보는 그대로 두고 로컬 연결 지점을 사용하는 앱 설정만 업데이트하세요. 구독 업데이트가 프록시를 거친다면 업데이트 요청이 새 연결 지점을 실제로 사용하는지도 확인하세요.

관리자 권한으로 실행하면 바로 해결되나요?

관리자 권한으로 실행해도 두 개의 일반 수신 프로세스가 같은 충돌 지점을 동시에 사용할 수는 없습니다. 관리자 권한은 제한된 프로세스 정보를 확인하거나 시스템 진단을 수행할 때 주로 필요합니다. 점유 문제는 이전 인스턴스를 종료하거나 포트를 변경해 해결해야 합니다.

마무리할 때 최종 수신 포트, 해당 프로세스의 경로, 개별 프록시 설정을 사용하는 앱을 기록해 두세요. 다음에 업그레이드하거나 폴더를 옮긴 뒤 이 세 항목을 먼저 비교하면 문제가 로컬 연결 지점에서 발생했는지 이후 연결 경로에서 발생했는지 더 빠르게 파악할 수 있습니다.

v2rayN 다운로드운영체제 및 설치 파일 선택