B-01 WireGuard 服务端及客户端配置教程
OpenWRT 环境WireGuard 服务端及客户端配置简明教程
前言
OpenWRT 上部署过OpenConnect VPN,softethernet VPN,open vpn,ipsec vpn等多种vpn,主要用于在外办公方便VPN 回家的使用场景.博主几乎每天使用持续了3年多,但使用对比下来,最稳定的莫过于wireguard.
本案前置环境
方案
博主openwrt环境已含有wireguard(luci-proto-wireguard),若无,请先行安装,可前往“系统”-“软件包”,检索 WireGuard 软件是否已经安装。
----注意:WireGuard 接口安装完毕后,需要重启一次路由器,然后才能在接口中看到选项。
服务端
创建密钥
mkdir wg
# 创建目录存放公钥私钥
cd wg
# 进入文件夹
umask 077
# 配置创建密钥的权限
----------------------------------------------------------------
wg genkey | tee server_privatekey | wg pubkey > server_publickey
# 创建服务端公钥和私钥
cat server_privatekey
# 获取服务端私钥复制保存
cat server_publickey
# 获取服务端公钥复制保存
----------------------------------------------------------------
wg genpsk > sharekey
# 创建预共享密钥
cat sharekey
#共享密钥可选,可要可不要,要就需要在对应处填入即可
A地服务端
B地服务端
服务端防火墙设置选lan即可,也可以新建,不过费事,此处不在赘述。
服务端下面的peer节点即为子节点配置界面,依据子节点的配置和数量添加即可。
假设,A地为有公网的端,且A地有DDNS,则B端“拨号”A端即可
A地客户端(peer)
A端仅需加入B端即可(即允许B端联入)
B地客户端(peer)
B端在端点主机栏,填入DDNS联入A端
防火墙设置中追加一条记录
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o br-lan -j MASQUERADE
意思是:允许10.0.0.0/24网段的数据流通过目标为“br-lan”的网卡
上图路由器的ip段:
1、此处为0.0.0.0/0时表示任意网络请求都经过 VPN 俗称全局 VPN , 由于 iPhone 同时只能有 1 个 VPN 软件在线,所以当 WireGuard 启动时,其他类似Quanx,小火箭等软件则无法使用,此时 iPhone 可以全局 VPN 使用家中的网络来访问一些外网(包括国内,国外科学及家中局域网).
请注意:若你的wireguard建在外部的vps上,这种模式相当于全局代理,会占用大量vps的流量,如果vps按流量收费,谨慎使用。如果是家里adsl,那就放心使用。
2、如果是 macOS 或 Windows 客户端,WireGuard和Clash等软件可以共存,此处可以设置为AllowedIPs = 192.168.0.0/24, 10.0.0.0/24,表示访问内网网段才会走 VPN .而其他互联网,外网等访问还是走当前网络来利用Clash分流.
[Interface]
Address = 10.0.0.3/32
# 对应 macOS 客户段分配的 IP
PrivateKey = xYxsdfrl27Ao/TRse85DQ/f+kwfNGRmPDYCq0OC6uUY=
DNS = 10.0.0.1
# 本地的 DNS 服务器或者公有 DNS 服务器,例如: 114.114.114.114
[Peer]
PublicKey = i9YujkYtkijG8tR7hb25ssYOi7PRzJ5h9Diy02I=
AllowedIPs = 192.168.0.0/24, 10.0.0.0/24
# macOS 如上设置可与 ClashX Pro 共存仅代理局域网,互联网走本地网络.
# iPhone iPad 设置为 0.0.0.0/0 全局则模式.
# PresharedKey = 担心安全就设置,嫌麻烦就不设置
# 预共享密钥
Endpoint = ddns.xxxxx.com:44448
PersistentKeepalive = 25
注意事项
1.极重要:peer点填的是“对方”路由器的内网网段
配置在Peer意思是你可以将不同的IP网段的流量发送给不同的Peer,这里应该填对方路由器的内网网段,这样你要访问对方局域网网段的时候流量就会被转发到Wireguard的虚拟网卡,Wireguard再将这些流量通过相应的加密隧道发送给对方。如果一不小心把“自身”路由器的Lan口网段填了进去,后果就是所有Lan口的流量全都被转发到了Wireguard的虚拟网卡,然后家里就断网了。作为小白的我,补救的方法只有一个,那就是重装Openwrt :(
如下图:192.168.40.X网段OP,在静态路由中需要填入的是对方网段,如192.168.0.X,一定不要在对像栏位填写192.168.40.X。