事情起因

一直想找一个可以用的代理。需求就是:①可以手机连openwrt。②连上后可以访问内网设备。③还可以海淘。
于是就尝试了Wireguard,好像效果还不错,所以记录下配置过程。视频教程:https://www.youtube.com/watch?v=F8z74oE71Gg

一、编译固件

在源码中编译luci-app-wireguard即可。

二、设置openwrt的配置

  1. SSH连接openwrt,进入/etc/config目录。

1
cd /etc/config

  2. 创建wireguard文件夹,并进入文件夹cd wireguard

1
mkdir wireguard && cd wireguard

  3. 创建服务端的公钥和私钥。

1
wg genkey | tee sprivatekey | wg pubkey > spublickey

  4. 登录openwrt添加接口:网络-接口。添加新接口。名称为WG,协议为WireGuard,点击提交。

  5. 填写基本设置。

  6. 高级设置不用修改

  7. 防火墙选择lan,然后保存应用。

  8. 进入网络-防火墙-自定义规则,粘贴以下内容,然后重启防火墙。此处需要将上面的4条规则注释掉

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


  9. 进入网络-防火墙-通信规则,放开对应的端口。你在第5步里写的什么端口,就要开放什么端口。然后点击保存。

  10. 以上,在openwrt的设置已经完成了。下面需要设置连接端。

三、设置peers的配置

  1. 重新回到SSH,连接openwrt。
  2. 创建文件夹,比如你这个设备是手机,你就创一个phone的文件夹。并进入。

1
mkdir phone && cd phone

  3. 同样创建phone使用的密钥。这里加上前缀,与上面的s密钥区分开。

1
wg genkey | tee phone-privatekey | wg pubkey > phone-publickey

  4. 创建预共享密钥。

1
wg genpsk > phone-sharekey

  5. 回到openwrt的web界面,选择WG接口,选择修改。然后添加peers。


  6. 填入phone的公钥,及想给phone的ip地址,勾选路由允许的 IP,再填入phone-sharekey。保存并应用。

四、设置phone的配置

  1. 创建phone.conf文件。
  2. 录入以下配置。

1
2
3
4
5
6
7
8
9
10
11
[Interface]
Address = 192.168.100.2 #填写phone的ip
PrivateKey = qKAlQhZyYwq1x57PuQC23ePSxglQaszWMTRTCTVt6FM= #填写phone的privatekey
DNS = 192.168.1.1 #填写主路由地址
[Peer]
PublicKey = 54umyio2Yy2KqGCt9aipEXRN4LzGo4zgw4dRRzYwxmk= #填写spublickey
AllowedIPs = 0.0.0.0/0 #所有流量都走vpn
AllowedIPs = 10.10.10.0/24 , 192.168.1.0/24 #只局域网的走vpn其他的走手机自己网络
PresharedKey = /i1zfQPKTjNkHvwqgv/LEqFbVPn0PbgRTD/yFegttzY= #填写phone-sharekey
Endpoint = 123414xyz.com:23456 #填写你的域名+端口号
PersistentKeepalive = 25

  3. 将phone.conf传到手机。
  4. 然后导入配置。

五、重启openwrt

  一定要记得重启openwrt,或者如下图,重新连接WG接口后,再连接客户端,否则会失败。

六、添加更多客户端

  1. 重新回到SSH,连接openwrt。
  2. 创建文件夹,比如你这个设备是电脑,你就创一个dell的文件夹。并进入。

1
cd /etc/config/wireguard && mkdir dell && cd dell

  3. 同样创建dell使用的密钥。这里加上前缀,与上面的s密钥区分开。

1
wg genkey | tee dell-privatekey | wg pubkey > dell-publickey

  4. 创建预共享密钥。

1
wg genpsk > dell-sharekey

  5. 回到openwrt的web界面,选择WG接口,选择修改。然后添加peers。
  6. 填入dell的公钥,及想给dell的ip地址,勾选路由允许的 IP,再填入dell-sharekey。保存并应用。
  7. 创建dell.conf文件。
  9. 录入以下配置。

1
2
3
4
5
6
7
8
9
10
11
[Interface]
Address = 192.168.100.2 #填写dell的ip
PrivateKey = qKAlQhZyYwq1x57PuQC23ePSxglQaszWMTRTCTVt6FM= #填写dell的privatekey
DNS = 192.168.1.1 #填写主路由地址
[Peer]
PublicKey = 54umyio2Yy2KqGCt9aipEXRN4LzGo4zgw4dRRzYwxmk= #填写spublickey
AllowedIPs = 0.0.0.0/0 #所有流量都走vpn
AllowedIPs = 10.10.10.0/24 , 192.168.1.0/24 #只局域网的走vpn其他的走手机自己网络
PresharedKey = /i1zfQPKTjNkHvwqgv/LEqFbVPn0PbgRTD/yFegttzY= #填写dell-sharekey
Endpoint = 123414xyz.com:23456 #填写你的域名+端口号
PersistentKeepalive = 25

  10. 连接成功后进入openwrt的wireguard状态页面查看。

  11. 如果需要更多的客户端连接,重复第六步即可。