# Proxy Port: Username을 통한 타겟팅 및 세션 제어

> URL: https://foura.ai/ko/blog/proxy-port-username-options
> Updated: 2026-09-27
> Index: https://foura.ai/llms.txt

## 새로운 기능

글자 하나만 빠져도 문제가 발생합니다. proxy 사용자 이름에 `-contry-de`를 입력하면 오타가 눈에 띄지 않아 정상적인 옵션처럼 보일 수 있습니다.

FourA proxy 포트는 인식 가능한 모든 키를 나열하는 400 에러로 응답합니다. 이는 [9월 15일에 베타를 종료한](https://foura.ai/blog/foura-digest-2026-09-18) 제품의 작은 디테일 중 하나입니다. 브라우저, 다운로드 도구, 기존 스크래퍼 등 proxy를 지원하는 모든 클라이언트를 위한 [출구 노드의 proxy URL](https://foura.ai/proxy)을 제공하며, API 호출을 직접 작성할 필요가 없습니다. Dashboard에서 proxy 사용자를 생성하고 해당 문자열을 붙여넣기만 하면, 터널과 트래픽이 API request와 동일한 방식으로 요금제 사용량에 반영됩니다.

전체 문법 구조와 각 규칙이 적용된 이유는 다음과 같습니다.

## 작동 방식

포트는 `proxy.foura.ai:34004`에 위치하며 443 및 80 포트의 대상을 향해 Basic 인증을 사용하는 HTTP CONNECT로 통신합니다. 자격 증명은 API 키와 의도적으로 분리된 proxy 사용자입니다. proxy 핸드셰이크는 평문으로 전송되며, proxy 사용자는 API 연동을 수정하지 않고도 비밀번호를 새로 발급받을 수 있습니다.

자격 증명 뒤에는 순서에 관계없이 `-key-value` 쌍 목록이 이어집니다.

```bash
# Shared network, a German address, one sticky session for this job
curl -x "http://USERNAME-country-de-session-job42:PASSWORD@proxy.foura.ai:34004" \
  https://example.com

# Premium network, an Android address in Germany, held 30 minutes
curl -x "http://USERNAME-network-premium-country-de-os-android-session-s1-lifetime-30:PASSWORD@proxy.foura.ai:34004" \
  https://example.com
```

Shared는 FourA 자체 출구 노드로, 기본값이며 요금제에 포함되어 있습니다. Premium은 주거지 주소로, 요금제의 프리미엄 트래픽 및 추가 구매한 트래픽에서 차감됩니다. 공유 네트워크에서 `-fallback-premium` 옵션을 사용하면 공유 노드로 연결을 처리할 수 없을 때 프리미엄 출구로 전환할 수 있습니다. 사용자가 직접 활성화하지 않으면 꺼져 있으며, 프리미엄 잔여량이 남아 있을 때만 동작합니다. 이를 기본값으로 켜 두는 것은 사용자 동의 없이 해당 허용량을 소비하도록 강제하는 것이기 때문입니다.

Country는 반복 지정이 가능하므로 `-country-de-country-fr`는 2개 국가 범위가 됩니다. Region, city, AS number 기반 네트워크, device(`windows`, `android`, `ios`, `mac`) 및 `lifetime`(3~1440분)는 프리미엄 전용입니다. 공유 네트워크에서 도시를 요청하면 best effort 방식 대신 400 에러를 반환합니다. 대부분 처리할 수 없는 도시 필터를 두는 것보다 필터가 아예 없는 편이 낫기 때문에, 공유 네트워크는 국가 단위까지만 선택할 수 있고 더 세부적인 설정은 지원하지 않습니다.

`-session-<name>`(1~32자의 영문자, 숫자, 밑줄)를 사용하면 고정 세션을 유지할 수 있어, 동일한 세션 이름을 가진 모든 연결이 하나의 주소를 공유합니다. 공유 네트워크에서 주소는 10분의 슬라이딩 윈도우 방식으로 유지되므로 지속해서 사용하는 한 주소가 유지됩니다. 프리미엄에서는 사용자가 설정한 `lifetime` 또는 네트워크 기본값 동안 유지됩니다. 세션을 지정하지 않으면 각 연결은 매번 새로운 주소에서 시작됩니다.

또한 저장된 기본값 기능도 제공됩니다. Dashboard에서 프록시 사용자에 저장된 타겟팅은 해당 사용자가 생성하는 모든 연결에 적용되므로, 연결 문자열을 순수 인증 정보 수준으로 줄일 수 있습니다. 여전히 username에 명시된 값이 개별 연결에서 우선 적용되며, `any`를 사용하여 저장된 값을 초기화할 수 있습니다. 예를 들어 `-city-any`는 뮌헨으로 저장된 키를 독일 전체 대상으로 요청하도록 변경합니다. CONNECT 요청에 header를 추가할 수 있는 클라이언트(curl의 경우 `--proxy-header` 사용 가능)는 동일한 옵션을 `X-Foura-Country`, `X-Foura-Session` 등으로 보낼 수 있으며, header가 username보다 우선합니다.

## 영향

이러한 변화를 통해 불필요한 의문들을 해소할 수 있습니다.

**요청이 거부된 이유는 무엇인가요?** 인증 정보가 확인된 후 거부되는 모든 요청에는 한 줄의 이유가 담긴 `X-Foura-Error` header가 포함됩니다. 400 에러는 문제가 된 옵션과 허용되는 값을 명시합니다. 429 에러는 요금제 한도 중 어떤 항목에 도달했는지 알려줍니다(동시 오픈 터널 수, 분당 터널 오픈 수, 또는 청구 기간 내 표준 트래픽).

**허용량은 누구에게 귀속되나요?** 계정에 귀속됩니다. 터널 수와 오픈 횟수는 프록시 사용자별이 아닌 계정 단위로 계산되므로, 인증 정보를 추가한다고 해서 허용량이 두 배로 늘어나지 않습니다. 바이트는 요금제의 대역폭에 반영되며, 프리미엄 바이트는 전체 대역폭 내 프리미엄 허용량에서 차감될 뿐 추가되지 않습니다. 크레딧 기반 요금제의 경우 포트 자체에 기본 기가바이트가 포함되어 있으며, 이는 Billing 페이지에서 충전할 수 있습니다. 터널이 열리지 않으면 아무것도 차감되지 않습니다.

**인증 정보의 소유권은 누구에게 있나요?** 이제 조직 단위로 소유할 수 있으므로, 특정 직원이 퇴사하더라도 회사의 다운로더가 중단되지 않습니다. 멤버는 이를 사용하고 비밀번호를 확인할 수 있으며, 관리자와 소유자는 순환, 비활성화 또는 타겟팅 재설정을 수행할 수 있습니다. 소유자만이 인증 정보를 외부로 이전할 수 있습니다.

**어떤 기능인가요?** Overview, Metrics 또는 Activity에서 Product 스위치를 Proxy로 전환해 보세요. API request와 동일한 결과 클래스로 분류된 tunnel, 현재 열려 있는 개수, 설정 시간 및 트래픽이 표시되며 proxy 사용자, 대상, 출구 국가 또는 client IP별로 분할되어 제공됩니다. 이미 주소가 할당된 session은 일반적으로 1초 미만으로 연결됩니다.

하지만 포트는 파이프 역할을 하므로 트레이드오프가 존재합니다. client가 tunnel을 통해 사이트와 통신하므로 브라우저 프로필, [validate rules](https://foura.ai/blog/validate-decides-success) 및 대화형 페이지 처리는 해당 경로에 포함되지 않습니다. 또한 바이트 단위로 측정됩니다. 열려 있는 tunnel을 통해 들어오는 거부 페이지도 다른 트래픽과 동일하게 바이트로 계산되지만, API에서는 성공하지 않은 request에 비용이 청구되지 않습니다. 단순 바이트 전송은 포트를 이용하고, 방어가 걸린 페이지는 API로 전송하십시오.

## 고급 사용자 안내

프리미엄 허용량이 소진되면 해당 네트워크로 연결되는 세 가지 경로에 의도적으로 서로 다른 세 가지 응답이 반환됩니다. `-network-premium`(으)로 지정된 연결은 이를 명시하는 403으로 거부됩니다. 다른 곳에서 조용히 처리될 경우 호출자가 계속해서 요청을 보내고 결국 나타나지 않는 프리미엄 청구 항목을 찾게 되기 때문입니다. fallback은 적용되지 않으며, proxy 사용자에 저장된 프리미엄 기본값은 공유 네트워크로 강등되므로 tunnel은 여전히 열립니다. 두 경우 모두 해당 연결에 대한 지출을 선택하지 않았습니다.

불완전하게 처리되기보다는 즉시 거부되는 세 가지 조합이 있습니다. 공유 네트워크에서의 세밀한 타겟팅, `-fallback-premium`와(과) `-network-premium`의 조합, 그리고 fallback이 활성화된 상태에서의 세밀한 타겟팅입니다. 포트는 CONNECT 전용으로 통신하므로, tunnel을 통하지 않고 일반 `http://` request를 전달하는 client는 405를 수신합니다 (curl은 `--proxytunnel` 옵션으로 터널링함). 또한 단일 페이지 로드 시 수십 개의 연결이 열리므로, 포트를 통해 제어되는 브라우저는 항상 session 이름을 포함해야 합니다.

각각 고유한 주소를 사용하는 여러 worker가 있나요? 각 worker에 고유한 session 이름을 부여하십시오.

```python
import requests

TEMPLATE = "http://USERNAME-country-de-session-{name}:PASSWORD@proxy.foura.ai:34004"

def worker_session(name):
    proxy = TEMPLATE.format(name=name)
    s = requests.Session()
    s.proxies = {"http": proxy, "https": proxy}
    return s

workers = [worker_session(f"w{i}") for i in range(4)]
print(workers[0].get("https://example.com").status_code)
```

Dashboard에서도 동일한 작업을 대규모로 처리할 수 있습니다. Sticky를 설정하고 수량을 선택하면 Connection string 탭에 주소당 한 줄씩 URL 형태나 proxy manager용 `host:port:user:pass` 형식으로 나열됩니다. 연결 거부 원인을 확인하려면 curl 호출에 `-sv`를 추가하고 `2>&1 | grep -i x-foura-error`로 파이프하십시오. 모든 옵션은 [proxy port reference](https://foura.ai/docs/api/proxy-port)에, Dashboard 관련 내용은 [Proxy Users](https://foura.ai/docs/dashboard/proxy)에 정리되어 있습니다.

## 향후 계획

proxy user를 기반으로 처음 구축한 클라이언트는 자사 서비스입니다. [FourA Chrome 확장 프로그램](https://foura.ai/extension)은 브라우저 트래픽을 해당 proxy 중 하나로 라우팅합니다. 네트워크와 국가를 선택하고 스위치를 켜면 웹사이트에 표시되는 주소가 상태 표시줄에 나타납니다. 현재 베타 버전으로 Chrome 웹 스토어에는 없으며, 개발자 모드에서 Dashboard의 Tools를 통해 설치할 수 있습니다. 향후에는 [조직 청구 기능](https://updates.foura.ai)이 공개 로드맵에 포함될 예정입니다. 조직의 proxy user 사용 요금은 현재 해당 조직 소유자에게 청구되므로 중요한 기능입니다.

proxy URL은 가장 오래된 연동 규격이며, 사용 중인 모든 도구에서 이미 지원하고 있습니다. 중요한 것은 터널 자체가 아니었습니다. 터널 앞의 문자열이 어떤 의미를 가질 수 있는지, 그리고 설정이 잘못되었을 때 어떤 일이 발생하는지가 핵심입니다.
