WireGuard VPN安装配置


服务器:Ubuntu 2020 x64

客户端:manjaro 21.0

请确保linux 内核版本5.6以上,否则按此升级

一、服务器端安装配置

1、添加WireGuard仓库到apt包管理器中

sudo apt-add-repository universe

更新下系统

sudo apt update
2、安装wireguard-tools
 sudo apt install wireguard-tools

安装成功后可以查看wireguard的版本

 wg version

3、生成服务端私钥和密钥

 cd /etc/wireguard
 umask 077
wg genkey | sudo tee privatekey | wg pubkey | sudo tee publickey

4、配置wireguard服务端配置文件 /etc/wireguard/wg0.conf

[Interface]

# 虚拟网卡的IP地址 (可以自己设定)
Address = 10.0.0.1/24, 

# 设为true表示配置文件在有新的peer接入时自动更新
SaveConfig = true

# 在虚拟网卡启动后的动作。这里将接受所有的客户端共享服务端的IP地址,并写入路由表中
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 在虚拟网卡断开后的动作。这里将客户端共享服务端IP地址的规则从路由表中删除
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# 服务端的通讯端口,后面客户端配置的时候需要用到
ListenPort = 51820

# 上面产生的私钥
PrivateKey = <服务器私钥>

将eth0换成你服务器上相应的名称

5、配置防火墙

sudo ufw allow 22/tcp
sudo ufw allow 51820/udp
sudo ufw enable
sudo ufw status 

6、设置允许IP转发

vi /etc/sysctl.conf
# 找到下面这一行,去掉注释来允许IP转发
net.ipv4.conf.default.rp_filter=1

退出编辑后,通过下面命令使其生效

sysctl -p
echo 1 > /proc/sys/net/ipv4/ip_forward

这个如果不做的话,你会发现即便wireguard建立的虚拟网可以ping通,但是客户端无法通过服务端上网

7、启动服务端wireguard

sudo wg-quick up wg0

检查下是否正常

sudo wg show

会出现以下类似消息

interface: wg0
  public key: vD2blmqeKsV0OU0GCsGk7NmVth/+FLhLD1xdMX5Yu0I=
  private key: (hidden)
  listening port: 51820

运行命令ifconfig wg0,会出现如下类似信息

ifconfig  wg0
wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1420
        inet 10.0.0.1 netmask 255.255.255.0  destination 10.0.0.1
        inet6 fd86:ea04:1115::1  prefixlen 64  scopeid 0x0<global>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

二、客户端安装配置

1、安装wireguard

sudo pacman -S wireguard-tools

2、生成密钥

cd /etc/wireguard
umask 077
wg genkey | sudo tee privatekey | wg pubkey | sudo tee publickey

3、编辑客户端配置文件 /etc/wireguard/wg0.conf

[Interface]
PrivateKey = <客户端私钥>

# 这里的客户端IP需要跟服务器端的IP同一网段,服务器端的网卡地址是10.0.0.1
Address = 10.0.0.10/32
DNS = 8.8.8.8,1.1.1.1

[Peer]
PublicKey = <服务端公钥>
Endpoint = <服务端公网IP>:51820

# 0.0.0.0/0为允许所有IP地址通讯,如果是多个客户端的话,可以省去一个个配置之繁琐
AllowedIPs = 0.0.0.0/0

# 每21秒检查一下连接。如果IP有变化,也是通过这个进行自动更新
PersistentKeepalive = 25

4、将客户端对等方添加到服务器中

最后一步是将客户端的公钥和IP地址添加到服务器,有2种方法。

(1)服务器端编辑配置文件/etc/wireguard/wg0.conf,加入客户端公钥及IP

[Peer]
PublicKey = <Client Public Key>
AllowedIPs = 10.0.0.10/32

(2)直接在服务器上运行以下命令

sudo wg set wg0 peer <Client Public Key> allowed-ips 10.0.0.10/32

5、启动客户端wireguard

sudo wg-quick up wg0

使用以下方法检查连接

sudo wg show

这时应该可以ping通服务端的虚拟IP,及其它网站了。如果不行尝试重启一下wireguard。还不行的话,检查一下防火墙和IP转发的配置。

关闭Interface
sudo wg-quick down wg0 

设置自动启动

systemctl enable wg-quick@wg0 

WARP 是 Cloud­flare 提供的一项基于 Wire­Guard 的网络流量安全及加速服务,能够让你通过连接到 Cloud­flare 的边缘节点实现隐私保护及链路优化。若想给你的VPS服务器配置Cloudflare WARP服务,额外添加 IPv4 或 IPv6 网络获得“原生”IP,参考这里

评论

热门博文

Xray安装配置VLESS-XTLS-Vision及VLESS-XTLS-uTLS-REALITY

V2Ray安装配置VMESS-TLS及VMESS-TLS-WS

在VPS上轻松搭建L2TP/IPSec图文教程(通吃各种架构的VPS,包括KVM,OpenVZ等)