컴퓨터와 잡동사니 자료

Heroku와 CloudFlare를 조합한 미국VPN(v2ray)을 구축해보았다.

K66Google 2020. 12. 16. 15:14

* 알림

이 기능은 막혔습니다.

Item could not be created:
We couldn't deploy your app because the source code violates the Salesforce Acceptable Use and External-Facing Services Policy.

Heroku에서 Deploy하려고 하면 이딴 소리만 뜨면서 설치가 안 됩니다.

또한, Heroku는 2022년 11월 28일부터 무료 플랜을 중지했기 때문에 더 이상 아래와 같은 방법을 쓸 수가 없습니다.
https://blog.heroku.com/next-chapter


 

지난번에 오라클 클라우드 프리티어를 이용해서 일본VPN을 만드는데 성공했다. (링크) 이제 나에게 필요한건 미국VPN이다. 그러나 구글 GCP, 마이크로소프트 Azure 등에서의 VPS 무료 플랜은 트래픽 용량을 오라클처럼 많이 퍼주지 않는다. 따라서 VPN 용도로 사용하기에는 부적합하다.

그렇다고 오라클 클라우드에 또 가입할 수는 없을 것 같아서 여러가지로 조사해봤다. 그러다가 어떤 '중국따꺼'의 유튜브 영상과 사이트를 보게 되었다. 거기서 알게 된 방법이 바로 오늘 소개할 Heroku와 CloudFlare를 조합한 미국VPN 만들기였다. v2ray라는 VPN 클라이언트를 Heroku에다 설치하고, 그 Heroku 주소와 CloudFlare를 연결시켜서 외부에서 CloudFlare IP로 접속하면 Heroku의 v2ray에 연결되는 방식이다.

 

Heroku는 트래픽 제한은 알려지지 않았고, 사용시간은 매월 550시간이라고 한다. 550시간은 대략 22.91일이다. 하지만 30분동안 트래픽이 없으면 알아서 슬립 모드에 들어가기 때문에 24시간 내내 VPN을 쓰지 않는 이상 사용시간을 다 써서 막힐일은 없을 것으로 추정된다.

그럼 한번 도전해볼까?

 



 * 알림


본 과정은 2020년 12월 13일에 이루어졌기 때문에, 현재와는 상황이 다를 수 있습니다.

 

* 준비물

구글 막계정

(체크카드고 뭐고 다 필요없음.)

 

1. https://signup.heroku.com/ 에 들어가서 Heroku 회원가입을 한다.

성과 이름은 마음대로 입력하고, 회사명은 입력안해도 되고, 역할·국가·주요개발언어는 알아서 선택한다.

이메일 주소만 구글 막계정 주소로 제대로 입력하면 된다.

 

2. 그러면 메일함을 체크하라고 한다. 이 화면은 내버려두고 지메일로 간다.

 

3. 지메일 메일함에 인증주소가 왔을텐데 주소를 클릭한다.

 

4. 그러면 이어서 가입절차가 진행된다. 비밀번호를 설정하고 약관에 체크한 뒤 맨 아래에 있는 버튼을 클릭한다.

 

5. 'Click Here To Proceed' 버튼을 눌러서 계속 진행한다.

 

6. 진행하면 또 이런 창이 나오는데 이탈리아 거주하냐는 질문만 No로 설정해놓고 Accept 클릭한다.

 

7. 드디어 가입절차가 끝났다. 이제 Heroku에 이메일과 비밀번호로 로그인 할 수 있게 되었다. 가입 직후에 스크린샷과 같은 화면이 뜰텐데, 잠시 내버려둔다.

 

8. 이제 Heroku에 v2ray를 설치해야 한다.

새 탭을 열고 Github V2Ray Heroku 페이지(링크)로 가서 'Deploy to Heroku' 버튼을 누른다.

 

9. 그럼 이런 화면이 뜨는데 App name은 가급적 이메일 아이디와 동일하게 입력하는 게 좋다. 왜냐하면 이 값은 나중에 VPN에 접속할때 중요한 값이 되기 때문이다.

지역은 미국을 선택한다. 미국VPN을 만들어야 하니까.

UUID는 자동으로 생성되어 있는데 이 값을 메모장에다 복사해놓는다. 다 했으면 Deploy app 누른다.

 

10. 그럼 알아서 설치가 진행된다. 마지막 과정까지 다 됐으면 Manage App 버튼을 클릭한다.

 

11. 화면 상단의 메뉴에서 'Settings' 를 클릭한다.

 

12. 그럼 설정 메뉴가 뜨는데 혹시 UUID를 메모장에 안 적고 까먹은 사람들은 Config Vars의 Reveal Config Vars를 클릭하면 UUID를 볼 수 있으니 여기서 복사하면 된다. 잘 적은 사람들은 계속 스크롤을 내린다.

 

13. 스크롤을 내리면 Domains 파트 오른쪽에 주소가 하나 보일 것이다. 이 주소는 CloudFlare를 설정할때 꼭 필요한 주소이므로 반드시 메모장에 복사해놓아야 한다. 복사했으면 이 화면도 내버려둔다.

 

14. 새 탭을 열고 CloudFlare 가입 페이지(링크)로 바로 이동해서 이메일 주소와 암호를 넣고 계정 생성을 클릭한다. (이미 계정이 있으면 가입 절차는 생략하고 보면 된다.)

 

15. 클릭하면 Heroku처럼 메일함으로 인증 메일이 오게 될 것이다. 메일로 온 인증 주소를 클릭한다.

 

16. '대시보드로 계속 진행합니다.' 클릭.

 

