클라우드
오라클 분류

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

컨텐츠 정보

  • 9,127 조회
  • 26 댓글
  • 1 추천
  • 목록

본문


기존에 올려드렸던 중국 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를 운영하고 있습니다.

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

댓글 26 / 3 페이지

33님의 댓글

말씀해 주신대로 docker-compose.yml에

environment:
      - V2RAY_VMESS_AEAD_FORCED=false

항목 추가하고, 포트도 51821:51821로 바꿔보았는데 Netch에서는 연결은 되나 윗분처럼 응답 없음으로 표시가 됩니다 ㅠㅠ  다른 포트도 다 열려있는데 뭐가 문제인질 모르겠네요...!

우성짱님의 댓글의 댓글

음 바꾼 후 도커 컴포즈를 다시 시작해주셨나요?

docker-compose down

위 명령어로 정지 후

docker-compose up -d

위 명령어로 다시 시작해보세요.

파인스데이님의 댓글

안녕하세요? 얼마 전에 중국 왔더니 말로만 듣던 인터넷 접속 제한에 놀람을 금합니다 ㅜ. 다행이 도움 주셔서 열심히 따라하면서 공부해보고 있습니다. 궁금한 부분이 기존에 vmess, wireguard, shadowsocks, outline 방법을 알려 주셨던 건데 지금 도메인 우회하는 방법은 vmess만 적용되는게 맞는 거죠?
중국에서 사용 시 결국 ip 차단 방지하려면 해당 오라클 공용ip에서는 vmess만 사용을 해야 황금방패에 필터링 안되는 개념이 맞는 건가요? 해당 ip를 사용하는 wireguard, outline등을 사용하다가 황금방패에 차단이 되면 vmess도 동일 ip라 문제 되는거 아닌가 궁금해서 문의 드려봅니다.

정관식님의 댓글

안녕하세요. 지난 번에 황금방패 뚫는 3대장 게시물 대로 구축해서 중국 파견중이던 동생이 잘 쓰고 있었다고 감사글 남겼었습니다. 요즘 카카오 가족단톡방에 동생이 몇 주 째 말이 없어서 연락해보니 그때 VPN 다 안되고 유료VPN도 안된다고 해서, 중국 정세때문에 그런건가 하다가, 여기 생각나서 다시와서 이 글대로 했더니 동생이 된다고 하네요. 다시 한번 정말 감사드립니다.
전체 7 / 1 페이지
RSS

최근글


새댓글


알림 0