前言
在Docker容器中安装WARP不易造成失联,Docker可以在一定程度上进行隔离,同时Docker还能通过打包镜像来快速保存配置。
准备工作
安装WireGuard wiki
建议通过升级内核的方式安装WireGuard,本教程只适合KVM等完整虚拟化的VPS的主机!内核为5.X及以上基本已经内置WireGuard,可以直接跳过,如果不确定请按照下方命令更新!
Debian等apt系统
#安装 sudo 和 lsb_release
apt install sudo lsb-release -y
#添加 backports 源
echo "deb http://deb.debian.org/debian $(lsb_release -sc)-backports main" | sudo tee /etc/apt/sources.list.d/backports.list
#更新源数据
sudo apt update
#安装新版内核
sudo apt -t $(lsb_release -sc)-backports install linux-image-$(dpkg --print-architecture) linux-headers-$(dpkg --print-architecture) --install-recommends -y
#重启系统
reboot
#查看内核版本
uname -r ##版本应该为5.10.0-0.bpo.8-amd64及以上
Centos等yum系统
#安装ELRepo仓库
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
#查看可用的系统内核包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
##应该看到如下所示:
5.10.10-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64
5.10.10-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64
#选择需要安装的内核,选择5.10以上的
yum --enablerepo=elrepo-kernel install 5.10.10-1.el7.elrepo #替换install后面内容为上面查询到的
#搜索以及安装的内核
grep ^menu /boot/grub2/grub.cfg
#设置默认启动内核
grub2-set-default 0 #请勿照抄,顺序为自己查询到的,注意:从0开始
#查看是否设置成功
grub2-editenv list
saved_entry=3 ##设置成功
#生成grub配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
#重启并查看当前内核
reboot
uname -r
安装Docker wiki
#大部分主流系统及版本可以使用下面脚本,如果不可以使用请参考官方wiki
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
开始部署
生成WGCF配置文件
cd ~
wget -4 https://github.com/ViRb3/wgcf/releases/download/v2.1.4/wgcf_2.1.4_linux_amd64
mv wgcf_2.1.4_linux_amd64 wgcf
chmod +x wgcf
./wgcf register
./wgcf generate
mv wgcf-profile.conf wg0.conf
修改生成的配置文件
#按需修改参数,注意:Endpoint后必须修改为162.159.192.1:2408
vim wg0.conf
#下面给出示例文件,请勿照抄
[Interface]
PrivateKey = yAmP6KiyKW93GsCIrIMg8mzTC7tLib0+ZwWGC0Y=
Address = 192.168.100.2/32
Address = fd01:5ca1:ab1e:8edd:4303:70fb:9bbd:d60f/128
DNS = 8.8.8.8
MTU = 1280
[Peer]
PublicKey = bmXOC+F1FxEMF9dyiK1SUtzH0JuVo51h2wPfgyo=
AllowedIPs = 0.0.0.0/0
AllowedIPs = ::/0
Endpoint = 162.159.192.1:2408
激活wireguard
modprobe wireguard
拉取docker镜像,启动容器,进入容器内设置
#按需设置增加或修改,注意最后的-v /lib/modules:/lib/modules 不可以修改!
docker run --restart=always -itd --name warp-docker --sysctl net.ipv6.conf.all.disable_ipv6=0 --privileged --cap-add net_admin --cap-add sys_module -v /root/wireguard:/etc/wireguard -v /lib/modules:/lib/modules ubuntu
#进入容器
docker exec -it warp-docker /bin/bash
#安装依赖包,设置时区等(需要根据提示选择)
apt update && apt install net-tools openresolv wireguard-tools vim lrzsz wget curl iproute2 unzip tzdata iputils-ping -y
#将刚刚修改的wg0.conf复制到容器中/etc/wireguard目录下,或者复制到本机已经映射的目录/root/wireguard下
#启动WireGuard
wg-quick up wg0 ##如果需要停止wireguard使用wg-quick down wg0
参考链接
Debian Linux VPS 服务器 WireGuard 安装教程
基于 Docker容器 的WARP 双栈出网 配置教程
Centos7升级内核