本帖最后由 白云朵朵 于 2024-2-28 16:44 编辑
2024年2月28日更新:删除了原教程中添加静态路由一步,余处未改动。原因是第二步为wireguard接口分配IP后,routeros会自动创建路由规则,不需要自行设置。之前按照教程操作过的网友可以把自己创建的这条静态路由规则删了。
使用场景:
家里有IPv4公网地址(动态),想通过安卓手机在外面连回家访问内网资源。RouterOS为主路由,已升级到 7.13.4(x86)版本。RouterOS的wireguard教程网上其实有很多,但是大部分没有讲如何配置防火墙,所以折腾了很久才搞定,过程供后来人参考。
1. RouterOS中新建wireguard端口
端口尽量不要用RouterOS默认的13231端口,我这里改成了6666。你可以根据自身喜好随意设置,不过记得一会儿设置防火墙规则时要用到,RouterOS并不会自动添加(许多教程没有提到的第一个坑点,可能认为过于基础了)。另外我涂掉的Public Key请记录,一会儿要用到。
2.为wireguard端口分配IP地址
IP -> Addresses 菜单,点击 “+” 新建,第一行填写 192.168.10.1/24 ,Interface选择刚才新建的wireguard接口,如果没改名就是默认的wireguard1。注意,这个网段必须不同于局域网。中间的Network不用填,点击确定后会自动生成。这里的含义简单解释下,我们给RouterOS的wireguard1端口分配了192.168.10.1这个地址,一会儿组网要用到。
3.添加防火墙规则
RouterOS中点击New Terminal打开命令行界面,复制 /ip/firewall/filter/add action=accept chain=input dst-port=6666 log=yes log-prefix=wg: protocol=udp 一句进去然后敲回车,防火墙规则就添加好了。注意我在这里用到的端口号是6666,与第一步保持一致。然后进入防火墙 Filter Rules界面,把刚才的规则(在最下面)往上拉拉,左键点击拖曳即可。这些防火墙规则都是自上而下执行,所以如果你的防火墙规则比较多,之前又有某个规则先匹配上,后面的规则就不会被执行。自此RouterOS设置告一段落,下面再来配置安卓手机端。
4.配置安卓手机客户端
Play Store直接下载wireguard官方客户端。详解各个配置项。先看本地(Interface):
名称:随便填个自己喜欢的名字。
私钥:自动生成的不用修改,点击右面的刷新符号可以更换新密钥。请点击进去全选密钥复制出来,一会儿要用到。
公钥:由私钥自动算出来的,二者间具备一一对应关系。一会儿其实真正要用到的是这个公钥,不过这个客户端里的公钥貌似并不能选中复制,不过有私钥就可以生成公钥,所以问题不大。
局域网IP地址:给手机客户端分配的wireguard组网IP地址,需要和RouterOS中wireguard1端口IP地址在一个网段。简要回顾,刚才RouterOS中给wireguard1设置的IP地址是192.168.10.1/24,所以这里给手机分配192.168.10.2/32即可。
DNS服务器:填写一个公网DNS即可,例如114.114.114.114,注意不要填内网地址。
监听端口和MTU不用填。
然后配置远程(Peer):
对于手机端而言,远程Peer当然就是指我们的RouterOS。
公钥:填写 RouterOS中wireguard1端口的公钥,请见步骤一。
预共享密钥:不填
连接保活间隔:10 。这个可以酌情大一些,但是如果太大,可能会出现超时断连的情况。
对端:RouterOS的动态域名 + wireguard1端口号。例如,RouterOS的IPv4地址被动态解析到ros.ithome.com,刚才wireguard1的端口号为6666,那么这里就填 ros.ithome.com:6666
路由的IP地址(段):这里最值得一讲,填在这里的IP段才是安卓端会转发给RouterOS的流量,以外地址的流量不会走wireguard,仍为直连!本例中,我只想访问家里内网资源,也就是说只需要访问10.89.1.0/24这个局域网网段。至于wireguard网段192.168.10.0/24也给他附带加上。如果你想所有流量都通过wireguard转发,这里只填 0.0.0.0/0 就行了。至此安卓端配置完成,不过。。。
现在还连不上~原因很简单,RoutreOS这边的weireguard还不认识安卓端这个peer,需要回到RouterOS中继续添加peer信息!
5.在RouterOS中添加Peer信息
主菜单 WireGuard -> Peers,点击 "+" 新建 peer。配置项介绍:
Interface:就是之前创建的wireguard1,点击下拉菜单选中即可。
Public Key:我们已经有了安卓端的Private Key,所以Public Key不填。
Private Key:把刚才安卓端的Private Key复制进去。一会保存后RouterOS会根据这个Private Key计算出Public Key并自动填写,算出来的这个Public Key与安卓端中的Public Key是一样的(虽然是废话,不过还是多说几句 2333)
Allowed Addresses: 192.168.10.2/32,和刚才的安卓端配置保持一致,如果不一样就连不上了。
配置结束后点击OK就万事大吉。我截图中还填写了Client Listen Port为6666,不过实测不填也没有影响。 (完)
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|