这几天一直折腾怎么安全访问家里的网络,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 也是无法访问,但第一个又可以。