WireGuard Server in Debian
WireGuard: A Normal VPN Server replacing OpenVPN etc.
There is also another option to setup normal VPN Server, I choose WireGuard as an example
1. Install Wireguard
Update Debian first
sudo -i
apt-get update && apt-get upgrade -yInstall cloud-amd64 linux header
apt install linux-headers-$(uname -r) -yreboot once
rebootEnable package forward
nano /etc/sysctl.conffind #net.ipv4.ip_forward=1 and delete the # in front
Activate changes then install wireguard
sysctl -p
apt-get install wireguard -yCase: If there is error showing E: unable to locate package wireguard
sudo sh -c "echo 'deb https://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware' > /etc/apt/sources.list.d/bookworm-backports.list"
apt update
apt-get install wireguard -y2. Configure wireguard server
Generate key pairs (privatekey=server private key, publickey= server public key, priclikey=private client key, pubclikey=public server key)
cd /etc/wireguard
umask 077; wg genkey | tee privatekey | wg pubkey > publickey
umask 077; wg genkey | tee private_client_key | wg pubkey > public_client_key
umask 077; wg genpsk > presharedkeyCopy the following result of keys
cat privatekey
cat publickey
cat private_client_key
cat public_client_key
cat presharedkeyCheck the interface name of VPS (there should be 2, one name as "lo", we need another one) For example: en0
ip link showEdit config file (note: eth0 should change to the name you find in previous step, in my case is en0)
nano /etc/wireguard/wg0.conf[Interface]
Address = 192.168.69.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = RESULT_OF_privatekey
[Peer]
PublicKey=RESULT_OF_public_client_key
PresharedKey=RESULT_OF_presharedkey
AllowedIPs=192.168.69.2
PersistentKeepalive=30Activate the server
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0Open UDP port : 51820 in VPS firewall
3. Generate QR code for mobile use
Install QR Code Generator (For desktop users, you can skip installing, just change the config file below)
apt install qrencode -ySetup the config file for mobile device
nano /etc/wireguard/mobile.confThings to change: PrivateKey, PublicKey, PresharedKey, a.bname.com You may type your setting in mobile directly if you want, but I'm lazy For DNS, if you created DNS server in the same Debian server, you can change to 192.168.69.1
[Interface]
PrivateKey = RESULT_OF_private_client_key
Address = 192.168.69.2/24
DNS = 8.8.8.8
[Peer]
PublicKey = RESULT_OF_publickey
PresharedKey = presharedkey
Endpoint = a.bname.com:51820
AllowedIPs = 0.0.0.0/0Generate QR code for mobile use
qrencode -t ansiutf8 < /etc/wireguard/mobile.confLast updated
Was this helpful?