curl은 HTTP/HTTPS 요청을 전송할 때 네트워크 경로를 설정하거나 중간 프록시 서버를 통해 요청을 보내는 기능을 제공합니다. 프록시는 네트워크 트래픽을 중계하거나 필터링하는 서버로, 특정 환경에서 필수적인 경우가 많습니다. 이번 글에서는 curl에서 프록시 옵션을 사용하는 방법과 실전 예제를 살펴보겠습니다.
1. curl 프록시 옵션 개요
curl에서 프록시를 사용하는 경우, 주요 옵션은 아래와 같습니다:
- --proxy <proxy>
프록시 서버를 지정합니다. HTTP, HTTPS, SOCKS 등 다양한 프로토콜을 지원합니다. - --proxy-user <user:password>
프록시 서버에 인증이 필요한 경우 사용자 이름과 비밀번호를 설정합니다. - --no-proxy <host>
프록시를 사용하지 않을 도메인이나 호스트를 설정합니다.
2. 주요 옵션과 사용법
2.1. 기본 프록시 설정
가장 기본적인 프록시 설정은 --proxy 옵션을 사용하는 것입니다.
curl --proxy http://proxy.example.com:8080 http://www.google.com
위 명령은 http://proxy.example.com:8080을 통해 http://www.google.com에 요청을 전송합니다.
2.2. 프록시 인증
프록시 서버에서 인증이 필요한 경우 --proxy-user 옵션을 사용해 사용자 이름과 비밀번호를 전달합니다.
curl --proxy http://proxy.example.com:8080 \
--proxy-user username:password \
http://www.google.com
💡 Tip: 비밀번호에 특수문자가 포함된 경우 \로 이스케이프하거나 작은따옴표로 묶어야 할 수 있습니다.
2.3. HTTPS 요청에서의 프록시
HTTP가 아닌 HTTPS 요청을 프록시로 전송할 때도 동일하게 동작합니다. 단, HTTPS 프록시 지원은 별도의 설정이 필요할 수 있습니다.
curl --proxy https://proxy.example.com:443 https://www.google.com
2.4. SOCKS 프록시
SOCKS 프록시는 HTTP 대신 SOCKS4, SOCKS5 프로토콜을 사용하는 경우에 설정합니다.
- SOCKS4 프록시
- curl --socks4 socks4://proxy.example.com:1080 http://www.google.com
- SOCKS5 프록시
- curl --socks5 socks5://proxy.example.com:1080 http://www.google.com
- SOCKS5 프록시 + 인증
- curl --socks5 proxy.example.com:1080 \ --proxy-user username:password \ http://www.google.com
2.5. 특정 호스트에서 프록시 사용 안 함
특정 호스트에 대해 프록시를 사용하지 않으려면 --no-proxy 옵션을 사용합니다.
curl --proxy http://proxy.example.com:8080 \
--no-proxy example.com \
http://example.com
위 명령어는 모든 요청에 대해 프록시를 사용하지만, example.com에 대한 요청은 프록시를 거치지 않습니다.
3. 환경 변수로 프록시 설정하기
매번 명령어에 프록시 옵션을 추가하는 대신 환경 변수를 설정하면 더 편리하게 사용할 수 있습니다.
- HTTP 프록시
- export http_proxy=http://proxy.example.com:8080 export https_proxy=http://proxy.example.com:8080
- SOCKS 프록시
- export all_proxy=socks5://proxy.example.com:1080
- 프록시 제외
- export no_proxy=example.com,.local
이렇게 설정하면 curl은 명령어 옵션 없이도 자동으로 프록시를 사용합니다.
curl http://www.google.com
4. 실전 예제
아래는 다양한 상황에서 프록시를 설정하는 실전 예제입니다.
4.1. 회사 내부망을 우회해 외부 사이트 요청
curl --proxy http://corporate-proxy:8080 https://www.google.com
4.2. SOCKS5 프록시로 요청
curl --socks5-hostname socks5://127.0.0.1:9050 https://check.torproject.org
4.3. 환경 변수 설정 후 요청
export http_proxy=http://proxy.example.com:8080
curl http://www.google.com
5. 디버깅 팁
프록시 설정 문제를 디버깅하려면 -v 또는 --verbose 옵션을 사용하여 요청 과정을 자세히 확인할 수 있습니다.
curl -v --proxy http://proxy.example.com:8080 http://www.google.com
출력된 정보를 통해 프록시 설정이 올바르게 적용되었는지 확인할 수 있습니다.
6. 결론
curl의 프록시 옵션은 네트워크 환경에 따라 요청을 유연하게 제어할 수 있는 강력한 도구입니다. HTTP, HTTPS, SOCKS 프록시 등 다양한 프로토콜을 지원하며, 인증이나 특정 호스트 제외 같은 세부 설정도 가능합니다. 위 가이드를 참고해 환경에 맞는 프록시 설정을 활용해 보세요!
'프로그래밍' 카테고리의 다른 글
curl 리다이렉트 따라가기 (301 Moved Permanently) (0) | 2024.12.18 |
---|---|
정규표현식(Regex) 기본문법과 예제 - 이메일, 전화번호 (2) | 2024.12.09 |
Express request query, path, body 예제 (1) | 2024.12.01 |
Mac Node.js 버전 관리 도구: n vs nvm 비교 및 사용법 (1) | 2024.11.27 |
Swift 시간복잡도 빅오(Big-O) 주요 예제 (0) | 2024.11.22 |