ROS经常会使用到多拨和VPN等功能,默认情况下全局流量都从默认的接口通过。 如果需要指定某个IP/IP段只从某个/多个指定的接口通过,那么就需要用到路由标记功能。
这次我是ROS接了软路由LEDE,因为需要使用LEDE的koolproxy插件去电视盒的广告,但是不想改变现有网络的结构。所以想到ROS使用VPN拨号到LEDE的PPTP服务器,然后标记内网电视盒的IP走LEDE,从而达到去广告的目的。
方法(主要讲讲ROS的设置):
1、LEDE创建PPTP服务器,这个就不说了(LEDE新版本这个功能已经没了)
2、PPP,点击 + 按钮,选择“PPTP Client”,“Connect To”填写LEDE的wan口ip,user填写LEDE PPTP服务器账号,password填写LEDE PPTP服务器密码
3、IP - Firewall 中切换到 Mangle 选项卡,点击 + 按钮,添加新的规则。在 New Mangle Rule 窗口的 General 选项卡中,Chain 选择 prerouting ,Src.Address 一项填入 10.0.0.100。如果只是需要某种协议通过指定接口就需要在protocol中选择对应的协议,全局则不选。切换到 Action 选项卡,在 Action 下拉菜单中选择 mark routing ,New Routing Mark 中填入该路由标记名称,如LEDE。
4、IP - Routes 中点击 + 按钮,在 New Route 窗口中 Gateway 下拉菜单选择需要走的端口,如LEDE-PPTP,Routing Mark 选择刚才添加的名为 LEDE 路由标记,点击 OK 按钮即可。
到此结束,这样10.0.0.100的所有流量,都会走PPTP出去,通过Tracert查看下。如图LEDE 10.10.10.1就是LEDE的网关地址
目前有 21 条评论
梁兴健 2018-02-20 09:185楼
路过评论
游客404158203 2018-12-30 12:004楼
请教:我有类似的应用。我的局域网里有一台apple TV, 在国外有VPN 服务器。想指定appleTV 走VPN。 我按照你的设置先建立一个L2TP client, 然后mangle rule里标记 路由,然后在路由表里指定gateway,但是不成功。可以帮忙分析一下吗? 如果允许的话,我可以把具体的rsc 文件发给你。谢谢!祝新年愉快!评论
星之宇 2018-12-30 13:14
@游客404158203:做个Tracert可以看看的。可以先使用电脑测试,在后可以再用到设备回复
游客404158203 2018-12-31 08:33
@星之宇:我用tracert 看,从我的路由网关(10.10.10.1) 出去后就time out 了。看上去像是没有连上VPN。可是连VPN的设置我仔细检查过了,都是正确的。这个可能是什么原因呢? 我对比了一下设置,想请教你: 是否和interface里设置l2tp-out1 >dial out 里的profile有关,我的CCR1009 也设置了VPN服务器,default-encrytion这个profile有设置的另外的网关10.10.1.1,会不会和这个有关?如果要创立一个新的profile 给l2tp-out1,应该如何设置?你的路由没有vpn服务器,vpn的服务器在lede,而我的路由本身也设立了vpn服务器,所以profile就有设置,会不会是这个原因?谢谢!
Tracing route to fw.ename.net [128.1.70.130]
over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms CCR1009 [10.10.10.1]
2 * * * Request timed out.
3 ^C回复
星之宇 2018-12-31 08:56
@游客404158203:首先用电脑测试vpn能否链接。
profile默认即可。我的ros也设置了vpn服务器。
vpn服务器在内网还是外网,就只是connect to的地址不一样。外网直接填写vpn服务器地址。
根据我的教程,l2tp连上后会分配到vpn给的地址,tracert后会看到vpn分配的地址。回复
游客404158203 2018-12-31 09:24
@星之宇:谢谢回复!我的内网是10.10.10.0/24, 电脑拨号连vpn是没有问题的,连上l2tp IPsec 后有分配到vpn给的地址 (192.168.89.x) 。我现在做的测试就是在您教程的第三步里 src address , 我就用电脑现在的内网 IP 地址 (10.10.10.76) ,应该这个地址上网就是走vpn了。可是就是连不上去。我再试试。回复
游客404158203 2018-12-31 09:373楼
我把设置贴出来,您看看有无问题.( 我把l2tp client 的interface disable了,不然上不了网:-)
mangle rule:
/ip firewall mangle
add action=mark-routing chain=prerouting disabled=yes new-routing-mark=seanVPN \
passthrough=no src-address=10.10.10.76
l2tp client:
/interface l2tp-client
add connect-to=89fa07c51712.sn.mynetname.net ipsec-secret=xxxxxxx name=\
l2tp-out1 password=xxxxxxx use-ipsec=yes user=vpn
ip route:
/ip route
add disabled=yes distance=1 gateway=l2tp-out1 routing-mark=seanVPN评论
星之宇 2018-12-31 09:50
@游客404158203:ip route: distance=1改成其它的distance=10。回复
游客404158203 2018-12-31 09:52
@游客404158203:您在第四步里添加IP route 的gateway 是怎么出来的? 我写我这里创建的这个l2tp-out1 对吗?回复
星之宇 2018-12-31 09:54
@游客404158203:点击gateway有个向下的箭头,直接选择l2tp的就可以了,就是distance要比默认的大回复
游客404158203 2018-12-31 10:58
@星之宇:我把distance改成10了。(顺便请教您:为何需要比默认值大?)但是tracert 看,根本就没有连到vpn。IP routes 看到 0.0.0.0/0, gateway=l2tp-out1 是unreachable
C:\Users\brg34>tracert baidu.com
Tracing route to baidu.com [220.181.57.216]
over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms CCR1009 [10.10.10.1]
2 9 ms 8 ms 15 ms 96.120.102.233
3 9 ms 9 ms 11 ms po-117-rur102.bellevue.wa.seattle.comcast.net [68.87.206.141]
4 9 ms 17 ms 9 ms be-103-ar01.seattle.wa.seattle.comcast.net [69.139.164.77]
5 14 ms 12 ms 12 ms be-33650-cr01.seattle.wa.ibone.comcast.net [68.86.93.165]
6 10 ms 11 ms 11 ms be-10846-pe01.seattle.wa.ibone.comcast.net [68.86.86.90]
7 22 ms 21 ms 22 ms 66.208.232.82
8 160 ms 157 ms 157 ms 202.97.95.201
9 157 ms 157 ms 156 ms 202.97.91.1
10 204 ms 197 ms 196 ms 202.97.94.238
11 224 ms 217 ms 218 ms 202.97.34.149
12 193 ms * * 218.30.28.50
13 * * * Request timed out.
14 * * * Request timed out.
15 167 ms 165 ms 168 ms 220.181.182.30
16 * * * Request timed out.
17 * * * Request timed out.
18 * * * Request timed out.
19 172 ms 174 ms 177 ms 220.181.57.216
Trace complete.回复
星之宇 2018-12-31 13:36
@游客404158203:unreachable那就是l2tp没连接上,tracert -d baidu.com是ip地址,比较快。回复
游客404158203 2019-01-01 11:43
@星之宇:您说的对,我在log里看了,l2tp-out1一直就是 connecting, initializing, terminating, disconnected. 但是我用我的laptop 很容易就连上去。为何CCR1009 的 l2tp-out1 就连不上去呢?你看我的设置哪里有问题呢?
/interface l2tp-client
add connect-to=89fa07c51712.sn.mynetname.net ipsec-secret=1234 name=\
l2tp-out1 password=1234 use-ipsec=yes user=vpn回复
星之宇 2019-01-01 18:06
@游客404158203:服务器创建l2tp不加ipsec-secret试试,或者pptp也试试。回复
游客404158203 2019-01-07 11:03
@星之宇:最后试成功了, 前面的几个因素排除后,最后发现可以连接无法上网,加了一个l2tp-out1的地址转换就可以了。多谢你的指点!回复
游客404158203 2018-12-31 10:332楼
我把distance改成10了,但是tracert 看,根本就没有走VPN。 另外请教您:为何distance要设一个大于默认的值?
Tracing route to baidu.com [220.181.57.216]
over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms CCR1009 [10.10.10.1]
2 9 ms 8 ms 9 ms 96.120.102.233
3 8 ms 9 ms 8 ms po-117-rur102.bellevue.wa.seattle.comcast.net [68.87.206.141]
4 10 ms 9 ms 9 ms be-103-ar01.seattle.wa.seattle.comcast.net [69.139.164.77]
5 11 ms 11 ms 14 ms be-33650-cr01.seattle.wa.ibone.comcast.net [68.86.93.165]
6 13 ms 11 ms 9 ms be-10846-pe01.seattle.wa.ibone.comcast.net [68.86.86.90]
7 22 ms 21 ms 21 ms 66.208.232.82
8 152 ms 157 ms 156 ms 202.97.95.201
9 157 ms 157 ms 157 ms 202.97.91.1
10 176 ms 173 ms 182 ms 202.97.94.238
11 201 ms 200 ms 199 ms 202.97.34.149
12 * * * Request timed out.
13 * * 165 ms 218.30.25.134
14 * * * Request timed out.
15 159 ms 158 ms 158 ms 220.181.182.30
16 * * * Request timed out.
17 * * * Request timed out.
18 * * * Request timed out.
19 167 ms 167 ms 167 ms 220.181.57.216评论
星之宇 2018-12-31 13:34
@游客404158203:1是默认的,越点越低越优先,多线要设置这个的回复
游客403870498 2019-08-03 11:271楼
这个办法很好, 我试过了,是用在apple TV 上。 我想进一步请教: 比如apple TV 上装了二个APP, 一个是Netlfix, 一个是爱奇艺,如果我只想 Netflix 走VPN, 而爱奇艺走本地, 这个有什么解决的思路? 谢谢!评论
星之宇 2019-08-03 11:28
@游客403870498:这个你会抓包的话,抓包其中一个,只有这个流量走你设置的线路,其他的都走默认线路。回复
游客403870498 2019-08-03 11:32
@星之宇:多谢指教! 如果你可以写一个教程就更好了。跟着你的教程比较简单,自己做,难免漏了什么。:-)回复
星之宇 2019-08-03 11:33
@游客403870498:抓包要经验的,没做过的一般跟着教程做也不一定会做。无非就是wireshark抓包回复