目 录CONTENT

文章目录

在Ubuntu Server上搭建WireGuard VPN服务

成培培
2026-07-17 / 0 评论 / 0 点赞 / 2 阅读 / 0 字

最近在OpenWRT上搭建了WireGuard服务作为VPN,发现挺好用的,而且配置也简单效率也高,所以想到要不要在公司电脑上搭建一个,把UDP端口代理出来,这样可以实现在家访问公司的网络了。

安装WireGuard

sudo apt update
sudo apt install wireguard
# 开启IP转发, net.ipv4.ip_forward=1
sudo vi /etc/sysctl.conf
sudo sysctl -p

没什么好说的很简单,IP转发我的服务器是默认已经开启了

服务端配置

cd /etc/wireguard
wg genkey | tee server_private.key | wg pubkey > server_public.key
cat server_private.key
cat server_public.key

服务端生成公私钥对,客户端后面也需要生成,配置最后是需要双方交换自己的公钥
以下是我的配置:

root@ubuntu-cp:/etc/wireguard# ll
total 12
-rw-r--r-- 1 root root  45 Jul 17 13:55 server_private.key
-rw-r--r-- 1 root root  45 Jul 17 13:55 server_public.key
-rw-r--r-- 1 root root 645 Jul 17 15:17 wg0.conf
root@ubuntu-cp:/etc/wireguard# cat wg0.conf
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxx(服务端私钥)

# 开启NAT
PostUp = iptables -A FORWARD -i %i -j ACCEPT
PostUp = iptables -A FORWARD -o %i -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp0s3 -j MASQUERADE

PostDown = iptables -D FORWARD -i %i -j ACCEPT
PostDown = iptables -D FORWARD -o %i -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o enp0s3 -j MASQUERADE

[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxx(客户端公钥)
AllowedIPs = 10.8.0.3/32

这里要看自己的公网网卡不是 enp0s3,需要替换
最后还需要放行防火墙:sudo ufw allow 51820/udp
设置开机自启动:

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

其中NAT配置解决以下问题:

  • 允许 WireGuard 客户端发起访问
  • 允许目标服务器返回数据
  • 解决回程路由问题(NAT)

客户端配置

[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxx(客户端私钥)
Address = 10.8.0.3/32
# ListenPort not defined
DNS = 8.8.8.8

[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxx(服务端公钥)
# PresharedKey not used
AllowedIPs = 192.168.1.0/24, 10.8.0.1/24, 10.38.217.0/24
Endpoint = {服务端地址}:51820
# PersistentKeepAlive not defined

注意51820是UDP端口,确保端口连通性,AllowedIPs代表哪些网段需要经过VPN转发
下载一个客户端软件使用客户端配置连接即可

0

评论区