Ubuntu部署Wireguard笔记

WireGuard VPN 服务器安装配置指南

1. 系统准备

bash 复制代码
# 更新镜像并安装WireGuard
apt update && apt install -y wireguard

# 开启IP转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

2. 生成密钥对

bash 复制代码
# 创建配置目录
mkdir -p /etc/wireguard && chmod 0777 /etc/wireguard
cd /etc/wireguard
umask 077

# 生成服务器密钥
wg genkey | tee server_privatekey | wg pubkey > server_publickey

# 生成客户端密钥(可生成多个)
wg genkey | tee client1_privatekey | wg pubkey > client1_publickey

3. 服务端配置

bash 复制代码
# 创建配置文件(注意替换eth0为实际网卡名)
cat > wg0.conf <<EOF
[Interface]
PrivateKey = $(cat server_privatekey)
Address = 10.0.8.1/24
ListenPort = 50814
DNS = 8.8.8.8
MTU = 1420

# 流量转发规则(eth0需替换)
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

[Peer]
# 客户端1配置
PublicKey = $(cat client1_publickey)
AllowedIPs = 10.0.8.10/32
EOF

4. 启动服务

bash 复制代码
# 设置开机自启
systemctl enable wg-quick@wg0

# 启动服务
wg-quick up wg0

# 检查状态
wg show

5. 客户端配置

bash 复制代码
# 生成客户端配置
cat > client1.conf <<EOF
[Interface]
PrivateKey = $(cat client1_privatekey)
Address = 10.0.8.10/32
DNS = 8.8.8.8
MTU = 1420

[Peer]
PublicKey = $(cat server_publickey)
Endpoint = [服务器公网IP]:50814
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
EOF

6. 多客户端配置

在服务端配置中追加新的Peer段:

bash 复制代码
# 生成新客户端密钥
wg genkey | tee client2_privatekey | wg pubkey > client2_publickey

# 追加到wg0.conf
cat >> wg0.conf <<EOF

[Peer]
# 客户端2配置
PublicKey = $(cat client2_publickey)
AllowedIPs = 10.0.8.11/32
EOF

# 重载配置
wg syncconf wg0 <(wg-quick strip wg0)

客户端使用说明

Windows:

  1. 安装官方WireGuard客户端
  2. 导入生成的client1.conf文件

Linux:

bash 复制代码
# 安装客户端
apt install wireguard

# 使用配置
wg-quick up ./client1.conf

关键注意事项:

  1. 防火墙需放行UDP 50814端口
  2. eth0需替换为服务器实际公网网卡名
  3. 每个客户端应有独立的IP地址
  4. MTU值可根据网络情况调整(默认1420)
  5. 配置文件需妥善保管,PrivateKey不可泄露

常用命令:

  • 查看连接状态:wg show
  • 临时关闭VPN:wg-quick down wg0
  • 查看运行日志:journalctl -u wg-quick@wg0 -f
相关推荐
爱编程的鱼17 小时前
HTTP 是什么?它是如何工作的
网络·网络协议·http
ZhengEnCi17 小时前
N2H-为什么99%的人不会做子网划分?大厂网络工程师的VLSM子网划分实战解析
网络协议
雯0609~1 天前
宝塔配置:IP文件配置,根据端口配置多个项目文件(不配置域名的情况)
服务器·网络协议·tcp/ip
小无名呀1 天前
socket_udp
linux·网络·c++·网络协议·计算机网络·udp
花阴偷移2 天前
逆向基础--汇编基础(CS与IP) (05)
网络·汇编·网络协议·tcp/ip
天玺-vains2 天前
借助Github Action实现通过 HTTP 请求触发邮件通知
网络协议·http·github
ZhengEnCi2 天前
N2G-为什么90%的人不会计算子网掩码?大厂网络工程师的CIDR与子网掩码完全解析
网络协议
薛之谦_2 天前
【SSL】什么是自签名证书及使用Java生成SSL自签名证书
java·网络协议·ssl
捷米研发三部2 天前
EtherNet/IP转EtherNet/IP协议转换网关实现欧姆龙 PLC与罗克韦尔PLC通讯的配置案例
网络·网络协议
小武~2 天前
嵌入式网络编程深度优化 --网络协议栈配置实战指南
linux·网络·网络协议