프록시와 함께 cURL을 사용하는 방법: 2026년을 위한 단계별 가이드와 팁 및 요령 7가지

프록시를 테스트하고 사이트를 동시에 스크래핑할 수 있는 도구를 찾고 있다면 잘 찾아오셨습니다. cURL은 프록시를 테스트하고 기본적인 웹 스크래핑을 수행할 수 있는 명령줄 도구입니다. 직관적이고 배우기 쉬운 cURL은 요청 전송, 쿠키 추가, 디버깅, 프록시 연결 등도 수행할 수 있습니다.

이 단계별 가이드에서는 cURL이 무엇인지, 다양한 명령어를 사용하는 방법, 간단한 웹 스크래핑에 활용하는 방법, 프록시 서버와 함께 cURL을 사용하는 방법을 알려드립니다. 가이드 내용이 다소 복잡할 수 있으므로 읽기 전에 프록시가 무엇인지 기본적으로 이해하고 있는지 확인하세요. 웹 스크래핑의 기본 사항을 알고 있으면 더욱 도움이 됩니다.

목차

cURL이란?

“클라이언트 URL”의 약자인 cURL은 인터넷을 통해 데이터를 전송할 수 있도록 해주는 명령줄 도구입니다. 여기에는 명령줄 프로그램인 curl.exe와 libcurl이라는 크로스 플랫폼 라이브러리가 포함되어 있으며, 이를 통해 서버 간 데이터 교환이 가능합니다.

인터넷 프로토콜을 사용하는 다양한 최신 운영 체제와 호환되는 cURL은 노트북부터 자동차까지 폭넓은 기기에서 작동합니다. 다음과 같은 다양한 인터넷 프로토콜을 지원합니다.

  • DICT
  • FILE
  • FTP
  • FTPS
  • GOPHER
  • HTTP
  • HTTPS
  • IMAP
  • IMAPS
  • LDAP
  • LDAPS
  • MQTT
  • POP3
  • POP3S
  • RTSP
  • SCP
  • SFTP
  • SMB
  • SMBS
  • SMTP
  • SMTPS
  • TELNET
  • TFTP

대규모 커뮤니티에서는 오픈 소스 Linux 소프트웨어 성능 테스트 도구인 curl-loader를 비롯해 cURL을 위한 다양한 도구를 개발해 왔습니다. Curl-loader는 수많은 FTP/FTPS 및 HTTP/HTTPS 클라이언트의 애플리케이션 동작을 에뮬레이션할 수 있습니다. 단일 curl-loader 프로세스는 2,500~100,000개의 가상 클라이언트를 지원할 수 있으며, 각 클라이언트에는 고유한 소스 IP 주소가 할당됩니다.

cURL의 기원

cURL의 역사는 명령줄 도구가 널리 사용되던 1990년대로 거슬러 올라갑니다. 1996년, 스웨덴 개발자 Daniel Stenberg는 채팅 참여자들을 위해 통화를 변환하는 인터넷 릴레이 채팅(IRC) 방 스크립트 작업을 시작했습니다. 이 과정에서 그는 서버를 통해 데이터를 전송하는 데 널리 사용되는 HTTP 방식인 httpget이라는 도구에 기여하게 되었습니다. Stenberg의 실험을 통해 “단일 C 파일 300줄 미만”으로 구성된 httpget 0.1이 탄생했습니다.

몇 달 후 파일 전송 프로토콜(FTP)이 등장하자 Stenberg는 자신의 도구에 FTP 지원 기능을 추가하고 이름을 urlget 2.0으로 바꾸었습니다. 1998년 3월 30일에는 FTP 업로드 지원을 추가하고 도구 이름을 다시 cURL 3.0으로 변경했습니다.

cURL은 큰 잠재력을 지녔지만 처음에는 별다른 주목을 받지 못했습니다. 1998년, 15번의 업데이트와 재출시를 거친 cURL은 Stenberg의 사이트에서 300회 이상 다운로드되었습니다. 그해 말 Red Hat Linux가 cURL을 채택했고, 1999년에는 Debian, 2001년 8월에는 Mac OS X 10.1이 뒤를 이었습니다. 2001년 이후 cURL은 Windows 10, iOS 및 Android 기기, Sony PS5, Nintendo Switch, Xbox, 심지어 자동차까지 인터넷에 연결할 수 있는 거의 모든 소프트웨어의 기본 기능이 되었습니다.

