Белгілі, WireGuard — бұл VPN, ол бізге жеке желі мен серфинг үшін қауіпсіз туннель ұсынады. Бұл бізге смартфон немесе жеке компьютер арқылы Интернетке қауіпсіз және сенімді қол жеткізу береді.
Оны таза серверге қалай орнатуға болатынын осы мақаладан біле аласыз.
Бұл нұсқаулықта біз WireGuard-ты Docker контейнерінде Docker Compose пайдаланып қалай орнатуға болатынын қарастырамыз.
Бірақ алдымен, ОС пакеттерін жаңарту керек.
apt update
Қажетті пакеттерді орнатып, жаңа репозиторийді қосамыз:
apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Жаңа репозиториймен пакеттерді жаңартамыз:
apt update
Енді Docker-ды орнатамыз.
apt-get install docker-ce docker-ce-cli containerd.io
Нұсқасын тексереміз:
docker --version
Статусын тексереміз:
systemctl status docker
Егер ол іске қосылмаса, онда іске қосамыз:
systemctl start docker
Және автоматты іске қосуға қосамыз.
systemctl enable docker
Бұл жоба үшін бізге 1.25 нұсқасы жеткілікті.
curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Орнату құқықтарын орнатамыз.
chmod +x /usr/local/bin/docker-compose
Docker-Compose қалай орнатылғанын тексереміз:
docker-compose --version
Linux пайдаланушысын docker тобына қосамыз:
usermod -aG docker $USER
*.yaml файлын Docker-Compose үшін жасаймыз.
Болашақта не орнатылғанын білу үшін, /opt каталогында осы жоба үшін бөлек папка жасаймыз және оған өтеміз.
mkdir /opt/wireguard-server && cd /opt/wireguard-server
Сіз сондай-ақ осы және басқа жобаларды орналастыру үшін өзіңіздің үй директорияңызды /home пайдалана аласыз.
linuxserver репозиторийін пайдаланып, docker-compose.yaml файлын https://hub.docker.com/r/linuxserver/wireguard сілтемесінен жасаймыз.
docker-compose.yaml немесе docker-compose.yml файлын жасаймыз,
vim docker-compose.yaml
Және оған келесі кодты қосамыз:
version: "2.1"
services:
wireguard:
image: lscr.io/linuxserver/wireguard:latest
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=0
- PGID=0
- TZ=Europe/Amsterdam
- SERVERURL=auto
- SERVERPORT=51820
- PEERS=1
- PEERDNS=1.1.1.1
- INTERNAL_SUBNET=10.10.10.0
- ALLOWEDIPS=0.0.0.0/0
- LOG_CONFS=true
volumes:
- /opt/wireguard-server/config:/config
- /lib/modules:/lib/modules
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: always
Мұнда:
container_name: контейнеріңіздің атауы;
TZ=: уақыт белдеуі, қажеттісіне өзгертуге болады, бірақ анонимдік үшін Europe/Amsterdam-ды қалдырған жөн;
SERVERPORT=: VPN-нің жұмыс істейтін кездейсоқ порты. Оны ports-те де көрсету керек.
PEERS=: пайдаланушылар саны. Оларды қажетті санына дейін көбейтуге болады;
51820:51820/udp - пробрасываемые порты.
Скриптімізді іске қосамыз (бұны біздің файл жасалған директорияда болу керек. Бұл жағдайда /opt/wireguard-server/):
docker-compose up -d
Образдарды жүктеп, орналастыруды күтеміз.
Тексереміз:
docker-compose ps
немесе
docker ps
Сондай-ақ, бұл docker командасымен бір командамен жасауға болады:
docker run -d \\ --name=wireguard \\ --cap-add=NET_ADMIN \\ --cap-add=SYS_MODULE \\ -e PUID=0 \\ -e PGID=0 \\ -e TZ=Europe/Amsterdam \\ -e SERVERURL=auto \\ -e SERVERPORT=51820 \\ -e PEERS=1 \\ -e PEERDNS=1.1.1.1 \\ -e INTERNAL_SUBNET=10.10.10.0 \\ -e ALLOWEDIPS=0.0.0.0/0 \\ -e LOG_CONFS=true \\ -p 51820:51820/udp \\ -v /opt/wireguard-server/config:/config \\ -v /lib/modules:/lib/modules \\ --sysctl="net.ipv4.conf.all.src_valid_mark=1" \\ --restart always \\ lscr.io/linuxserver/wireguard:latest
Смартфон үшін QR кодын генерациялау үшін:
docker exec -it wireguard /app/show-peer 1
Мұнда:
1 - бұл бірінші конфиг/пайдаланушы.
Нәтиже:
Барлық конфигурациялық файлдар мен QR кодтар /opt/wireguard-server/config/peer* папкасында орналасқан.
Ол үшін тек PEERS директивасын docker-compose.yaml файлына өзгерту керек, қажетті пайдаланушылар санын қосу.
Өзгерістерді қолдану үшін, контейнерімізді қайта жасаймыз:
docker-compose up -d --force-recreate
Сондай-ақ, анонимдік үшін, хост серверінде ping-ті өшіреміз:
echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf
Және өзгерістерді қолданамыз:
sysctl -p
Қауіпсіз серфинг жасаңыз.