17. 대시보드 페이지가 뜨면 오른쪽 중간에 있는 Workers 클릭.

 

18. 하위 도메인 설정 페이지가 뜨면 가급적 이메일 아이디와 동일하게 입력해준 뒤에 '설정' 버튼을 누른다.

 

19. 플랜 선택이 뜨면 '무료로 계속하기' 클릭.

 

20. 화면 상단에 있는 'Worker 생성' 버튼 클릭.

 

21. 그러면 이런 화면이 뜰 것이다. 내용이 좀 복잡하니까 잘 따라해야 한다.

먼저 HTTP - GET 옆에 떠 있는 주소(어쩌구저쩌구.workers.dev)를 메모장에 복사한다.

그런 다음 '스크립트' 부분에는 아래 글상자에 적어둔 코드를 붙여넣는다.

 

addEventListener(

"fetch",event => {
let url=new URL(event.request.url);
url.hostname="어쩌구저쩌구.herokuapp.com";
let request=new Request(url,event.request);
event. respondWith(
fetch(request)
)
}
)

 

붙여넣은 다음 url.hostname을 자신에게 맞게 수정한다. 아까 Heroku 설정 화면 - Domains 파트에서 복사했던 주소로 수정하면 된다. 다 했으면 화면 하단에 있는 '저장 및 배포' 버튼을 클릭한다.

 

22. 클릭하면 이런 메시지가 뜨는데 다시 '저장 및 배포' 를 클릭한다. 클릭한 다음에 아무런 오류 메시지도 표시되지 않으면 성공적으로 스크립트가 입력된 것이다. 이 화면도 내버려둔다.

 

23. 이제 CloudFlare의 IP 주소 중 내 컴퓨터에서 가장 속도가 빠른 IP를 찾아야 한다. 새 탭을 열고 Github Better CloudFlare IP 페이지(링크)에 가서 windows용 파일을 다운로드받아서 압축을 푼다.

 

(빠른 IP 찾기 프로그램 사용이 꺼림칙하다면 다운로드 받지말고 26번 과정으로 건너뛰세요.)

 

 

24. CF우선IP.bat 라는 배치파일을 실행한다.

 

25. 20이라고 입력하고 엔터키를 친다.

 

26. 그러면 수많은 IP들을 분석하게 된다. 이 과정에서 공유기가 윔바이러스에 감염된 걸로 의심을 할 수도 있다. (해당 문제는 본문 맨 마지막 부분에서 취급한다.) 분석이 끝나면 IP주소 하나를 보여준다. 이게 내 컴퓨터에서 가장 속도가 빠른 CloudFlare IP주소다. IP주소를 메모장에 잘 적어둔다.

 

(프로그램 사용이 꺼림칙한 사람들은 위 스크린샷에 나온 IP주소를 메모장에 적으면 된다.)

 

드디어 모든 절차가 끝났다. 난잡하게 열어놓은 탭 페이지들은 모두 닫아버려도 된다. 이제 프로그램을 사용하여 만들어놓은 VPN에 접속해보는 일만 남았다. PC에서는 Netch로, 안드로이드에서는 v2rayNG를 사용한다.

 

* 다운로드 페이지

Netch : Github

v2rayNG : Github , 플레이스토어

 

 

* Netch 설정

실행 후 Server - Add [VMess] Server 클릭.

 

Remark - Heroku에서 입력한 App Name (이메일 아이디)

Address - 빠른 IP 분석 프로그램에서 나온 IP : 443

User ID - Heroku에서 자동으로 생성된 UUID

Alter ID - 64

Encrypt Method - auto

Transfer Protocol - ws

Host - CloudFlare worker 페이지에서 복사한 주소(.workers.dev)

TLS Secure - tls

 

(언급하지 않은 값은 기본값으로 둘 것)

 

값을 입력한뒤 Save 버튼 클릭.

 

 

* v2rayNG 설정

앱 실행 후 오른쪽 위 + 버튼 - Type manually[Vmess] 터치.

 

remarks - Heroku에서 입력한 App Name (이메일 아이디)

address - 빠른 IP 분석 프로그램에서 나온 IP

port - 443

id - Heroku에서 자동으로 생성된 UUID

alterId - 64

security - auto

flow - ws

request host - CloudFlare worker 페이지에서 복사한 주소(.workers.dev)
tls - tls

 

(언급하지 않은 값은 기본값으로 둘 것)

 

값을 입력한뒤 오른쪽 위의 √ 버튼을 터치.

 

만들어 놓은 VPN에 접속한 뒤 https://www.iplocation.net 에 접속해보니까 미국IP로 인식되었다.

어렵게 만들어놓은 이 VPN은 향후 유튜브 영상 지역우회 등에서 요긴하게 쓰일 것이다.

 

이상으로 Heroku와 CloudFlare를 조합한 미국VPN 구축 경험담을 마치도록 하겠다.

 

----------------------

* 공유기 윔바이러스 감염 의심 문제

(iptime 공유기 기준)

 

아까 CloudFlare 빠른 IP 찾는 프로그램때문에 공유기가 윔바이러스 의심을 하고 있다. 그런데 아무리 '경고해제/확인' 버튼을 눌러도 인터넷에 접속이 되지 않고 계속해서 위의 경고문만 띄우고 있었다.

 

그래서 공유기 관리자 페이지로 들어간다음 '보안 기능' - '네트워크 감시' - '모든 감시 내역 삭제' 버튼을 누르니까 경고문이 사라졌다.

----------------------

 

이런 식으로 유료VPN에 결제하지 않고 나만의 VPN을 구축할 수가 있었다.

그럼 이만...