cURL을 사용하는 이유

개발자들은 복잡한 작업을 효과적으로 처리하는 cURL의 기능 때문에 cURL을 즐겨 사용합니다. 다재다능함과 스크립트 작성 가능성, 내장 라이브러리 덕분에 사용자 지정 HTTP 파싱 및 네트워킹 코드를 작성할 필요 없이 다른 프로그램과 원활하게 통합할 수 있습니다.

cURL은 다음과 같은 다양한 장점을 제공합니다.

  1. 엔드포인트 테스트 및 디버깅 기능
  2. 전송 및 수신된 데이터에 대한 상세한 정보
  3. 포괄적인 오류 로깅
  4. 다양한 프로토콜 지원
  5. http2, Metalink, gzip, 자동 압축 해제 및 Content-Encoding과의 호환성
  6. FTP 업로드, 쿠키, 사용자 인증, 프록시 지원, SSL 연결 등의 고급 기능
  7. 기본 프로토콜이 실패할 경우 프로토콜을 자동으로 전환
  8. 프로토콜에 따라 달라지는 URL 구문
  9. 속도 제한 기능
  10. 괄호를 사용해 URL의 일부 또는 여러 URL을 지정하는 기능(예: https://google.{one, two, three}.com)
  11. 명령줄을 통해 원하는 개수의 URL을 지정하는 옵션

또한 개발자들은 cURL의 기본 SSL 인증서 확인 기능과 HTTPS 지원을 높이 평가합니다. cURL은 HTTPS를 통해 서버에 연결할 때 서버의 인증서를 가져와 CA 인증서와 비교하여 원격 서버의 진위를 확인합니다.

cURL 설치 방법

컴퓨터에 cURL을 설치하는 방법을 알아보겠습니다.

macOS

macOS에는 cURL이 운영 체제에 이미 포함되어 있으므로 설치할 필요가 없습니다. 터미널 앱에서 기본으로 사용할 수 있습니다.

Windows

Windows 10부터 운영 체제에 cURL이 포함되어 있습니다. 하지만 cURL 명령은 PowerShell Invoke-WebRequest 명령의 별칭으로 사용됩니다. 따라서 Windows 터미널에서 cURL 명령을 실행하면 백그라운드에서 Invoke-Request가 시작됩니다. 대신 cURL을 사용하려면 ‘curl’을 ‘curl.exe’로 바꾸면 PowerShell이 Invoke-Request 대신 cURL을 실행합니다.

예를 들어, Windows 컴퓨터에 설치된 cURL의 현재 버전을 확인하려면 터미널에 다음 명령을 입력하세요.

curl.exe --version

다음과 비슷한 결과가 표시됩니다.

curl 7.83.1 (Windows) libcurl/7.83.1 Schannel Release-Date: 2022-05-13 Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Features: AsynchDNS HSTS IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI UnixSockets

cURL과 Windows에 대해 더 알아보고 싶다면 이 동영상을 시청해 보세요. cURL이 무엇인지, Windows에서 실행하는 방법, cURL로 GET, POST, PUT, DELETE API 요청을 보내는 방법을 알 수 있습니다.

Linux

Linux 사용자의 경우 cURL 설치 방법은 사용하는 배포판에 따라 다릅니다. Ubuntu와 Fedora 같은 인기 배포판에는 cURL이 사전 설치되어 있어 터미널에서 바로 사용할 수 있습니다.

cURL이 기본으로 포함되지 않은 배포판에서는 해당 배포판의 패키지 관리자를 사용해 설치할 수 있습니다. 예를 들어 Debian 기반 운영 체제에서는 다음 명령을 사용해 cURL을 설치하세요.

sudo apt-get install curl

cURL 사용 방법

기기에 cURL이 설치되어 있는지 확인하세요. cURL을 사용하기 전에 시스템에 cURL이 설치되어 있는지 확인해야 합니다. 설치되어 있지 않다면 cURL 웹사이트에서 다운로드하세요.

A. 기기에 cURL이 설치되어 있는지 확인하기

시스템에 cURL이 설치되어 있는지 확인하려면 다음 단계를 따르세요.

  1. Windows PC 또는 MacBook에서 명령줄 인터페이스나 PowerShell 터미널을 엽니다.
  2. 'curl --version'을 입력합니다.
  3. Enter 키를 누릅니다.

기기에 cURL이 설치되어 있다면 다음과 비슷한 메시지가 표시됩니다.

curl --version curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL Release-Date: 2017-11-14, security patched: 2020-11-05 Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL

또는

curl --version curl 7.31.0 (x86_64-apple-darwin12.4.0) libcurl/7.31.0 OpenSSL/0.9.8x zlib/1.2.5 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp Features: IPv6 Largefile NTLM NTLM_WB SSL libz

다른 메시지가 표시된다면 기기에 cURL이 설치되어 있지 않다는 뜻이므로 설치해야 합니다.

B. 사용할 적절한 cURL 구문 확인하기

기본적으로 cURL은 HTTP 프로토콜을 사용하며, 구문은 다음과 같습니다. cURL [options] [URL]

cURL은 여러 프로토콜을 지원하므로 프로토콜마다 구문이 조금씩 다를 수 있습니다. 다음은 다양한 네트워크 프로토콜에 사용하는 cURL 명령의 예입니다.

  • 파일 전송 프로토콜(FTP): cURL -T “selected file” “ftp://[target-destination]”
  • 간이 메일 전송 프로토콜(SMTP): cURL smtp://[smtp-server] –mail-from [sender] –mail-rcpt [recipient] –upload-file [mail-content-file]
  • 사전 네트워크 프로토콜 [DICT]: cURL “dict://dict.org/d:hi”

cURL을 최적으로 사용하려면 어떤 네트워크 프로토콜을 사용할지 파악하는 것이 중요합니다.

C. 목표에 적합한 cURL 구문 사용하기

cURL을 사용하면 파일 다운로드 및 업로드, 사용자 인증 처리 등 다양한 작업을 수행할 수 있습니다. 작업마다 필요한 특정 매개변수와 네트워크 프로토콜이 다르므로 cURL 구문도 달라집니다.

다음은 일반적인 작업과 해당 cURL 명령입니다.

  1. 파일을 다운로드하려면: curl -o [file name] [URL]
  2. FTP 프로토콜을 사용해 파일을 업로드하려면: curl -u [Username:Password] -T [local-file-path] ftp://[URL]
  3. HTTP 헤더를 요청하려면: curl -I [URL]

가벼운 스크래핑에 cURL을 사용하는 방법

PHP와 같은 프로그래밍 언어와 함께 cURL을 사용하면 간단한 웹 스크래핑을 수행할 수 있습니다.

스크래핑을 시작하기 전에 대상 웹사이트의 robots.txt 파일을 확인하세요. 규칙이 비합리적으로 보이더라도 이를 준수해야 합니다. 웹사이트 소유자는 매개변수와 제한 사항을 설정할 권리가 있기 때문입니다. 웹 크롤링 시 robots.txt 파일을 준수하는 것은 표준 관행이며, 이를 따르지 않으면 법적 문제가 발생할 수 있습니다.

이를 염두에 두고, 가벼운 웹 스크래핑에 cURL을 사용하는 방법을 살펴보겠습니다.

스크래핑을 시작하려면 다음 단계를 따르세요.

  1. PHP와 같이 스크래핑에 사용할 프로그래밍 언어를 선택합니다. 이 튜토리얼에서는 PHP를 사용합니다.
  2. 새 PHP 파일을 만듭니다.
  3. curl_init를 사용해 cURL 핸들을 초기화합니다. $curl = curl_init
  4. 전송된 페이지를 문자열로 반환하는 CURLOPT_RETURNTRANSFER를 TRUE로 설정합니다. 이 명령은 cURL이 전체 페이지를 기본적으로 표시하는 대신 스크래핑한 페이지를 변수로 저장하도록 합니다. curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
  5. 요청을 시작하고 오류를 확인합니다. $page = curl_exec($curl); if(curl_errno($curl)) // check for execution errors { echo 'Scraper error: ' . curl_error($curl); exit; }
  6. 연결을 닫습니다. curl_close($curl);

정보의 특정 부분만 추출하려면 id=”case_textlist” 아래에서 추출할 내용을 지정해야 합니다. 기본적으로 cURL은 페이지 전체를 추출합니다.

$regex = '<div id="case_textlist">(.*?)</div>/s'; if (preg_match($regex, $page, $list)) echo $list[0]; else echo "Not found";

PHP에서 프록시 서버를 사용해 웹사이트를 파싱하려면 cURL 라이브러리를 사용할 수 있습니다. 다음은 프록시 서버를 사용해 웹페이지를 가져오는 PHP 스크립트의 예입니다.

PHP 코드:

<?php // Set the URL to fetch $url = "http://www.example.com"; // Set the proxy server and port $proxy = "proxy.example.com:8080"; // Create a new cURL resource $ch = curl_init(); // Set the cURL options curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_PROXY, $proxy); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Fetch the URL and output the response $response = curl_exec($ch); echo $response; // Close the cURL resource curl_close($ch); ?>

위 스크립트에서 $url 변수는 파싱하려는 웹사이트의 URL로, $proxy 변수는 사용하려는 프록시 서버의 주소와 포트로 변경할 수 있습니다. curl_setopt() 함수는 URL, 프록시 서버, 응답을 직접 출력하는 대신 문자열로 반환하도록 하는 옵션을 비롯해 cURL 옵션을 설정하는 데 사용됩니다. 마지막으로 curl_exec() 함수를 사용해 URL을 가져오고 echo로 응답을 출력합니다. cURL 리소스를 닫기 위해 curl_close() 함수를 호출합니다.

아래 동영상에서는 cURL로 웹사이트의 URL을 불러오고 정규 표현식으로 일치시켜 프록시 스크레이퍼를 만드는 방법을 배울 수 있습니다.

고급 스크래핑에 cURL을 사용하는 방법

다음은 웹 스크래핑 세션을 최적화하는 데 도움이 되는 몇 가지 개선된 cURL 설정입니다.

소제목: 사용자 에이전트 추가하기

cURL을 사용해 링크를 다운로드하거나 스크래핑하면 웹사이트에 자신을 cURL이라고 표시합니다. 특정 웹사이트가 cURL을 봇으로 인식해 차단할 수 있으므로 경우에 따라서는 이 표시를 원하지 않을 수 있습니다.

이를 피하려면 -A 또는 –user-agent 옵션을 사용해 사용자 에이전트를 포함하세요. 이 예시에서는 Windows 10에서 Firefox 65를 사용하는 사용자 에이전트를 이용했습니다.

curl -x https://fineproxy.de/ -v -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"

또는 -H 옵션을 사용해 헤더에 사용자 에이전트를 포함할 수 있습니다.

curl -x https://fineproxy.de/ -v -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"

소제목: 헤더 구성하기

웹사이트를 스크래핑할 때는 봇으로 인식되지 않도록 하는 것이 중요합니다. 많은 웹사이트가 봇이 서버에 과부하를 일으키고 실제 사용자의 서비스 이용을 방해할 수 있다는 이유로 봇의 데이터 추출을 차단합니다.

이를 위해서는 cURL에 적절한 헤더를 보내야 합니다.

먼저 마우스 오른쪽 버튼을 클릭하고 “검사”를 선택해 대상 웹사이트에 일반적으로 보내는 헤더를 확인합니다. 그런 다음 “네트워크” 탭으로 이동합니다. 대상 사이트를 새로고침하면 사이트가 로드되는 동안 이루어진 요청을 확인할 수 있습니다. 요청을 자세히 살펴보려면 해당 요청을 마우스 오른쪽 버튼으로 클릭한 후 cURL 명령줄로 복사할 수도 있습니다.

그런 다음 -H 또는 –header 옵션을 사용해 cURL에서 헤더를 설정합니다. 예를 들어, 대상 사이트에 “Accept” 헤더를 보내려면 다음과 같이 하면 됩니다.

curl -x https://fineproxy.de/ -v -H "Accept: text/html"

프록시 서버와 함께 cURL 사용하는 방법

프록시와 함께 cURL을 사용하면 웹 스크래핑과 같은 다양한 용도로 활용할 수 있습니다. 웹 스크래핑에서는 사이트의 차단 및 접속 금지를 방지하기 위해 프록시가 필요합니다. 이 가이드에서는 cURL을 사용해 프록시 서버를 통해 데이터를 전송하는 방법을 알아봅니다.

다음 단계에 따라 프록시와 함께 cURL을 사용하세요.

1. 프록시 서버 설정

먼저 프록시 제공업체에서 제공한 지침에 따라 프록시를 설정합니다. 프록시가 올바르게 설정되었는지 확인하려면 터미널에 다음 명령을 입력하세요.

curl https://httpbin.org/ip

이 명령은 기기의 IP 주소를 반환합니다. 반환된 값이 기기의 원래 IP 주소와 일치하면 프록시 서버가 제대로 설정되지 않은 것입니다. 일치하지 않는다면 프록시 서버가 올바르게 구성된 것입니다.

2. cURL 명령과 함께 작동하도록 프록시 구성

cURL에서 사용할 프록시를 구성하는 방법은 세 가지입니다.

A. 구성 파일(.curlrc) 사용

구성 파일은 원하는 설정을 담은 텍스트 파일로, cURL 명령을 실행할 때 쉽게 사용할 수 있도록 시스템 디렉터리에 .curlrc 파일 형식으로 저장됩니다.

프록시 구성 파일에는 다음 형식의 데이터가 포함됩니다.

proxy = "[protocol://][host][:port]"

파일에 여러 구성 설정을 저장하고 필요에 따라 활성화할 수 있습니다. cURL 명령을 실행하기 전에 파일을 열면, 실행하는 모든 cURL 명령에 구성 파일의 프록시 설정이 적용됩니다.

프록시와 함께 cURL을 반복적으로 사용해 대량의 데이터를 추출하는 경우에는 구성 파일을 만드는 것이 가장 좋은 방법입니다. 매번 cURL에 프록시를 설정할 필요가 없어 시간을 절약할 수 있습니다.

B. 명령줄 인수 사용

이 방법은 cURL 프록시 구문을 직접 입력하기만 하면 되므로, cURL 명령에서 프록시를 한 번만 사용할 때 적합합니다. 구문은 다음과 같습니다.

curl -x "[protocol://][host][:port]" [URL] [options]

cURL의 기본 프로토콜은 HTTP이므로, 특히 다른 네트워크 프로토콜을 사용하는 경우에는 프로토콜과 프록시 서버 세부 정보를 지정해야 합니다.

C. 환경 변수 사용

세 번째 방법은 시스템 수준에서 실행되는 프로세스에 영향을 주는 환경 변수인 http_proxy 및 https_proxy 변수를 설정하는 것입니다. 이러한 명령은 운영 체제에 속하며 다른 매개변수를 덮어쓸 수 있습니다.

환경 변수를 사용한 cURL 프록시 설정 구문은 다음과 같습니다.

export http_proxy="[protocol://][host][:port]" export https_proxy="[protocol://][host][:port]"

이 명령을 실행하면 이후 실행하는 모든 cURL 명령이 자동으로 프록시 서버를 통과합니다. 이제 이 방법을 조금 더 자세히 살펴보겠습니다.

환경 변수를 통해 프록시와 함께 cURL 사용하기

환경 변수는 하나 이상의 소프트웨어 프로그램에서 사용할 수 있도록 메모리에 수정 가능한 값을 저장하는 객체와 비슷합니다. 이 경우 프록시 정보를 포함하는 http_proxy 또는 https_proxy라는 변수를 cURL에 전달할 수 있으므로, 명령을 실행할 때마다 정보를 지정할 필요가 없습니다. 다음 명령을 실행하면 됩니다.

$ export http_proxy="http://fineproxy.proxy_type=datacenter.device=desktop:<YOUR-API-KEY>@proxy.fineproxy.de:80"

cURL이 인식할 수 있도록 변수 이름을 http_proxy 또는 https_proxy로 지정해야 합니다. 설정은 이것으로 끝입니다. 더 이상 명령을 실행할 때마다 인증 정보를 입력할 필요가 없으며, 이제 다음과 같이 간단하게 cURL을 실행할 수 있습니다.

$ curl http://httpbin.org/get

그러면 다음과 같은 결과가 출력됩니다.

{ "args": {}, "headers": { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Host": "httpbin.org", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36", "X-Amzn-Trace-Id": "Root=1-633bf912-66ace1104304ddaf5ea8ac65" }, "origin": "132.255.134.104", "url": " http://httpbin.org/get" }

보시다시피 IP 주소가 프록시의 IP 주소이므로 프록시를 훌륭하게 설정했음을 확인할 수 있습니다. 이제 cURL이 대신 처리하므로 프록시 정보를 지정하지 않고도 원하는 cURL 명령을 실행할 수 있습니다.

중요한 요령 및 팁 7가지

이 섹션에서는 특정 요구 사항에 맞춰 cUrl에서 프록시를 사용하는 데 유용한 몇 가지 흥미로운 요령과 귀중한 팁을 소개합니다.

팁 1: cUrl 전용 프록시 설정

cUrl 기반 작업에만 프록시를 지정하려면 다음 명령어를 순서대로 사용하세요.

  1. cd ~ $ nano .curlrc
  2. 파일에 다음 줄을 추가합니다.
proxy=http://user:pwd@IP_address_or_FQDN:port

예시:

proxy=http://testuser:[email protected]:3128
  1. 평소처럼 cUrl을 실행합니다.
$ curl " https://www.reddit.com"

팁 2: 프록시 활성화 및 비활성화

편집기에서 .bashrc 파일에 별칭을 만들어 이를 설정할 수 있습니다.

$ cd ~
alias proxyon="export http_proxy=' http://user:pwd@Proxy_IP_or_FQDN:Port';export https_proxy=' http://user:pwd@Proxy_IP_or_FQDN:Port'"
alias proxyoff="unset http_proxy;unset https_proxy"

예시:

alias proxyon="export http_proxy=' http://testuser:[email protected]:3128';export https_proxy=' http://testuser:[email protected]:3128'"

터미널에서 alias 명령어를 실행해 별칭 설정을 빠르게 확인하세요. .bashrc를 저장하고 다음 명령어로 셸을 업데이트합니다.

$ ~/.bashrc

팁 3: SSL 인증서 오류 무시

cUrl에서 SSL 인증서 오류가 발생하면 해당 요청이 차단됩니다. 특히 일회성으로 디버깅할 때 SSL 인증서 오류를 ‘건너뛰려면’ cUrl 명령줄에 -k 또는 –insecure를 추가하세요.

curl -x "[protocol://][host][:port]" -k [URL]

팁 4: 요청 정보 더 자세히 확인하기

요청이 예상대로 작동하지 않는다면 요청 경로, 헤더 및 여러 오류를 살펴볼 수 있습니다. 요청을 조사하려면 cUrl 명령 뒤에 -v (–verbose)를 추가하세요. 그러면 모든 요청 헤더와 연결 과정이 출력됩니다.

팁 5: 단일 요청에서 프록시 무시

특정 요청에서 프록시를 재정의하려면 다음 명령줄을 사용하세요.

curl --proxy " http://user:pwd@Proxy_FQDN_or_IPAddress" " https://reddit.com"

또는 다음을 사용하세요.

$ curl --noproxy "*" https://www.reddit.com

프록시를 완전히 우회하려면 이 방법을 사용하세요. -v 옵션을 사용하면 프록시를 거치지 않고 Reddit에 직접 연결되는 것을 확인할 수 있습니다.

팁 6: SOCK 프록시 사용

어떤 유형의 SOCK 프록시(4/4a/5/5h)를 사용하든 코드 구조는 이전과 동일하며, 관련 부분을 적절한 SOCKS 유형으로 바꾸면 됩니다.

curl -x "socks5://user:pwd@Proxy_IP_or_FQDN:Port" https://www.reddit.com

예시:

$ curl -x "socks5://testuser: [email protected]:3128" https://www.reddit.com

전문가 팁 7: 프로토콜을 지정하지 않으면 cURL은 기본적으로 SOCKS4를 사용합니다!

Curl과 Wget 비교

Wget은 HTTP, HTTPS, FTP와 같은 표준 네트워크 프로토콜을 사용해 파일을 전송할 수 있는 다양한 기능을 갖춘 명령줄 도구입니다. 이름은 WWW의 첫 글자와 ‘get’을 조합한 것으로, Wget이 주로 웹 데이터 교환을 위해 만들어졌음을 나타냅니다.

Wget 명령의 기본 구문은 다음과 같습니다.

Wget [option] [URL]

Wget 명령은 cURL 명령과 비슷하며, 서로 다른 방식으로 유사한 기능을 수행합니다.

cURL과 Wget의 공통점 5가지

  • 둘 다 FTP와 HTTP 또는 HTTPS에서 파일을 다운로드하고 HTTP POST 요청을 지원하는 명령줄 유틸리티입니다.
  • 둘 다 오픈 소스 소프트웨어입니다.
  • cURL과 Wget은 모두 1996년, 같은 해에 출시되었습니다.
  • 둘 다 유사한 라이선스인 GPLv3 라이선스를 사용합니다.
  • 둘 다 여러 운영체제에서 작동하는 경량 소프트웨어 패키지입니다.

cURL과 Wget의 차이점 10가지

cURL과 Wget의 주요 차이점은 이러한 유틸리티가 요청을 실행하는 방식과 목표를 달성하는 데 사용하는 리소스에 있습니다. 다음 표에서 차이점을 확인할 수 있습니다.

cURLWget
1. 라이브러리libcURL 라이브러리의 지원을 받음라이브러리가 필요 없음
2. 작업한 번의 작업으로 데이터를 전송하며, 재귀 다운로드는 지원하지 않음재귀 다운로드 지원
3. 프로토콜다양한 네트워크 프로토콜 지원HTTP(S)와 FTP만 지원
4. 다운로드원격 URL을 로컬 파일로 다운로드하려면 -o 또는 -O가 필요함원격 URL을 다운로드할 때 -o 또는 -O가 필요하지 않음
5. 업로드양방향으로 데이터를 업로드하고 전송할 수 있음간단한 HTTP POST 요청만 지원
6. 프록시HTTPS, SOCKS 4, SOCKS 5 프록시 유형 지원HTTP 프록시는 지원하지만 SOCKS 프록시 유형은 지원하지 않음
7. 인증HTTP 프록시를 위한 추가 인증 기법 지원HTTP 프록시의 기본 인증 절차만 지원
8. 이식성이식성이 더 높으며 Windows와 macOS에 사전 설치되어 있음이식성이 더 낮으며 Windows와 macOS에 사전 설치되어 있지 않음
9. 기능각 기능을 직접 지정해야 함쿠키 및 타임스탬프 등의 기능이 기본적으로 활성화되어 있음
10. 요구 사항gnulib 패키지나 C99 컴파일러가 필요하지 않음gnulib와 C99 컴파일러가 필요함cURL 또는 Wget을 사용할 때

대부분의 경우 cURL이 가장 좋은 선택이지만, Wget이 더 적합한 경우도 있습니다. 어떤 명령줄 유틸리티가 작업을 더 빠르고 효과적으로 완료하는 데 도움이 될지 판단해야 합니다. 예를 들면 다음과 같습니다.

  • 불안정한 연결에서 다운로드 재시도가 필요할 때 Wget이 cURL보다 잘 처리합니다.
  • Wget은 cURL에 없는 결정적인 재귀 다운로드 및 대역폭 제어와 같은 다운로드 기능을 제공합니다.

따라서 이러한 상황에서는 Wget 명령을 사용하는 것이 가장 좋습니다. 또한 HTTP/HTTPS와 FTP 이외의 네트워크 프로토콜을 사용하는 경우에는 cURL이 더 나은 선택입니다. cURL과 Wget 중 무엇을 사용할지는 항상 수행 중인 작업의 특성에 따라 달라집니다.

결론

cURL 명령은 네트워크를 통해 대량의 데이터를 전송해야 하는 모든 사람에게 강력하고 다재다능한 도구입니다. cURL을 프록시와 함께 사용하면 거의 모든 작업을 수행할 수 있어 더욱 유용합니다. 이 조합은 cURL 명령의 다재다능함은 유지하면서 데이터의 개인정보 보호와 보안을 보장합니다. Wget도 폭넓은 기능을 제공하지만, 사용자 친화적인 인터페이스와 강력한 기능 덕분에 cURL이 더 나은 선택입니다.

지금까지 살펴본 내용을 바탕으로 cURL의 멋진 효과를 직접 경험해 보고 싶을 수도 있습니다. 아직 생각해 보지 않았다면 한번 시도해 보세요. 계속 cURL하게 지내세요(말장난입니다).