Stay Hungry.Stay Foolish.
WireGuard搭建指南

简介

WireGuard 是由 Jason Donenfeld 等人用 C 语言编写的一个开源3层网络隧道工具,被视为下一代 VPN 协议,旨在解决许多困扰 IPSec/IKEv2、OpenVPN 或 L2TP 等其他 VPN 协议的问题。它与 Tinc 和 MeshBird 等现代 VPN 产品有一些相似之处,即加密技术先进、配置简单。从 2020 年 1 月开始,它已经并入了 Linux 内核的 5.6 版本,这意味着大多数 Linux 发行版的用户将拥有一个开箱即用的 WireGuard。

安装

#安装wireguard套件
$ sudo yum install epel-release elrepo-release
$ sudo yum install yum-plugin-elrepo
$ sudo yum install kmod-wireguard wireguard-tools

#关闭防火墙并禁止开机启动
systemctl stop firewalld
systemctl disable firewalld

#开启iptables
systemctl enable iptables
systemctl start iptables
iptables -F
service iptables save

#在中继服务器上开启 IP 地址转发
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

配置

WireGuard认证基于公私钥双向认证,客户端和服务端都需要生产一对RSA公私钥密钥对,然后在双方的配置文件中配置对方的公钥和自己的私钥文件,代表互相信任对方 生成密钥对,客户端和服务端都可以这么生成

wg genkey | tee privatekey | wg pubkey > publickey

服务端配置


[Interface]
PrivateKey = # 填写本机的privatekey 内容
Address = 192.168.2.1/24
# 接受所有的wg输入和输出包,并将包通过ens192网卡送出去,-j MASQUERADE表示自动选择网络访问的IP,源地址将修改成ens192的地址
PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens192 -j MASQUERADE
ListenPort = 50814 # 注意该端口是UDP端口
DNS = 114.114.114.114
MTU = 1420
[Peer]
PublicKey =    # 填写对端的publickey 内容
AllowedIPs = 192.168.2.2/32
#AllowedIPs = 0.0.0.0/0

[Peer]
PublicKey =    # 填写对端的publickey 内容
AllowedIPs = 192.168.2.3/32 

服务端设置开机启动并且立即启动

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

客户端配置


[Interface]
  PrivateKey =  # 填写本机的privatekey 内容
  Address = 192.168.2.2/24
  DNS = 114.114.114.114
  MTU = 1420

[Peer]
  PublicKey =  # 填写对端的publickey 内容
  Endpoint = ServerIP:50814
  AllowedIPs = 0.0.0.0/0, ::0/0 #让所有的流量走隧道
  # AllowedIPs = 192.168.2.0/24,10.x.x.x
  PersistentKeepalive = 25 

手动添加路由10.111.222.98通过tun0出去

ip -4 route add 10.111.222.98/32 dev tun0

客户端linux和macOS可以用通用的命令

# 启动和关闭wireguard
wg-quick up wg0
wg-quick down wg0

手动添加client:

wg set wg0 peer sVVhQ5Wqx3GGTMmpg0/hxrJdTUUiRpoBDMa1im+5zW8= allowed-ips 10.0.0.206/32

手动删除

wg set wg0 peer sVVhQ5Wqx3GGTMmpg0/hxrJdTUUiRpoBDMa1im+5zW8= allowed-ips 10.0.0.206/32 remove

保存client参数

wg-quick save wg0

iptable限制

因为所有的流量都是通过服务端的wg0网卡进行转发,我们可以设置iptables的转发规则来限制访问,比如限制192段访问百度

iptables -I FORWARD -p tcp -s 192.168.2.0/24 -d www.baidu.com --dport 443 -j DROP
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
评论

暂无评论~~