클라우드
오라클 분류

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

컨텐츠 정보

  • 28,771 조회
  • 93 댓글
  • 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: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: teddysun/v2ray
    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"


위와 같이 수정합니다.


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

2023년 11월 29일 파일 내용을 수정하였습니다.


기존 image: v2fly/v2fly-core


변경 image: teddysun/v2ray

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


기존에 있던  내용을 컨트롤 + 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를 운영하고 있습니다.

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

댓글 93 / 10 페이지

우성짱님의 댓글의 댓글

docker ps
위 명령어를 내려보면 어떤 컨테이너가 443 포트를 쓰고 있는지 알 수 있습니다.

 기존 caddy가 실행되고 있을 수 있고, 아니면 Nginx나 Apache 같은 웹서버가 점유하고 있을 수 있습니다.

docker stop 컨테이너 이름
docker rm 컨테이너 이름

위와 같이 컨테이너를 제거하면 잘 될겁니다.

unmp07님의 댓글

중국에서 1월부터 잘 쓰고 있는데 5월부터 어떻게된건지 모르겠지만 차이나 유니콤 기준 차단되네요. 차이나 텔레콤은 막지 않는데 차이나 유니콤은 1주일 정도 쓰니 차단합니다...해당 구조 생각하면 막힐 수 없는데 원리를 모르겠습니다.

우성짱님의 댓글의 댓글

아 저도 중국에서 막혔다고 연락받았습니다. 그래서 아웃라인으로 연결해보시라고 했는데, 일단 아웃라인은 안막히네요.

trojan이나 ikev2 를 알아봐야할 것 같기도 합니다.
전체 7 / 1 페이지
RSS

최근글


새댓글


알림 0