v2rayN에서 코어를 시작할 때 수신에 실패하거나, 시스템 프록시가 10808을 가리키는데 연결되지 않는 경우에 적용할 수 있습니다. 먼저 오류에 표시된 주소와 포트를 확인한 다음 시스템 명령어로 해당 포트를 사용하는 프로세스를 찾으세요. 해당 프로세스를 종료할 수 없다면 v2rayN의 로컬 포트를 변경하고, 기존 포트를 사용하는 앱도 하나씩 업데이트하세요.
먼저 로컬 수신 포트 충돌인지 확인하세요
v2rayN의 로컬 SOCKS 또는 HTTP 포트는 브라우저와 터미널 같은 앱에서 프록시 요청을 받는 입구입니다. 노드 설정의 원격 서버 포트와는 별개입니다. 로그에 127.0.0.1:10808 바인딩 실패가 표시된다면 확인할 대상은 현재 컴퓨터의 10808 포트이지, 구독 링크나 노드 주소가 아닙니다.
먼저 v2rayN 로그에서 프로토콜, 수신 주소, 포트를 포함한 오류 내용을 확인하세요. 설정에 따라 10808이나 10809를 사용할 수도 있고 직접 변경했을 수도 있으므로, 흔히 쓰이는 포트 번호만 보고 판단하지 마세요. 오류에 0.0.0.0:10808이 표시된다면 같은 포트에서 다른 로컬 주소를 사용 중인 프로세스도 확인해야 합니다.
포트 충돌은 두 번째 단계에서 발생합니다. 코어가 아직 로컬 연결을 정상적으로 받지 못한 상태이므로 VMess나 VLESS 노드를 바꿔도 보통 해결되지 않습니다. 포트 수신은 정상인데 특정 노드에만 접속할 수 없다면 노드 상태, 라우팅 규칙, DNS를 확인하세요.
오류: bind: address already in use
원인 및 해결 방법: 지정한 로컬 주소와 포트를 다른 프로세스가 사용 중입니다. 해당 프로세스를 찾아 중복 실행된 인스턴스를 종료하거나 v2rayN에 사용 가능한 포트를 지정하세요.
오류: Only one usage of each socket address is normally permitted
원인 및 해결 방법: Windows에서 같은 소켓 주소를 중복으로 바인딩할 수 없습니다. netstat으로 PID를 확인한 다음 해당 프로세스가 계속 실행되어야 하는지 확인하세요.
오류: connection refused 127.0.0.1:10808
원인 및 해결 방법: 앱은 여전히 10808에 연결을 시도하지만 해당 주소에서 사용할 수 있는 프록시가 수신 중이지 않습니다. v2rayN의 현재 포트를 확인하고 앱의 프록시 주소를 업데이트하세요. 연결 거부를 곧바로 포트 충돌로 판단해서는 안 됩니다.
Windows: netstat과 PID로 포트 사용 프로세스 찾기
명령 프롬프트에서 10808과 10809를 각각 조회하세요. netstat -ano는 로컬 주소, 연결 상태, PID를 표시합니다. 상태가 LISTENING이고 로컬 주소의 포트가 오류에 표시된 값과 일치하는 행만 확인하세요. 원격 주소에 10808이 표시되어도 로컬 수신 포트 충돌을 뜻하지는 않습니다.
netstat -ano | findstr :10808
netstat -ano | findstr :10809
tasklist /FI "PID eq 4321"
위 예시의 4321은 설명용 PID입니다. 세 번째 명령어를 실행할 때는 조회 결과의 마지막 열에 표시된 값으로 바꾸세요. findstr는 텍스트를 필터링할 뿐이므로 비슷한 포트나 기존 연결이 함께 표시될 수 있습니다. 로컬 주소 전체와 LISTENING 상태를 확인하고, 필터 결과만 보고 프로세스를 종료하지 마세요.
| 조회 결과 | 판단 기준 | 다음 단계 |
|---|---|---|
127.0.0.1:10808、LISTENING | 해당 프로세스가 대상 로컬 주소에서 수신 중입니다. | PID로 프로그램 이름을 조회해 v2rayN이 중복 실행되었는지 확인하세요. |
0.0.0.0:10808、LISTENING | 프로세스가 모든 IPv4 로컬 주소에서 해당 포트를 수신 중입니다. | 먼저 프로세스의 용도를 확인한 뒤 종료할지 포트를 변경할지 결정하세요. |
ESTABLISHED 행만 표시되는 경우 | 현재 결과만으로는 대상 주소에서 수신 중인 프로세스가 있다고 판단할 수 없습니다. | 로그에 표시된 포트를 다시 확인하고 코어를 재시작할 때 재조회하세요. |
PowerShell에서 로컬 포트와 수신 상태를 기준으로 바로 필터링할 수도 있습니다. 먼저 OwningProcess를 확인한 다음 프로세스 이름을 조회하세요. 다른 서비스가 사용 중인 포트라면 v2rayN의 포트를 변경하는 편이 좋습니다. 용도를 모르는 시스템 프로세스를 포트 확보만을 위해 종료하지 마세요.
Get-NetTCPConnection -LocalPort 10808 -State Listen
Get-Process -Id 4321
macOS 및 Linux: lsof로 수신 주소 확인
터미널에서 lsof를 실행할 때 -nP를 지정하면 주소와 포트가 숫자로 표시되어 로그와 바로 비교할 수 있습니다. -sTCP:LISTEN은 결과를 TCP 수신 프로세스로 제한합니다. 먼저 sudo 없이 조회하고, 권한 제한으로 프로세스 정보가 충분히 표시되지 않을 때 관리자 권한으로 다시 시도하세요.
lsof -nP -iTCP:10808 -sTCP:LISTEN
lsof -nP -iTCP:10809 -sTCP:LISTEN
sudo lsof -nP -iTCP:10808 -sTCP:LISTEN
출력에서 COMMAND는 프로세스 이름, PID는 프로세스 식별 번호, NAME은 수신 주소를 나타냅니다. 127.0.0.1:10808, *:10808 또는 IPv6 수신 주소가 보이면 v2rayN 로그의 바인딩 주소와 함께 확인해 충돌 범위를 판단하세요. 같은 프로그램의 이전 인스턴스가 종료되지 않아 코어 프로세스가 계속 실행 중일 수도 있습니다.
조회 결과가 비어 있다면 조회 시점에 필터 조건에 맞는 TCP 수신 프로세스를 찾지 못했다는 뜻입니다. 코어가 시작되는 순간 다른 프로그램이 포트를 먼저 사용했거나, 실제 오류가 다른 포트를 가리킬 수 있습니다. 로그 원문을 보관하고 코어를 다시 시작하는 동안 재조회하세요.
프로세스를 종료하기 전에 출처를 확인하고 해당 프로그램에서 제공하는 정상 종료 방법으로 서비스를 중지하세요. 계속 실행해야 하는 로컬 서비스가 포트를 사용 중이라면 사용 가능한 다른 포트로 변경하는 편이 낫습니다. 포트 번호는 속도 설정이 아닙니다. 10808을 20808로 바꿔도 원격 연결 속도가 빨라지지는 않습니다.
v2rayN 포트 변경 및 프록시 주소 업데이트
여기서는 SOCKS 포트를 10808에서 20808로, 별도로 설정된 HTTP 포트를 10809에서 20809로 변경하는 예를 듭니다. 버전에 따라 설정 화면에 로컬 수신 포트, SOCKS 포트 또는 HTTP 포트로 표시될 수 있으므로 현재 항목을 먼저 확인한 뒤 해당 포트만 변경하세요. 설정에 혼합 프록시 입구 하나만 있다면 예시를 따라 두 번째 수신 포트를 임의로 만들지 마세요.
기존 포트 기록
v2rayN 메인 화면에서 현재 시스템 프록시 상태를 확인하고, ‘설정’ → ‘매개변수 설정’에서 로컬 수신 포트를 기록하세요. 브라우저와 터미널에서 사용 중인
127.0.0.1포트도 따로 적어 두면 항목별로 업데이트하기 편합니다.새 포트 확인
앞서 안내한 시스템 명령어로 20808을 확인하세요. HTTP 포트를 별도로 사용하는 경우 20809도 확인합니다. 조회 시 사용 중인 프로세스가 없는 것은 필요한 확인 단계일 뿐입니다. 설정을 저장한 후에도 코어가 포트를 정상적으로 바인딩하는지 확인해야 합니다.
수신 포트 변경
‘설정’ → ‘매개변수 설정’에서 오류가 발생한 로컬 SOCKS 수신 포트를
20808로 변경하세요. 별도의 HTTP 포트가 있고 해당 입구를 사용 중이라면20809로 바꾼 다음 설정을 저장하세요.코어 재시작
v2rayN 화면에서 코어를 재시작하고 새 로그에 바인딩 실패가 다시 표시되는지 확인하세요. 그런 다음
netstat또는lsof로 새 포트를 조회해 수신 프로세스가 나타나는지 확인합니다.앱 설정 업데이트
v2rayN의 시스템 프록시 설정을 다시 적용하세요. 프록시를 직접 설정한 브라우저, 터미널 및 기타 데스크톱 앱은 각각 기존 포트를 새 포트로 바꿔야 합니다. v2rayN만 변경하고 앱 설정을 그대로 두면 앱은 계속 기존 포트에 연결합니다.
브라우저에서 시스템 프록시를 사용한다면 시스템 프록시를 다시 적용한 뒤 서버 주소와 포트가 올바른지 확인하세요. 브라우저에 프록시를 별도로 설정했다면 네트워크 또는 프록시 설정에서 직접 변경합니다. HTTP 프록시는 실제로 사용하는 HTTP 또는 혼합 입구를 가리켜야 합니다. SOCKS5 프록시는 사용 중인 SOCKS 또는 혼합 입구를 가리켜야 하므로 포트 번호뿐 아니라 프로토콜 유형도 확인하세요.
새 포트 확인: ‘수신 중인데 인터넷에 연결되지 않는’ 문제 구분
두 단계로 확인하세요. 먼저 새 포트를 예상한 프로세스가 수신 중인지 확인한 다음, 앱에서 해당 포트를 통해 요청을 보냅니다. 아래 curl 명령어는 별도 HTTP 입구와 SOCKS5 입구를 각각 테스트합니다. 현재 설정에서 실제로 사용하는 입구만 실행하세요. socks5h는 대상 도메인 이름을 프록시 측에서 조회하므로 로컬 DNS 조회 결과가 테스트에 영향을 주지 않도록 합니다.
curl -I --proxy http://127.0.0.1:20809 https://example.com
curl -I --proxy socks5h://127.0.0.1:20808 https://example.com
명령어에서 connection refused가 반환되면 먼저 수신 프로세스가 있는지, 주소가 127.0.0.1인지, 포트와 프로토콜을 올바르게 입력했는지 확인하세요. 요청이 코어에 도달한 뒤 시간 초과가 발생한다면 로컬 포트를 계속 바꾸기보다 노드 연결 상태, 라우팅 규칙, DNS를 확인해야 합니다.
20808로 바꿨는데 브라우저에서 계속 연결에 실패하는 이유는 무엇인가요?
브라우저가 시스템 프록시를 사용하는지, 별도 프록시 설정을 저장했는지 확인하세요. 별도 설정에 입력된 127.0.0.1:10808은 v2rayN 설정을 바꿔도 자동 업데이트되지 않습니다. 현재 사용 중인 입구로 변경한 다음 페이지를 다시 열어 테스트하세요.
터미널 포트를 바꿨는데 curl이 여전히 이전 주소를 사용하는 이유는 무엇인가요?
현재 터미널 세션의 HTTP_PROXY, HTTPS_PROXY, ALL_PROXY와 각 변수의 소문자 버전을 확인하고, 명령어에서 --proxy를 별도로 지정했는지도 확인하세요. 변수를 업데이트한 뒤 같은 터미널 세션에서 테스트를 다시 실행합니다.
netstat에서 사용 프로세스가 v2rayN으로 나오는데 바로 종료해도 되나요?
먼저 v2rayN을 두 개 실행했는지 확인하고, 불필요한 인스턴스는 화면에서 정상 종료하세요. 이전 코어 프로세스가 종료되었는지 확인한 뒤 인스턴스 하나만 실행하고 수신 PID를 다시 확인합니다.
포트 수신은 정상인데 구독 노드가 모두 시간 초과되면 어떻게 하나요?
로컬 수신이 정상이라면 앱이 프록시 입구에 연결할 수 있다는 것만 확인된 상태입니다. v2rayN에서 코어 로그와 현재 노드 상태를 확인하고 구독 내용, 원격 서버 연결, 라우팅 규칙을 각각 점검하세요. 원격 연결 시간 초과를 로컬 포트 충돌로 판단하지 마세요.
마지막으로 시스템 프록시와 수동 프록시가 모두 새 포트를 가리키는지 확인하세요. 터미널 프록시 환경 변수를 설정했다면 터미널을 닫았다가 다시 열고 시작 설정의 포트도 업데이트되었는지 확인합니다. 변경 전 포트는 기록해 두세요. 설정을 되돌려야 한다면 기존 포트가 더 이상 사용 중이 아닌지 확인한 뒤 v2rayN과 각 앱의 포트 설정을 함께 복원하세요.