1.建立LXC,选择ubuntu 22.04版并且取消勾选无特权容器
apt update && apt upgrade -y && apt-get install libmnl-dev libelf-dev build-essential pkg-config git curl
2.开启TUN/TAP 前往
注:如果需要安装Docker需关闭AppArmor 前往
3.建立自启转发服务
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
sysctl -p
4.建立Golang环境并编译WireGuard-Go
或者一键脚本curl -fsSL git.io/wireguard-go.sh | sudo bash
wget -O /tmp/golang.tar.gz https://dl.google.com/go/go1.12.4.linux-amd64.tar.gz
tar -C /usr/local -xvzf /tmp/golang.tar.gz
export PATH=$PATH:/usr/local/go/bin
mkdir -p /tmp/gobuild/ && cd /tmp/gobuild/
git clone https://git.zx2c4.com/wireguard-go
cd wireguard-go
export GOPATH="/tmp/gobuild/"
go build -v -o "wireguard-go"
cp wireguard-go /usr/sbin/wireguard-go
5.安装WireGuard工具
mkdir -p /tmp/build/ && cd /tmp/build/
git clone https://git.zx2c4.com/WireGuard
cd WireGuard/src/tools
make && make install
6.执行
export WG_I_PREFER_BUGGY_USERSPACE_TO_POLISHED_KMOD=1
wireguard-go wg
7.建立WireGuard目录
mkdir -p /etc/wireguard/ && cd /etc/wireguard/
8.生成WG Key 注:如果采用WG-Gen-WEB可忽略此步
cd /etc/wireguard
wg genkey | tee sprivatekey | wg pubkey > spublickey
wg genkey | tee cprivatekey | wg pubkey > cpublickey
9.建立Server端配置
echo "[Interface]
PrivateKey = $(cat sprivatekey)
Address = 10.0.100.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
MTU = 1420
[Peer]
PublicKey = $(cat cpublickey)
AllowedIPs = 10.0.100.2/32" | sed '/^#/d;/^\s*$/d' > wg0.conf
注意:下面一段为旁路由模式下使用,合理替换网口、ip等参数
iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -s 10.252.1.0/24 -o ens18 -j MASQUERADE
iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -s 10.252.1.0/24 -o ens18 -j MASQUERADE
10.建立Client端配置
echo "[Interface]
PrivateKey = $(cat cprivatekey)
Address = 10.0.100.2/24
DNS = 8.8.8.8
MTU = 1420
[Peer]
PublicKey = $(cat spublickey)
Endpoint = 服务端IP:51820
AllowedIPs = 0.0.0.0/0, ::0/0
PersistentKeepalive = 30" | sed '/^#/d;/^\s*$/d' > wg-client.conf
11.启用服务
wg-quick up wg0
12.生成QR Code 注:非必要
apt install qrencode
qrencode -t ansiutf8 < wg-client.conf
13.建立开机自启动
systemctl enable wg-quick@wg0
14.清理编译垃圾
rm -rf /tmp/gobuild/
rm -rf /tmp/build/
rm -f /tmp/golang.tar.gz
此处评论已关闭