Skip to content

V2ray proxy setup

Posted on:April 17, 2024 at 04:32 PM

Plan

## Master node

- [x] Base environment setup
	- [x] Install git
	- [x] Install docker
	- [x] Clone git repo
		- [x] Git personal token
	- [x] One script
- [x] V2ray subscription provider
	- [x] HTTP server: heartbeat api + subscription provider
		- [x] flask + embedded db
			- [x] pickledb / tinydb / zodb
				- [x] [https://www.opensourceforu.com/2017/05/three-python-databases-pickledb-tinydb-zodb/](https://www.opensourceforu.com/2017/05/three-python-databases-pickledb-tinydb-zodb/)
- [ ] Subscription for geoip rules

## Child node

- [x] Base environment setup
	- [x] Install git
	- [x] Install docker
	- [x] Clone git repo
		- [x] Git personal token
	- [ ] One script
- [x] V2ray service
	- [x] docker compose
- [x] Heartbeat with doggy1
	- [x] docker compose
	- [ ] SSH(self-signed certificate)
	- [ ] auto-restart
- [x] Auto port

Doggy child node set up

  1. Create VM

    1. On Basics

      1. Set Username as chaoszh

      2. Use personal desktop PC public key to login(home-chaoszh-public-key)

        Untitled.png

        Untitled.png

    2. On Networking

      1. Create another Public IP with Basic SKU and Dynamic Assignment(dynamic ip address will allow reboot to change IP)

        Untitled.png

  2. VM is ready

    1. Assign doggy-uami as identity

      Untitled.png

    2. Configure DNS name(not necessary)

      Untitled.png

    3. Turn off Auto-shutdown

      Untitled.png

    4. Create inbound rule and use name “vpn”(important)

      Untitled.png

  3. SSH to VM

    1. Install dependencies

      sudo apt update
      # install git
      sudo apt install -y git-all
      # install docker
      sudo apt install -y ca-certificates curl gnupg
      sudo install -m 0755 -d /etc/apt/keyrings
      curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
      sudo chmod a+r /etc/apt/keyrings/docker.gpg
      echo \
        "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
        "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
        sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
      sudo apt-get update
      sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      # install net-tools
      sudo apt install -y net-tools
      sudo usermod -aG docker $USER
    2. git clone https://github.com/chaoszh/over-the-sea.git

      mkdir repo
      cd repo
      
      git clone https://github.com/chaoszh/over-the-sea.git
      // Input Username and your PAT
      
      or
      
      git clone https://<PAT>@github.com/chaoszh/over-the-sea.git
    3. enable bbr

      // according to over-the-sea/helper.sh
      sudo su root
      // enable bbr
    4. start proxy service

      // using systemd
      sudo ln -s $(realpath .deploy/proxy.service) /etc/systemd/system/proxy.service
      
      // start proxy.service
      sudo systemctl start proxy
      
      // enable proxy service to restart after reboot
      sudo systemctl enable proxy
      
      // status check
      sudo systemctl status proxy