Windows与RouterOS的Wireguard连接
WireGuard有多个平台的应用程序,包括Windows版本,可以从官网下载https://www.wireguard.com/install/(需要梯子)
假设RouterOS外网IP是192.168.88.20配置在ether1上,Winbox配置如下:
windows电脑作为请求发起端,RouterOS作为接收端,分配给两端的隧道互联IP如下:
- RouterOS wireguard接口IP是20.30.1/24
- windows的wireguard接口配置20.30.2/24
首先,在RouterOS创建WireGuard接口,默认端口是13231,操作如下:
创建接口完成后,会自动生成公钥,可查看Public Key
在ip address中添加接口wireGuard的接口ip地址10.20.30.1/24
RouterOS完成以上配置后,将Windows的WireGuard程序安装好,打开程序,并选择“新建空隧道”
新建后,会自动生成windows的公钥
然后在创建新隧道对话框中,写入以下配置
文本配置如下
[Interface] PrivateKey = uGXG1V…JhTm4= Address=10.20.30.2/24 [peer] PublicKey = RFvRQW…yYANLGuGiTM=(RouterOS public key) AllowedIPs = 10.20.30.0/24 Endpoint = 192.168.88.20:13231 PersistentKeepalive = 30
[interface]:为Windows接口配置,这除了自动生成的私钥,需要添加WireGuard接口IP地址10.20.30.2/24,
[peer]:添加对端的public key,并指定endpoint(RouterOS的外网IP地址)为192.168.88.20端口是13231,并添加允许通过的IP地址段,allowedIPs为10.20.30.0/24,keepalive作用是每隔30秒发送一个询问数据请求,用于nat会话连接保持。
创建完成后如下:
RouterOS也在WireGuard Peer中做相应的配置,需要指定public key(对端windows的公钥)和allowed address,无需指定endpoint参数
添加完成后,RouterOS只需要将对端的公钥绑定,如果公钥匹配,会把请求的源地址和端口作为endpoint
配置完成后,在windows电脑点击连接,如果连接成功后,状态会显示已连接
最后在windows和RouterOS上都进行ping测试
两端隧道的IP地址是10.20.30.1和10.20.30.2,因此需要在配置中都允许10.20.30.0/24的地址段通过,还有其他IP地址段,就添加多个IP地址段,如果是想让任意IP通过,可以设置为0.0.0.0/0的IP通过。具体的访问根据你的路由配置决定。