코어 시작 실패, 수신 주소 바인딩 실패, 포트 변경 후 브라우저 연결 불가 문제가 발생하면 먼저 PC의 수신 포트와 해당 프로세스를 확인하세요. 중복 실행된 인스턴스를 종료할지 포트를 변경할지 판단하면 됩니다. 이 글에서는 10808을 10818로 변경하는 예를 들어 로그 확인, Windows 프로세스 찾기, v2rayN 설정 변경, 앱 프록시 설정 동기화까지 설명합니다. 포트 번호는 예시일 뿐이므로 실제 설정에 맞춰 확인하세요.
로컬 수신 포트 충돌과 노드 연결 실패 구분하기
v2rayN은 설정 및 관리 인터페이스이며, 실제로 로컬 프록시 연결을 받는 것은 v2rayN이 실행하는 코어입니다. 브라우저 요청은 로컬 수신 주소로 전달되고, 코어가 라우팅 규칙에 따라 처리합니다. 로컬 포트를 바인딩할 수 없다면 요청이 원격 노드에 도달하기 전에 연결이 끊깁니다. 이 경우 구독을 업데이트하거나 VMess, VLESS 노드를 바꿔도 대개 해결되지 않습니다.
먼저 메인 화면의 로그 영역에서 시작 실패 전후의 전체 오류 메시지를 확인하세요. 아래 두 문구는 Windows 소켓 오류에서 자주 볼 수 있는 영문 원문이며, 로그 앞부분에 수신 주소와 포트, 코어 정보가 함께 표시될 수 있습니다. ‘연결 실패’라는 문구만으로 포트 충돌이라고 단정하지 마세요.
오류: Only one usage of each socket address (protocol/network address/port) is normally permitted.
원인 및 해결 방법: 일반적으로 해당 주소나 포트가 이미 사용 중인 경우이며, Windows 오류 코드는 10048입니다. 오류 메시지에 표시된 주소와 포트를 확인하고 수신 프로세스를 찾으세요. 중복 실행된 인스턴스를 종료하거나 현재 인스턴스에 사용 가능한 포트를 지정하면 됩니다.
오류: An attempt was made to access a socket in a way forbidden by its access permissions.
원인 및 해결 방법: 일반적으로 Windows 오류 코드 10013에 해당하며, 시스템 포트 제외 범위, 보안 정책 또는 기타 소켓 바인딩 제한과 관련될 수 있습니다. 일반 수신 프로세스가 검색되지 않으면 포트 제외 범위를 추가로 확인하세요. 노드 문제라고 바로 단정하지 마세요.
로그에 원격 연결 시간 초과, 인증 실패 또는 도메인 이름 확인 실패만 표시되고 로컬 수신은 정상적으로 설정되어 있다면 노드 설정, DNS 또는 네트워크 경로를 확인해야 합니다. 이 글에서는 로컬 포트 바인딩을 다루며, 모든 연결 문제를 포트 점유 탓으로 돌리지 않습니다.
netstat로 포트와 PID 확인하기
먼저 「설정」→「매개변수 설정」을 열어 현재 로컬 수신 포트를 기록하세요. 최신 인터페이스에서는 대개 「Core: 기본 설정」에 「로컬 혼합 수신 포트」가 표시됩니다. 버전에 따라 분류나 항목 이름이 조금 다를 수 있으므로 실제 항목을 확인하세요. 아래 포트 번호는 명확한 설명을 위한 예시이며, 모든 버전의 기본값이 같다는 뜻은 아닙니다.
Win + R을 누르고 cmd를 입력한 뒤 Enter 키를 누르세요. 명령 프롬프트에서 첫 번째 명령을 실행하고, 두 번째 명령으로 변경하려는 포트도 확인합니다.
netstat -ano -p tcp | findstr ":10808"
netstat -ano -p tcp | findstr ":10818"
- 「로컬 주소」 열을 확인해 콜론 뒤의 숫자가 대상 포트와 일치하는지 살펴보세요.
findstr는 원격 주소나 더 긴 숫자까지 검색할 수 있으므로 검색 결과의 모든 행을 포트 점유 증거로 보면 안 됩니다. - 상태가
LISTENING인 항목을 확인하세요. 마지막 열의 PID는 프로세스 식별자이며 포트 번호가 아닙니다. 0.0.0.0:10808,[::]:10808처럼 모든 주소에서 수신하는 항목도 확인하세요.127.0.0.1만 검색해서는 안 됩니다. 실제 충돌 여부는 바인딩 주소와 소켓 옵션에 따라 달라집니다.TIME_WAIT를 앱이 여전히 포트를 수신 중인 상태로 간주하지 마세요. 이 상태만 보고 관련 없는 프로세스를 종료해서도 안 됩니다.
정확히 필터링하려면 PowerShell에서 아래 명령을 실행하세요. 로컬 TCP 수신 포트만 검색하며, OwningProcess 값은 추가 확인이 필요한 PID입니다. 결과가 없다는 것은 조회 시점에 해당 TCP 수신 항목을 찾지 못했다는 뜻이지, 포트를 반드시 바인딩할 수 있다는 뜻은 아닙니다.
Get-NetTCPConnection -State Listen |
Where-Object { $_.LocalPort -in 10808,10818 } |
Select-Object LocalAddress,LocalPort,State,OwningProcess
리소스 모니터로 프로세스 확인하기
PID를 찾으면 먼저 어떤 프로세스인지 확인한 다음 종료 여부를 결정하세요. 포트를 수신하는 프로세스는 현재 사용 중인 코어일 수도 있고, 다른 폴더의 v2rayN 인스턴스나 남아 있는 프로세스, 다른 로컬 서비스일 수도 있습니다. 프로세스 이름이 같다는 이유만으로 어느 인스턴스에 속하는지 판단할 수는 없습니다.
-
모니터 열기
Win + R을 누르고
resmon을 입력한 뒤 Enter 키를 누르세요. 「네트워크」 탭으로 이동해 「수신 대기 포트」를 펼친 다음 포트 열에서 10808을 찾아 이미지 이름, PID, 프로토콜을 확인합니다. -
경로 확인하기
작업 관리자의 「세부 정보」 탭에서 PID로 해당 프로세스를 찾은 다음 마우스 오른쪽 버튼을 눌러 「파일 위치 열기」를 선택하세요. 필요한 경우 「명령줄」 열을 표시해 실행 폴더와 매개변수가 현재 v2rayN에 해당하는지 확인합니다.
-
중복 인스턴스 종료하기
다른 v2rayN 인스턴스에서 실행된 프로세스라면 해당 인스턴스의 트레이 메뉴에서 「종료」를 선택하는 것이 좋습니다. 메인 창을 닫아도 트레이로 최소화될 뿐 프로세스가 종료되지 않을 수 있습니다.
-
수신 상태 다시 확인하기
포트 조회를 다시 실행해 기존 수신 항목이 사라졌는지 확인한 다음, 유지할 인스턴스를 시작하세요. 수신 항목이 곧바로 다시 나타난다면 작업 관리자의 「시작 앱」과 작업 스케줄러에서 중복 실행 항목을 확인하세요.
명령줄에서 PID로 이미지 이름을 조회할 수도 있습니다. 예: tasklist /FI "PID eq 4321". 여기서 4321은 명령 구문을 보여 주기 위한 예시이므로 실제로 조회한 PID로 바꿔야 합니다. 이 숫자를 그대로 사용해 프로세스를 종료하지 말고, 포트를 비우려고 시스템 서비스를 함부로 종료하지도 마세요. 해당 서비스를 계속 사용해야 한다면 v2rayN의 포트를 변경하는 편이 일반적으로 적절합니다.
v2rayN 로컬 수신 포트 변경하기
새 포트를 선택하기 전에 먼저 조회해 충돌 중인 포트를 다른 충돌 포트로 바꾸는 일을 피하세요. 포트 범위는 1~65535이며, 여기서는 10818을 예로 듭니다. 설명을 위한 후보값일 뿐, 반드시 비어 있는 특수 포트는 아닙니다. 변경 대상은 PC의 인바운드 수신 포트이며, 노드 편집 창의 서버 포트가 아닙니다.
-
기존 설정 기록하기
기존 수신 주소와 포트, 현재 시스템 프록시 모드를 기록하세요. 다른 소프트웨어에서 수동 프록시를 사용한다면 프록시 유형과 포트도 적어 두어 설정을 동기화하거나 되돌릴 때 참고하세요.
-
매개변수 설정 열기
「설정」→「매개변수 설정」→「Core: 기본 설정」을 열고 「로컬 혼합 수신 포트」를 찾으세요. 현재 인터페이스에서 「로컬 수신 포트」 등으로 표시된다면 기존 포트와 항목 설명을 함께 확인하세요. 노드 주소나 구독 주소는 변경하지 마세요.
-
새 포트 저장하기
이 예에서는 10808을 10818로 변경한 뒤 설정을 저장합니다. 버전에서 HTTP와 SOCKS 수신 항목을 각각 제공한다면 항목별로 확인하세요. 다른 포트가 자동으로 1씩 증가한다고 가정하지 말고, 별도로 수신하는 두 항목에 같은 포트를 임의로 지정하지 마세요.
-
재시작 후 확인하기
설정을 다시 불러오세요. 저장 후 코어가 재시작되지 않았다면 v2rayN을 정상 종료한 다음 다시 실행하면 됩니다. 시작 로그를 확인하고 10818을 조회해 수신이 설정되었는지, PID가 이번에 시작한 코어에 해당하는지 확인하세요.
시스템 프록시, 브라우저, 명령줄 설정 동기화하기
코어가 10818에서 수신하도록 변경해도 10808을 가리키는 앱은 계속 이전 주소에 연결합니다. 따라서 ‘코어는 정상적으로 시작되지만 웹 페이지가 열리지 않는’ 문제는 새 포트가 아니라 연결하는 앱의 설정이 동기화되지 않아 생기는 경우가 많습니다. 노드를 반복해서 바꾸기보다 아래 항목을 차례로 확인하세요.
- 시스템 프록시: v2rayN 트레이 메뉴의 「시스템 프록시」에서 먼저 「시스템 프록시 지우기」를 선택한 다음 「시스템 프록시 자동 구성」을 선택하세요. 이어서 Windows 11의 「설정」→「네트워크 및 인터넷」→「프록시」를 열고 설정된 포트가 현재 포트와 일치하는지 확인합니다. PAC를 사용한다면 현재 설정도 확인하세요. 수동 프록시 항목만 살펴봐서는 안 됩니다.
- 브라우저: 시스템 프록시를 사용하는 브라우저는 대개 시스템 설정을 따릅니다. 별도 프록시 설정을 사용하는 브라우저나 확장 프로그램은 새 포트로 직접 변경해야 합니다. Firefox에서는 「설정」→「일반」→「네트워크 설정」→「설정」에서 시스템 프록시 또는 수동 프록시 옵션을 확인하세요.
- 프록시 유형: HTTP 프록시와 SOCKS 프록시는 서로 다른 프로토콜입니다. 혼합 수신은 지원하는 범위 안에서 서로 다른 유형의 연결을 받을 수 있지만, 독립 수신을 사용하는 경우에는 각 유형에 맞는 포트를 입력해야 합니다. 포트에 연결된다는 이유만으로 프로토콜 설정이 올바르다고 판단하지 마세요.
- 명령줄: 현재 터미널과 사용자 환경 변수의
HTTP_PROXY,HTTPS_PROXY,ALL_PROXY를 확인하세요. 여기에 이전 포트가 지정되어 있다면 값을 업데이트한 뒤 터미널을 다시 여세요. 이미 실행 중인 프로세스에는 대개 시작 당시의 환경 변수가 계속 적용됩니다.
먼저 로컬 TCP 연결을 확인한 다음 프록시 요청을 테스트하세요. 첫 번째 명령은 포트에 TCP 연결을 설정할 수 있는지만 확인하며, 프록시 프로토콜이나 노드가 정상이라는 뜻은 아닙니다. 두 번째 명령은 HTTP 프록시를 명시적으로 사용합니다. HTTP를 지원하는 혼합 수신 또는 HTTP 수신임을 확인한 경우에 사용하세요.
Test-NetConnection -ComputerName 127.0.0.1 -Port 10818
curl.exe --proxy http://127.0.0.1:10818 --connect-timeout 10 --max-time 20 --head https://example.com/
두 명령은 PowerShell에서 실행할 수 있습니다. 첫 번째 명령이 실패하면 수신 상태와 프로세스를 다시 확인하세요. 첫 번째는 성공했지만 두 번째가 실패하면 프록시 유형, 코어 로그, 노드 연결을 점검합니다. 프록시 요청에는 응답이 오는데 브라우저에서 실패한다면 브라우저의 개별 설정, 시스템 프록시, 기존 연결 캐시를 확인하세요. 테스트 결과만으로 모든 웹사이트에 접속할 수 있다고 단정하지 마세요.
점유 프로세스가 없으면 시스템 예약 범위 확인하기
오류 10013이 발생하고 일반 수신 조회에서도 결과가 없으면 관리자 터미널에서 Windows의 포트 제외 범위를 확인할 수 있습니다. 가상화 또는 컨테이너 네트워크 구성 요소가 포트 할당에 영향을 줄 수 있습니다. 관련 여부는 이 PC의 명령 결과로 확인해야 하며, 특정 기능을 설치했다는 이유만으로 결론을 내려서는 안 됩니다.
netsh interface ipv4 show excludedportrange protocol=tcp
netsh interface ipv6 show excludedportrange protocol=tcp
- 시작 포트와 끝 포트를 비교해 10808 또는 후보 포트가 특정 범위에 포함되는지 확인하세요. 실제 수신에 사용되는 주소 계열도 함께 고려해야 합니다.
- 후보 포트가 제외 범위에 포함되어 있다면 범위 밖에 있고 수신 중이지 않은 포트로 바꾼 뒤 저장하고 확인하세요. 시스템 제외 범위를 삭제하는 명령을 그대로 따라 하지 마세요.
- 포트가 수신 중도 아니고 관련 제외 범위에도 포함되지 않는다면 보안 소프트웨어 기록, 조직 정책, 사용자 지정 설정의 중복 인바운드를 추가로 확인하세요.
- 시작 순간에만 충돌이 발생한다면 해당 시점의 전체 로그를 보관하고 바로 프로세스를 조회하세요. 프로세스가 종료된 뒤 조회하면 이전 점유자를 찾지 못할 수 있습니다.
방화벽을 끄는 것을 우선 해결책으로 삼지 마세요. 방화벽 허용, 수신 바인딩, 원격 연결은 서로 다른 단계입니다. 일반적인 인바운드 차단 규칙이 포트를 프로세스가 점유했다는 뜻은 아닙니다. 관리자 권한이 있어도 충돌하는 두 수신 항목이 자동으로 공존하지는 않습니다. 로그에 권한 또는 정책 문제가 명확히 나타날 때만 해당 방향으로 추가 조치하세요.
포트 충돌 자주 묻는 질문
포트를 바꾸면 구독이나 노드에도 영향이 있나요?
로컬 수신 포트를 변경해도 일반적으로 구독 내용이나 원격 노드의 서버 포트는 바뀌지 않습니다. 동기화가 필요한 것은 이 PC의 프록시에 연결하는 앱입니다. 사용자 지정 설정을 사용하는 경우 고정된 인바운드 포트도 확인해 인터페이스 설정과 실제 설정이 달라지지 않도록 하세요.
점유 프로세스가 Xray인데 바로 종료해도 되나요?
PID, 파일 경로, 명령줄을 확인해 어떤 인스턴스에 속하는지 먼저 파악하세요. 현재 정상적으로 작동 중인 코어일 수도 있고 다른 인스턴스일 수도 있습니다. 해당 v2rayN을 먼저 종료하세요. 관리 프로그램은 종료됐는데 코어 프로세스만 남아 있는 것을 확인한 경우 작업 관리자에서 해당 프로세스를 처리한 뒤 수신 상태를 다시 확인합니다.
PC를 켠 뒤 다시 충돌하는데 매번 포트를 바꿔야 하나요?
매번 바꿀 필요는 없습니다. PC를 켠 직후 포트를 조회해 PID를 확인하고, 서로 다른 폴더의 v2rayN이 동시에 자동 시작되는지 또는 다른 상시 실행 서비스가 먼저 포트를 수신하는지 점검하세요. 필요한 시작 항목만 남기고 함께 실행해야 하는 프로그램에는 서로 다른 포트를 배정해야 다음 로그인 때 같은 문제가 반복되지 않습니다.
TUN을 켜면 이 문제를 피할 수 있나요?
TUN을 포트 충돌 해결 기능으로 간주해서는 안 됩니다. TUN의 트래픽 처리 경로는 시스템 프록시와 다르지만 설정에 로컬 수신이 남아 있을 수 있습니다. 충돌하는 인바운드가 계속 시작되면 오류도 지속될 수 있습니다. 먼저 바인딩 문제를 해결한 다음, 앱이 시스템 프록시 설정을 사용하는지에 따라 TUN이 필요한지 판단하세요. 자세한 내용은 매뉴얼의 TUN 섹션을 참고하세요.
v2rayN 클라이언트 다운로드
운영체제와 아키텍처에 맞는 클라이언트를 선택하세요. 처음 설정한다면 안내에 따라 구독을 가져오고 시스템 프록시를 설정할 수 있습니다.