完成在VPS的RouterOS CHR的安装后(参考 RouterOS CHR安装到VPS),测试本地到VPS的网络延迟和丢包在接受范围内,就可以开始正式部署

 

VPS端RouterOS

启用SSTP协议服务器,默认端口为443,当然端口也可以自己定义

/interface sstp-server server

set enabled=yes port=443

 

创建一个vps策略,定义local-address为10.200.1.1

/ppp profile

add local-address=10.200.1.1 name=vps

 

创建客户端账号和密码为yus,分配该账号的IP地址为10.200.1.2

/ppp secret

add name=yus password=yus profile=vps service=sstp remote-address=10.200.1.2

 

配置nat规则

/ip firewall nat

add action=masquerade chain=srcnat out-interface=ether

 

本地RouterOS

首先创建全国的静态路由表,网关指向拨号网关

/ip route
add distance=1 dst-address=1.0.1.0/24 gateway=pppoe-out1
add distance=1 dst-address=1.0.2.0/23 gateway=pppoe-out1
add distance=1 dst-address=1.0.8.0/21 gateway=pppoe-out1
add distance=1 dst-address=1.0.32.0/19 gateway=pppoe-out1
add distance=1 dst-address=1.1.0.0/24 gateway=pppoe-out1
add distance=1 dst-address=1.1.2.0/23 gateway=pppoe-out1
add distance=1 dst-address=1.1.4.0/22 gateway=pppoe-out1
add distance=1 dst-address=1.1.8.0/24 gateway=pppoe-out1
add distance=1 dst-address=1.1.9.0/24 gateway=pppoe-out1
add distance=1 dst-address=1.1.10.0/23 gateway=pppoe-out1
add distance=1 dst-address=1.1.12.0/22 gateway=pppoe-out1

我做的静态路由,当然也可以选择address-list的策略路由,但策略路由配置较多,涉及路由标记和其他配置,所以使用静态路由操作简单,缺点是不易于管理。

静态路由脚本下载(注意:提供的不是.rsc脚本文件,是txt,因为gateway默认设置为pppoe-out1,如果拨号接口名称不一样,或者使用IP作为网关,请自行修改后,导入RouterOS)

 

如果你家是光猫拨号,修改pppoe-out1的默认路由距离为3,作为RouterOS的备份默认路由

/interface pppoe-client set name=pppoe-out1 default-route-distance=3

 

创建sstp客户端,设置了SSTP隧道为默认路由,默认路由距离为1,优先级高于pppoe-out1的默认路由,设置连接的VPS_ip和账号密码

/interface sstp-client

add add-default-route=yes connect-to=vps_ip:443 disabled=no name=sstp-vps user=yus password=yus profile=default-encryption default-route-distance=1

 

这样配置后,全国IP走静态路由,剩下的其他IP则走默认路由出去,路由部分已经配置完成,剩下的就是DNS,要求RouterOS版本是6.47以上,因为需要使用DNS转发功能,在6.47后的版本才支持该功能,关于DNS转发介绍可以参考RouterOS V6.47 DNS转发功能介绍

 

本地的DNS服务器配置不变,新版本的RouterOS支持dns forward类型,所以我们可以指定相应网站的域名走指定dns解析,配置如下:

/ip dns static
add forward-to=8.8.8.8 regexp=”.*\\.google.com” type=FWD
add forward-to=8.8.8.8 regexp=”.*\\.youtube.com” type=FWD
add forward-to=8.8.8.8 regexp=”.*\\.ytimg.com” type=FWD
add forward-to=8.8.8.8 regexp=”.*\\.googlevideo.com” type=FWD
add forward-to=8.8.8.8 regexp=”.*\\.facebook.com” type=FWD
add forward-to=8.8.8.8 regexp=”.*\\.twitter.com” type=FWD
add forward-to=8.8.8.8 regexp=”.*\\.wikipedia.org” type=FWD

 

需要更多的域名可以参考GFWList,然后转换为RouterOS的DNS转发配置,这个工作量有点大,自己不想搞,毕竟平时就看几个网站,如果有需要的再根据域名转发到8.8.8.8。

以上就是整个配置过程,测试期间使用树莓派搭建了Bind DNS服务器,用于域名转发,其实RouterOS 的DNS转发也能实现。一台RouterOS就可以完成。

在没有OpenWRT配合的情况下,配合远端的VPS用一台RouterOS也可以完成kx上网,只是OpenWRT提供的功能更多、更简便,持续维护支持也比较好,我是不想折腾OpenWRT和smartDNS了,还要单独搭建一个平台麻烦,还要做旁路由,涉及两个网关,感觉网络简单点好。

本人自娱自乐,不惹事!