珂珂的个人博客 - 一个程序猿的个人网站

OpenWRT 配置 WireGuard

这几天一直折腾怎么安全访问家里的网络,WireGuard 这个我一在openwrt菜单中找,就没找到这个服务端,今天发现这个就是在接口中新建....软件包中安装luci-i18n-wireguard-zh-cn  这个也失败,其实发现根本就不用安装吧。

首先新建各种密钥对

mkdir wg
# 创建目录存放公钥私钥
cd wg
# 进入文件夹
umask 077
# 配置创建密钥的权限
wg genpsk > sharekey
# 创建预共享密钥
cat sharekey
# 获取密钥复制保存

服务端密钥对

wg genkey | tee server_privatekey | wg pubkey > server_publickey
# 创建服务端公钥和私钥
cat server_privatekey
# 获取服务端私钥复制保存
cat server_publickey
# 获取服务端公钥复制保存

客户端密钥对,我这里做windows用

wg genkey | tee win_privatekey | wg pubkey > win_publickey
# 创建 win 客户端公钥和私钥
cat win_privatekey
# 获取 macOS 客户端私钥复制保存
cat win_publickey
# 获取 win 客户端公钥复制保存

然后在openwrt接口菜单中新建接口


私钥填服务器的私钥,端口随便一个 UDP协议,IP地址填分配的网段

高级设置全部默认,防火墙先不设置,可以先选VPN?但我这个默认在未指定中

有说需要在防火墙->通信规则TAB开放端口


又有说还需要自定义规则中加入

iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o br-lan -j MASQUERADE  

注意上面的192.168.100.0/24  改为实际需要分配的网段,如我的应该是192.168.200.0/24        100网段是之前创建了一个


接着添加Peers,公钥填客户端win的公钥,允许的IP填客户端IP   192.168.200.2/32   路由运行的IP勾上,注意各个Peer  的IP 不能冲突,预共享密钥填最开始那个,Keep-Alive 填25

然后重启接口,点关闭再点连接或者干脆重启openwrt


至此服务端配置完成。

下面创建一个客户端配置文件

[Interface]
Address = 192.168.200.2/32
# 对应客户段分配的 IP
PrivateKey = GEiYlYfF3ywA28rmHNnxxxxxxxxxxxxx=
#客户端的私钥
DNS = 192.168.8.1
# 本地的 DNS 服务器或者公有 DNS 服务器,例如: 114.114.114.114
[Peer]
PublicKey = YAImdovf5/qsxxxxxxxxxxxxxxxxxx=
# 服务器的公钥
AllowedIPs = 192.168.8.0/24, 192.168.200.0/24
# 仅代理局域网,互联网走本地网络.
PresharedKey = YXNoQsXwKnJxxxxxxxxxxx=
# 预共享密钥
Endpoint =xxxxx.kecq.com:12346
PersistentKeepalive = 25

然后windows客户端导入这个文件,连接成功。

注意AllowedIPs 不同场景不同设置,如果设为0.0.0.0/0时表示任意网络请求都经过 VPN


然后又开始出问题了,依葫芦画瓢新建第二个peer  作为安卓手机用,可以连接但无法访问内网和外网。然后把第二个peer配置给windows 也是无法访问,但第一个又可以。


上一篇:个人代码全部开源

下一篇:centos stream 9部署strongswan


0 评论

查看所有评论

给个评论吧