GitHub는 2019년 OFAC의 요구에 따라 이란 사용자에 대한 접근을 차단했습니다. 그 이후로 이란 개발자들은 동일한 상황에 직면하고 있습니다: 리포지토리에 접근할 수 없고, 푸시와 풀이 실패하며, 계정이 언제든지 동결될 수 있습니다. 그럼에도 불구하고 작업은 중단되지 않으며, 팀은 계속해서 커밋하고 배포하며 오픈 소스 프로젝트에 참여하고 있습니다. 이 기사에서는 2024-2025년에 실제로 작동하는 것, GitHub에 적합한 프록시, 그리고 속도 손실 없이 올바르게 설정하는 방법을 설명합니다.
왜 GitHub가 이란을 차단하는가: 제재와 기술적 구현
2019년 7월, GitHub는 이란, 크림, 쿠바, 시리아 및 북한의 사용자에 대한 접근을 제한하기 시작했습니다. 그 이유는 미국의 제재 법률에 따라 OFAC(외국 자산 통제 사무소)의 요구 때문입니다. 2018년부터 GitHub를 소유하고 있는 Microsoft는 미국 회사로서 이러한 제한을 준수해야 합니다.
기술적으로 차단은 여러 수준에서 작동합니다:
- IP에 의한 지리적 차단: GitHub는 IP 주소를 통해 국가를 식별하고 이란의 주소 범위(이란 제공업체에 속하는 AS 블록)에서 오는 요청을 차단합니다.
- 계정 동결: 이란 IP로 등록된 계정이나 프로필에 이란을 명시한 계정은 읽기 전용 모드로 전환되거나 완전히 동결될 수 있습니다.
- 비공식 리포지토리 차단: 공개 리포지토리는 부분적으로 읽을 수 있지만, 비공식 리포지토리는 완전히 차단됩니다.
- GitHub Actions 및 패키지 제한: CI/CD 파이프라인 및 패키지 레지스트리도 차단된 지역에서 접근할 수 없습니다.
그럼에도 불구하고 GitHub는 이러한 제한에 반대하며 규제 당국에 완화 조치를 로비하고 있다고 여러 차례 밝혔습니다. 2019년에는 이란 개발자에게 공개 리포지토리에 대한 무료 접근을 제공할 수 있는 허가를 받았지만, 차단이 완전히 해제되지는 않았습니다.
⚠️ 중요 이해: 차단은 제재를 받는 조직 및 정부 구조에 대한 것이지, 개인 개발자에 대한 것이 아닙니다. 대부분의 이란 프로그래머는 국제 팀에서 일하며 개인적으로 제재를 받지 않지만, 기술적으로 시스템은 IP를 통해 모두를 차단합니다.
따라서 문제 해결의 열쇠는 IP 주소 변경에 있습니다 — 이는 기술적으로 지리적 차단을 우회하는 유일한 방법입니다. 이를 위해 어떤 도구가 적합한지 살펴보겠습니다.
실제로 작동하는 것: 프록시, VPN 및 우회 방법
이란 개발자들은 여러 가지 접근 방식을 사용합니다. 각 방법에는 장단점이 있으며, 마케팅 없이 솔직하게 살펴보겠습니다.
1. 주거용 프록시
주거용 프록시는 독일, 네덜란드, 미국, 터키 등 다른 국가의 실제 가정 사용자 IP 주소를 사용합니다. GitHub의 관점에서 이러한 요청은 허용된 국가의 일반 사용자로부터 오는 것처럼 보입니다. 이는 지속적인 작업을 위한 가장 신뢰할 수 있는 옵션입니다: 프록시 자체의 차단 위험이 최소화되고 안정성이 높습니다.
단점은 데이터 센터 프록시보다 속도가 느리고 비용이 더 비쌉니다. Git 작업(푸시/풀/클론)에는 일반적으로 심각한 문제가 되지 않습니다: 리포지토리는 메가바이트 단위이지 기가바이트 단위가 아닙니다.
2. 데이터 센터 프록시
데이터 센터 프록시는 더 빠르고 저렴하게 작동합니다. 대형 리포지토리를 클론하거나 아티팩트를 다운로드하고 GitHub API와 작업하는 데 적합합니다. 그러나 데이터 센터의 IP는 프록시로 쉽게 식별될 수 있으며, 일부 범위는 이미 GitHub의 차단 목록에 포함되어 있습니다. 유럽 지역(독일, 네덜란드, 프랑스)의 데이터 센터 프록시를 사용하는 것을 권장합니다 — 이들은 필터에 걸릴 확률이 낮습니다.
3. VPN
VPN은 이란 사용자들 사이에서 가장 인기 있는 도구입니다. 운영 체제 전체에서 작동하며 각 애플리케이션에서 별도로 설정할 필요가 없습니다. 단점: 많은 VPN 서버가 이미 GitHub에 의해 차단되었으며(특히 인기 있는 무료 VPN), 속도가 불안정하고 연결이 끊어지면 트래픽이 이란 IP를 통해 유출될 수 있습니다.
4. Tor
Tor는 기술적으로 작동하지만 GitHub는 Tor의 출구 노드를 적극적으로 차단합니다. 속도가 매우 낮아 작은 리포지토리를 클론하는 데 몇 시간이 걸릴 수 있습니다. 웹 인터페이스에 간헐적으로 접근하는 데는 적합하지만, 정기적인 개발에는 적합하지 않습니다.
5. 다른 나라의 서버를 통한 SSH 터널
유럽이나 미국에 VPS가 있다면 SSH 터널을 통해 SOCKS5 프록시를 설정할 수 있습니다. 이는 기술적으로 신뢰할 수 있고 무료(서버가 있을 경우)지만, 기본적인 Linux 지식이 필요합니다. 설정에 대한 자세한 내용은 Git 섹션을 참조하세요.
도구에 대한 결론:
GitHub와의 일상적인 작업에는 주거용 또는 데이터 센터 프록시 + Git 구성에서의 설정 조합이 최적입니다. 이는 시스템의 모든 트래픽에 영향을 주지 않고 안정성을 제공합니다.
GitHub에 적합한 프록시 유형: 비교 표
모든 옵션을 하나의 표로 정리하여 자신의 상황에 맞는 것을 쉽게 선택할 수 있도록 하겠습니다:
| 유형 | 속도 | 신뢰성 | GitHub 차단 위험 | 가장 적합한 용도 |
|---|---|---|---|---|
| 주거용 프록시 | 중간 | 높음 | 최소 | 일상적인 작업, 푸시/풀, 웹 인터페이스 |
| 데이터 센터 프록시 | 높음 | 중간 | 중간 | 대형 리포지토리 클론, GitHub API, CI/CD |
| 모바일 프록시 | 중간 | 매우 높음 | 매우 낮음 | 계정 작업, 이미 의심받는 경우 |
| VPN (유료) | 중간 | 중간 | 중간 | 인터넷 전체 접근 + GitHub |
| SSH 터널 (자체 VPS) | 높음 | 높음 | 낮음 | 유럽/미국에 VPS가 있는 개발자 |
| Tor | 매우 낮음 | 낮음 | 높음 | Git 작업에 권장하지 않음 |
계정이 이미 경고를 받았거나 일시적으로 동결된 경우, 모바일 프록시를 고려해보는 것이 좋습니다 — 이들은 GitHub가 거의 차단하지 않는 이동통신 사업자의 IP를 사용합니다. 하나의 모바일 IP 뒤에는 수천 명의 사용자가 있기 때문입니다.
Git, 터미널 및 IDE에서 프록시 설정하는 방법: 단계별 가이드
Git에서 프록시를 설정하는 주요 장점은 바로 어떤 트래픽이 프록시를 통해 이동하는지를 제어할 수 있다는 점입니다. 로컬 요청은 직접적으로 남아 있고, GitHub 트래픽만 외부 IP를 통해 라우팅됩니다.
Git에서 HTTPS 프록시 설정하기 (전역)
터미널을 열고 다음 명령어를 실행하세요. HOST와 PORT를 프록시 정보로 교체하세요:
# HTTP/HTTPS 프록시용: git config --global http.proxy http://HOST:PORT # SOCKS5 프록시용 (추천): git config --global http.proxy socks5://HOST:PORT # 인증이 필요한 프록시 (로그인 + 비밀번호): git config --global http.proxy socks5://USERNAME:PASSWORD@HOST:PORT # github.com에만 적용 (다른 리포지토리는 건드리지 않음): git config --global http.https://github.com.proxy socks5://HOST:PORT
마지막 명령어가 가장 유용합니다: 이는 github.com에 대한 요청에만 프록시를 적용하고 GitLab, Bitbucket 또는 회사의 내부 리포지토리에는 영향을 주지 않습니다.
설정 확인하기
# Git에서 현재 프록시 설정 보기: git config --global --list | grep proxy # 프록시를 통해 GitHub와의 연결 테스트: git ls-remote https://github.com/github/gitignore HEAD
ls-remote 명령어가 커밋 해시를 반환하면 프록시가 작동하는 것입니다. Connection refused 또는 Could not resolve host 오류가 발생하면 HOST와 PORT의 정확성을 확인하세요.
프록시 비활성화하기 (필요하지 않을 때)
# 전역 프록시 삭제: git config --global --unset http.proxy # github.com에 대한 프록시 삭제: git config --global --unset http.https://github.com.proxy
VS Code에서 설정하기
VS Code는 내장 터미널 및 확장 프로그램을 위해 시스템 프록시 설정을 사용합니다. 터미널을 통해 Git에서 프록시를 설정하면 VS Code의 내장 터미널이 이러한 설정을 자동으로 인식합니다. HTTP 프록시를 편집기 내에서 설정하려면 다음을 열어주세요:
파일 → 환경 설정 → 설정 → "proxy" 검색 → http.proxy 필드에 프록시 주소를 입력하세요.
SSH 터널을 통한 설정 (자체 VPS가 있는 경우)
유럽이나 미국에 VPS가 있다면, 다음 명령어로 로컬 SOCKS5 프록시를 설정할 수 있습니다:
# SSH를 통해 로컬 포트 1080에서 SOCKS5 프록시 생성: ssh -D 1080 -C -N user@your-vps-ip # 그런 다음 Git에서 이 로컬 프록시를 지정: git config --global http.proxy socks5://127.0.0.1:1080
-D 1080 플래그는 1080 포트에서 SOCKS5 프록시를 열고, -C는 압축을 활성화하며, -N은 SSH에게 명령을 실행하지 말고 터널만 유지하라고 지시합니다.
SSH vs HTTPS: GitHub를 위한 프록시에서 더 잘 작동하는 것은 무엇인가
이는 가장 자주 묻는 질문 중 하나입니다: GitHub와 프록시를 통해 작업할 때 어떤 프로토콜을 사용해야 할까요 — SSH(포트 22 또는 443) 또는 HTTPS(포트 443)?
프록시를 통한 HTTPS
HTTPS 연결은 쉽게 프록시할 수 있습니다 — 위에서 설명한 git config http.proxy 명령어는 HTTPS에 대해 작동합니다. 단점: 각 푸시/풀 시 Git이 로그인 및 비밀번호(또는 개인 접근 토큰)를 요청합니다. 해결책은 자격 증명 저장소에 토큰을 저장하는 것입니다:
# 시스템 키체인에 토큰 저장 활성화: git config --global credential.helper store # 첫 번째 성공적인 푸시 후 토큰이 자동으로 저장됩니다
프록시를 통한 SSH (ProxyCommand)
SSH 연결은 Git에서 표준 http.proxy를 통해 프록시할 수 없습니다 — ~/.ssh/config에서 별도의 설정이 필요합니다. 다음 블록을 추가하세요:
Host github.com
HostName ssh.github.com
User git
Port 443
ProxyCommand nc -X 5 -x HOST:PORT %h %p
여기서 ssh.github.com:443는 GitHub의 특별한 SSH 엔드포인트로, 443 포트(HTTPS)에서 작동하여 22 포트의 차단을 우회하는 데 도움이 됩니다. nc -X 5는 SOCKS5 프록시를 사용합니다.
SSH 연결을 확인하려면 다음 명령어를 사용할 수 있습니다:
ssh -T [email protected] # 예상되는 응답: Hi username! You've successfully authenticated...
추천:
대부분의 개발자에게는 HTTPS + SOCKS5 프록시를 Git 구성에서 설정하는 것이 더 간단합니다. ProxyCommand를 통한 SSH는 netcat 유틸리티를 설치해야 하며, 약간 더 복잡한 구성이 필요하지만, 토큰 입력 없이 SSH 키로 작업할 수 있는 편리함을 제공합니다.
계정의 위험 및 어떻게 최소화할 것인가
GitHub에서 프록시를 사용하는 것은 단순한 기술적 문제뿐만 아니라 계정 보안 문제이기도 합니다. 잘못된 설정은 계정에 주목을 끌거나 새로운 문제를 일으킬 수 있습니다.
위험 1: 지속적인 IP 변경
회전 프록시(매 요청마다 IP가 변경되거나 몇 분마다 변경됨)를 사용하는 경우, GitHub는 의심스러운 활동을 감지할 수 있습니다: 하나의 계정이 짧은 시간 내에 수십 개의 다른 IP에서 접근합니다. 이는 보안 점검 및 잠재적 차단의 트리거가 됩니다.
해결책: 고정 IP가 있는 정적(sticky) 프록시 또는 긴 세션 시간을 가진 세션 프록시(24시간 이상)를 사용하세요. GitHub에는 회전이 필요하지 않습니다 — 안정성이 필요합니다.
위험 2: 차단된 데이터 센터 IP 사용
인기 호스팅 제공업체(AWS, DigitalOcean, Vultr)의 일부 IP 범위는 이미 차단 목록에 포함되어 있거나 주목을 받습니다. GitHub는 이를 직접 차단하지 않지만, 추가 검증을 요청할 수 있습니다.
해결책: 유럽 데이터 센터(독일, 네덜란드, 스위스)를 선택하세요 — 이들은 차단 목록에 포함될 확률이 낮습니다. 지속적으로 사용하기 전에 ipinfo.io 또는 scamalytics.com를 통해 IP를 확인하세요.
위험 3: 프로필에 이란 데이터
GitHub 프로필에 이란이 명시되어 있으면(위치 필드에) 계정이 IP와 관계없이 제한을 받을 가능성이 높습니다. 이는 출신지를 숨길 필요는 없지만, 추가적인 요소라는 것을 이해해야 합니다.
위험 4: 조직 리포지토리 작업
GitHub에서 귀하의 조직이 이란 회사로 등록되어 있거나 이란 관리자가 있는 경우, 제한이 더 엄격할 수 있습니다 — 전체 조직이 동결될 수 있습니다. 이 경우 프록시는 개인 계정에 도움이 되지만 조직 수준에서 문제를 해결하지는 않습니다.
계정이 이미 동결된 경우 어떻게 해야 할까요
GitHub는 개인 개발자를 위한 공식 계정 동결 해제 절차를 제공합니다. [email protected]으로 상황을 설명하는 이메일을 보내세요. 이메일에는 다음 사항을 포함하세요:
- 자신이 제재를 받는 조직과 관련이 없는 개인 개발자임을 명시
- 자신의 활동이 오픈 소스 또는 상업적 소프트웨어 개발임을 명시
- 공개 리포지토리 및 활동에 대한 링크
커뮤니티의 경험에 따르면, GitHub는 대부분의 개인 개발자에게 1-4주 이내에 접근을 복구해줍니다.
체크리스트: GitHub를 위한 프록시 설정 빠른 확인
작업을 시작하기 전에 모든 것이 올바르게 설정되었는지 확인하기 위해 이 체크리스트를 사용하세요:
✅ 설정 전
- 프록시 정보: HOST, PORT, 유형 (HTTP/SOCKS5), 로그인/비밀번호를 확보하세요
- 프록시 IP를
ipinfo.io에서 확인하세요 — 국가가 이란이 아니어야 합니다 - IP가 차단 목록에 없는지 확인하세요:
scamalytics.com에서 확인하세요 - 지속적인 작업을 위해 정적 IP(회전하지 않는)를 선택하세요
✅ Git 설정
git config --global http.proxy명령어가 실행되었습니다- 프록시가 github.com에만 적용되었습니다 (전역적으로 적용되지 않음) — 필요할 경우 세부 설정이 가능합니다
- 토큰 저장을 위한 credential.helper가 설정되었습니다 (HTTPS용)
- SSH: ProxyCommand가 있는
~/.ssh/config에 블록이 추가되었습니다
✅ 작동 확인
git ls-remote https://github.com/github/gitignore HEAD명령어가 해시를 반환합니다ssh -T [email protected]명령어가 인사말을 반환합니다 (SSH용)- 테스트 리포지토리에 푸시가 성공적으로 완료되었습니다
403 Forbidden또는Repository access blocked오류가 없습니다
✅ 계정 보안
- 정적 IP가 사용되고 있습니다 (회전하지 않음)
- GitHub 계정에 2단계 인증이 활성화되어 있습니다
- Personal Access Token이 최소한의 권한(오직 repo)으로 설정되어 있습니다
- 토큰의 유효 기간이 설정되어 있습니다 (무기한이 아님)
결론
GitHub의 제재 제한은 이란 개발자들에게 불쾌한 현실이지만, 이는 막다른 길이 아닙니다. 기술적 해결책이 존재하며 작동합니다: 해외 IP를 가진 프록시와 올바른 Git 설정을 결합하면 커밋 푸시, 리포지토리 클론, GitHub Actions 작업 및 오픈 소스 프로젝트 참여가 가능합니다.
이 기사의 주요 요점은 다음과 같습니다:
- 일상적인 작업을 위해 유럽의 정적 주거용 또는 데이터 센터 프록시를 선택하세요 — 회전 없는 안정적인 IP.
- 시스템 수준이 아닌 Git config에서 프록시를 설정하세요 — 이는 전체 트래픽에 영향을 주지 않는 세부 제어를 제공합니다.
- 계정이 이미 의심받고 있다면 — 모바일 IP를 사용하세요, 이들은 거의 차단되지 않습니다.
- 계정이 동결되었다면 —
[email protected]에 이메일을 보내세요, GitHub는 개인 개발자에게 접근을 복구해줍니다. - 포트 443을 통한 SSH를 사용하세요 (ssh.github.com) — 이는 대부분의 공급자 차단을 우회합니다.
GitHub와의 지속적인 작업을 위한 신뢰할 수 있는 솔루션을 찾고 있다면, 주거용 프록시를 고려해보세요 — 이들은 허용된 국가의 실제 가정 사용자 IP를 사용하여 시스템 보호의 주목을 최소화하고 Git 작업을 위한 안정적인 연결을 제공합니다. 높은 부하 작업(대형 리포지토리 클론, CI/CD 파이프라인)에는 데이터 센터 프록시가 좋은 대안이 될 것입니다 — 이는 더 빠르고 대량 데이터 작업 시 경제적입니다.
```