클라우드
오라클 분류

중국 황금방패 우회를 위한 VMess+TLS+Websocket+CDN VPN 구축하기

컨텐츠 정보

본문


기존에 올려드렸던 중국 VPN 3대장 구축하는 방법( https://www.wsgvet.com/ubuntu/170 )은 황금방패가 IP만 차단하면 접속이 안되는 단점이 있습니다.


클라우드플레어를 이용하여 IP 차단을 예방하고, Caddy 웹서버를 설치하여 VPN이 아닌 실제 사이트처럼 속이는 방법을 알려드리겠습니다.



0. 중국 VPN 3대장 구축하기


https://www.wsgvet.com/ubuntu/170


위 링크에 있는 글과 유튜브를 보고 구축합니다.



1. 도메인과 오라클 클라우드 연결하기


우선 도메인(홈페이지 주소)이 필요하고, 해당 도메인이 오라클 클라우드 인스턴스의 IP를 가리키게 해야합니다.


오라클 클라우드 인스턴스와 도메인 연결하기 : https://www.wsgvet.com/cloud/12


위와 같이 도메인을 받고, 인스턴스의 공용IP를 도메인과 연결한 후 인스턴스의 SSH에서 작업하면 됩 니다.



2. Caddy 웹서버 설정하기


우선 파일과 폴더의 구조는



.
├── Caddyfile
├── config/
├── data/
├── docker-compose.yml
├── log/
│   ├── caddy/
│   └── v2ray/
└── config.json


위와 같이 될 것입니다.



mkdir -p config data log/caddy log/v2ray


우선 위와 같이 필요한 폴더를 생성합니다.



nano Caddyfile


위 명령어로 캐디 설정 파일을 작성합니다.



example.com
{
  log {
    output file /var/log/caddy/caddy.log
  }
  root * /usr/src
  file_server
  tls youremail@email.com
  @websockets {
    header Connection Upgrade
    header Upgrade websocket
  }
  reverse_proxy @websockets v2ray://v2ray:51821
}


위 내용에서 수정할 부분이 2군데입니다.


example.com을 발급 받은 도메인 주소로 바꾸는 것입니다. VMess 접속에 필요합니다.


youremail@email.com를 자신의 이메일 주소로 변경하는 것입니다. SSL 인증서 발급에 필요합니다.


수정이 끝나면 컨트롤 + O, 엔터, 컨트롤 + X로 저장 후 닫기를 해줍니다.



3. v2ray 설정 수정하기



nano ./v2ray/config.json


위 명령어로 v2ray의 설정을 변경합니다.



{
 "log": {
  "loglevel": "warning",
  "access": "/var/log/v2ray/access.log",
  "error": "/var/log/v2ray/error.log"
 },
    "inbounds": [
    {
        "port": 51821,
        "protocol": "vmess",
        "settings": {
            "clients": [{
                "id": "생성된 UUID 붙여넣으면 됩니다",
                "level": 0,
                "alterId": 100
            }]
        },
        "streamSettings": {
            "network": "ws",
            "wsSettings": {
                "path": "/"
            }
        }
    },
    {
        "port":51822,
        "protocol":"shadowsocks",
        "settings":{
            "method":"aes-128-gcm",
            "password":"shadowsocks용 비밀번호"
            }
    }
    ],
    "outbounds": [
        {
        "protocol": "freedom",
        "settings": {}
        },
        {
        "protocol":"blackhole",
        "settings":{},
        "tag":"blocked"
        }
    ],
    "routing":{
        "rules":[{
        "type":"field",
        "ip":["geoip:private"],
        "outboundTag":"blocked"
        }]
    }
}


위와 같은 형식으로 변경해줍니다. UUID 부분은 새로 생성해도 되고, 기존 것을 재사용해도 됩니다.


컨트롤 + K를 입력하면 한줄씩 지워집니다. 모두 삭제 후 붙여넣기 하면 편합니다.


수정이 끝나면 컨트롤 + O, 엔터, 컨트롤 + X로 저장 후 닫기를 해줍니다.


4. 우회 사이트 파일 다운 받기



sudo apt install unzip


위 명령어로 unzip 패키지를 설치합니다.



mkdir www


위 명령어로 우회 사이트 파일이 들어갈 폴더를 생성합니다.



wget -O ./www/web.zip --no-check-certificate https://html5up.net/massively/download 


위 명령어로 파일을 다운받습니다.



unzip -o -d ./www ./www/web.zip && rm -f ./www/web.zip


위 명령어로 압축파일을 풀고, 압축 파일을 삭제합니다.


5. docker-compose.yml 파일 수정하기


Caddy 웹서버 추가 및 포트 번호 수정이 필요합니다.



nano docker-compose.yml


위 명령어로 도커 설정 수정에 들어갑니다.



version: "3"
services:
  wireguard:
    image: linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asis/Seoul
      - SERVERPORT=51820 #optional
      - PEERS=1 #optional
      - PEERDNS=auto #optional
    volumes:
      - ./appdata/config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped


  v2ray:
    image: v2fly/v2fly-core
    container_name: v2ray
    volumes:
      - ./v2ray:/etc/v2ray
      - ./log/v2ray:/var/log/v2ray
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    environment:
      - V2RAY_VMESS_AEAD_FORCED=false
    ports:
      - 51822:51822


  caddy:
    image: caddy
    container_name: caddy
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./data:/data
      - ./log/caddy:/var/log/caddy
      - ./config:/config
      - ./www:/usr/src
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "80:80"
      - "443:443"


위와 같이 수정합니다.


기존에 있던  내용을 컨트롤 + K로 모두 삭제하고 붙여넣기 하면 됩니다.


수정이 끝나면 컨트롤 + O, 엔터, 컨트롤 + X로 저장 후 닫기를 해줍니다.


참고로 와이어가드와 v2ray의 shadowsocks 51822포트는 그대로 사용할 수 있습니다.


다만 vmess의 포트가 443으로 변경된 것입니다.


방화벽은 당연히 80,443이 열려있어야겠죠? 제 가이드에 따라 오셨다면 열려있을 것입니다.


https://www.wsgvet.com/cloud/4


방화벽 관련은 위 링크를 참조하세요.


6. 도커 실행하기



docker-compose up -d


위 명령어로 시작해줍니다.


7. 접속 방법


Netch 기준으로 설명드립니다.


9d6d158cf29d5db31ec417d76cbc20f1_1606319809_3933.png

위와 같이 Server 클릭 후 Add VMess Server를 클릭해줍니다.


9d6d158cf29d5db31ec417d76cbc20f1_1606320235_2494.png
 

위와 같이 넣어주면 됩니다.


8. 참조 사이트


https://medium.com/@coorpee/docker-v2ray-caddy-3e484d6c84bc

관련자료

  • 서명
    우성짱의 NAS를 운영하고 있습니다.

    저의 즐거움이 여러분의 즐거움이면 좋겠습니다.

댓글 17개 / 2페이지

ㅇㅇ님의 댓글

따라서 했더니 잘 구축됐네요!
그냥 https로 접속하면 평범한 웹사이트인데
사실은 VMess 서버라니 정말 신기합니다 ㅋㅋ

우성짱님의 댓글의 댓글

오 사실 이 부분은 어려운데 잘 하셨네요! 축하합니다. ㅎㅎ

중국에서 IP 막아도 걱정 없습니다. ㅎ

Daniel님의 댓글

안녕하세요? 우성짱님!
자세하고 친절한 설명 감사드립니다! ^^;
저는 한국 부모님 댁에 Ubuntu 서버 설치하여 IPTIME으로 DDNS 등록 후 v2ray 설치하여 거의 1년 가까이 사용하다가 최근에 IP가 막혔습니다.
그래서 우성짱님 게시글 참조하여 설치를 진행했는데요..
제가 등록한 도메인의 웹페이지까지는 잘 뜨는데
연결이 안 되네요.. ㅠ
혹시 설치 순서나 Script가 잘못 되었을 까봐 몇 번이나 확인하고 재 설치를 했는데
계속 안 됩니다.
Netch에서는 제 서버를 인지하고 ping값도 나옵니다. 그런데 연결이 안됩니다.
Netch start를 누르면 오른쪽에 HTTP : Timeout NAT : NoUDP 라고 나오네요..

혹시 위 메시지를 보고 어디가 잘 못되었는지 확인이 가능하실까요? ^^;

다시 한번 좋은 게시글 감사드립니다!
새해 복 많이 받으셔요!! ^^;

아~ 그리고 막힌 IP는 공유기를 12시간 정도 껐다 켜서 안 막힌 IP로 바꿨습니다. ^^;

우성짱님의 댓글의 댓글

음 아마도 vmess 문제인 것 같은데요.

https://www.wsgvet.com/ubuntu/170

여기 게시글 최근 댓글을 보시면 환경변수를 추가하는 방법에 대해 나와있습니다. 한번 변경해보시겠어요?

이 글에도 수정을 해둬야겠네요.

Daniel님의 댓글

답변 감사드립니다! ^^;

docker-compose.yml에
v2ray: 아래에다가 environment: V2RAY_VMESS_AEAD_FORCED=false
이렇게 적어주고 컨테이너 재시작해주니까 alterId 100으로 해놔도 잘 됩니다.

이거 말씀하시는 건가요? ^^;

이대로 수정하고 docker 재실행 했더니

root@xxx-ubuntu:~# docker-compose up -d
services.v2ray.environment must be a mapping

위와 같은 에러 메시지(?)가 나오고, 여전히 안 됩니다. ㅠㅠ
원인이 무엇일까요? ^^;

우성짱님의 댓글의 댓글

environment:
      - V2RAY_VMESS_AEAD_FORCED=false

이렇게 넣어보시겠어요? 이 글에도 수정해두었습니다. 한번 똑같이 바꿔보세요.

Daniel님의 댓글의 댓글

우성짱님!

정말 감사합니다!
알려주신 대로 하니까 드디어 되네요 ㅎㅎ

근데
 v2ray:
    image: v2fly/v2fly-core
    container_name: v2ray
    volumes:
      - ./v2ray:/etc/v2ray
      - ./log/v2ray:/var/log/v2ray
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    environment:
      - V2RAY_VMESS_AEAD_FORCED=false
    ports:
      - 51822:51822

여기서 v2ray port 번호는
 - 51821:51821
로 수정해야 할 것 같습니다. 이전 설정에서 v2ray는 계속 51821로 지정했었잖아요?

그리고 웃긴 게 설정 후 v2rayN은 접속이 잘 되는데
Netch는 여전히 안 됩니다. ㅠ

어차피 Netch는 카톡할 때 빼고 프로그램 자체가 좀 무거운 느낌이라 잘 안 써서 상관없습니다.

그리고 VMess+TLS+Websocket+CDN 으로 우회하니까 예전에 직접 접속했던 때와 비교해서
속도는 확실히 느리긴 합니다.
그래도 일상에 필요한 Youtube. 넷플릭스 등 관람 및 Daum, Google 사이트 접속에 지장이 없는 속도입니다!
IP막힘 걱정 없다는 게 어디인가요? ^^;

우성짱님 정말 감사드립니다!
근처에 있으면 소주라도 한 잔 사드리고 싶네요! ^^;

그럼 감기 조심하시고, 설 연휴가 얼마 남지 않았는데 가족, 친척 분들과 뜻 깊은 명절 보내시기 바랍니다!
Total 7 / 1 Page
RSS
Linode(리노드) 클라우드 서버 생성 및 Putty 접속하기

리노드 가상서버호스팅으로 유명한 Linode(리노드)에 가입하고 Putty 접속하는 방법에 대해 알려드리겠습니다.1. Linode(리노드) 가입하기ht…

중국 황금방패 우회를 위한 VMess+TLS+Websocket+CDN VPN 구축하기 댓글 17

오라클 기존에 올려드렸던 중국 VPN 3대장 구축하는 방법( https://www.wsgvet.com/ubuntu/170 )은 황금방패가 IP만 차단하…

오라클 클라우드 인스턴스와 도메인 연결하기 댓글 18

오라클 워드프레스, 그누보드, 라이믹스 같은 홈페이지를 운영하거나,VMess 또는 Trojan-Go 같은 기술을 이용하여 Websocket 방식으로 중…

오라클 클라우드 Ubuntu 20.04 인스턴스 기본 설정하기 댓글 26

오라클 1. 기본 패키지 업데이트하기우분투는 지속적으로 패키지(프로그램)가 업데이트되므로 최신 버전을 유지하는 것이 좋습니다.SSH로 접속한 후sudo…

오라클 클라우드 인스턴스 생성 및 SSH 접속하기 댓글 18

오라클 1. VM 인스턴스 생성하기위와 같이 왼쪽 위의 ORACLE Cloud 글자를 클릭하면 홈으로 돌아옵니다.그 후 VM 인스턴스 생성을 클릭합니다…

오라클 클라우드 구획, 가상 네트워크, 방화벽, 공용IP 설정하기 댓글 19

오라클 오라클 클라우드를 시작할 때 가장 먼저 해야할 것들을 소개해드립니다.1. 구획 생성하기위와 같이 왼쪽 위의 오라클 클라우드 로고 왼쪽에 메뉴버튼…

최근글


새댓글


알림 0