标签: edgeos

记在ERL-3存储再次大破以后

  1. 台电的U盘是真的次,1年9个月以后读写错误,系统大灭。
  2. mkeosing这个Github上的脚本非常赞….最大的好处是,你可以定制给EdgeOS划分的数据分区的大小,可以根据自己U盘大小来而不是原先系统指定的2G. 而且简单易用,比进内置的引导系统再用工具直接重做来得更加容易直接。 https://github.com/sowbug/mkeosimg
  3. 狗东的服务不错。新买的U盘是迅速送到了。同时挂掉的台电U盘因为还在保,JD提供了售后服务。给了2个选择,原价的7折退钱或者换个同品牌的一样容量的。毫无悬念的退了钱,舒服。
  4. ERL-3,或者说EdgeOS在越来越多的人的研究跟贡献下正在越来越好用。比如之前IPTV我能找到的资料并不多。现在基本上就可以找到很多可以参考的。随便找找就发现了ER-4做的单线VLAN直通到交换口解决IPTV AB面验证的配置了。我又可以省下2个交换的口了。
  5. 最新的EdgeOS的是基于Debian 9的。有能力升级的同志们都可以升级下。因为在9的repo里。。某个奇妙的梯子是可以直接APT 安装的。不需要去研究啥交叉编译拉。
  6. 细节决定命运啊,我从默认目标下cp出来的config.json没有local IP的配置。。导致我个傻X一晚上没想明白为啥流量过不去。结果跟上次在服务器端一样,那次是没配服务器地址,这次是没有local ip的选项导致绑定问题。
  7. 上海电信至今不给IPv6….虽然不是啥必须的但是我想玩呀。
  8. VLAN 51这个IPTV传说的组播VLAN。。。究竟有没有用啊,很玄学啊。今天搞了一天这个,最终是关了Cisco 3750的IGMP Snooping解决的。不过vlan51…我现在是根本没加进去啊在路由上。那这个组播的VID需要只在光猫上存在就行?
  9. 我想买ER-4……..啊啊啊啊

Supervisor on EdgeOS是真的好用啊~~

因为要在ERL3上挂SS跟ChinaDNS…所以在后台进程是有Linux管理的ChinaDNS以及ss-redir…

但是不知为啥…ChinaDNS跟ss-redir, 尤其是chinaDNS,会莫名就总结.

后来一段时间用Crontab的定时任务把ChinaDNS跟ss-redir定时重启.

不过总觉得这管理方式很土.

最近换了Supervisor…感觉各种好…很稳, 自定义配置文件,有log 记录..甚至于还能做web查询.完美…

ERL-3现在用的系统没有systemd, 以后估计也未必有..所以暂时来说, Supervisor应该算是很不错的选择呢..

 

自动翻墙配置EdgeOS篇

ROS篇结束以后,我们来记录一下现在正在工作的EdgeOS的配置.

大概介绍一下Edge Router Lite 3这个路由器.

ERL3是Ubnt发售的一款纯有线的路由, 以NAT速度快闻名, 有记录是在1G的网络上可以跑出900多M的NAT速度…所以说速度很快.

有兴趣的朋友可以去amazon收一个:

Ubiquiti Networks Edgerouter Lite 3Port Router (ERLITE-3)

 

下面这个是ER-X, 相对ERL-3有缩水不过ERL3的价格比这个高不少, 所以ER-X还是比较超值的

Ubiquiti EdgeRouter X Advanced Gigabit Ethernet Routers ER-X 256MB Storage 5 Gigabit RJ45 ports

 

当然也可以国内某著名网站

其内嵌的EdgeOS的本质是跑在一个Debian系统上的Vyatta路由系统, 因为vyatta现在已经被博通收购, 所以现在的EdgeOS是基于原本的开源代码后续开发的, 在命令行格式上仍然完全集成了vyatta的模式.

由于EdgeOS其实是Debian上的一个应用, 所以我们很多时候可以跳过edgeos, 直接在debian上操作来实现一些edgeos上并不能实现的功能.

思路其实仍然一样, 我们需要解决2个问题:

  1. DNS污染的问题
  2. 流量区分的问题

因为我们可以直接在Debian上操作, 所以我们的选择就多了很多很多…毕竟Linux base的东西太多了.

所以我们现在选择这样的组合来完成我们需要的功能:

  1. VPN隧道+IPset+edgeOS的防火墙规则转发
  2. SS隧道+Ipset+ChinaDNS+iptables防火墙规则转发
  3. 上面这种的混合模式

首先我们来介绍一下第一种,这种方式的好处在于不需要对路由内的debian做太多的操作, 相对来说比较容易实现.

VPN的隧道可以选择IPsec SSL, L2TP或者PPTP.

广告一波我在用的VPS:https://bandwagonhost.com/aff.php?aff=5802

我在搬瓦工已经有了PPTP, 所以就自然直接上PPTP了, 不过因为ERL的GUI模式是没有PPTP的设置界面的, 所以我们需要使用edgeOS的命令行模式:

configure
 edit interfaces pptp-client pptpc0
 set user-id your-sername
 set password your-password
 set server-ip your-vps-ip
 set require-mppe
 commit
 save
 exit

只要数据正常, vpn就会自动拨号连接起来, 然后就是NAT:

configure
set service nat rule 5012 type masquerade
set service nat rule 5012 outbound-interface pptpc0
commit
save
exit

NAT完成以后, 我们需要搞定路由,

在搞定路由之前, 我们先需要认识一下IPSET这个Linux的工具, IPSET算是Dnsmasq和iptables的一个辅助工具, 主要的功能是快速的把域名或者IP归类, 然后帮助防火墙来识别, Dnsmasq算是附带的.

所以这里就有一个逻辑, 就是我们把所有gfwlist所知道的被墙的域名都转换为IPSET所能认识的配置文件, 在这样的情况下通过IPSET所归类的组, 我们可以要求dnsmasq去制定的DNS服务器去解析, 而避免了被墙的域名遭到污染, 同时呢, 这个组又可以作为防火墙的选择依据, 让这组的路由全部都走VPN通道出去:

具体的思路可以参考:

https://xiaoding.org/?p=391

这位兄弟的博客, 上面同时也有编译好的高版本的Dnsmasq, 因为系统内建的是2.61版本不支持ipset功能.

在理解这些以后, 我们可以先通过系统命令创建一个组:

configure
 set firewall group address-group group-name
commit
save

这时候ipset就有了一个可以自由使用的组了.

然后我们就把gfwlist转换成所需要的ipset设置, 因为gfw太大了, 所以我们需要跑个python的脚本, 可以从github直接抄来:

https://github.com/smallfount/gfwlist2dnsmasq

gfwlist2dnsmasq, 我把文件直接上传了可以直接下:

然后用python2 跑一遍就可以得到需要的ipset列表, 并且会根据脚本的配置去配置放到指定的地方然后dns的解析也是我们设定的方式.

最后就是防火墙规则的配置了:

configure
set protocols static table 1 interface-route 0.0.0.0/0 next-hop-interface pptpc0
set firewall modify your-group-name rule 1 action modify 
set firewall modify your-group-name rule 1 destination group address-group your-group-name 
set firewall modify your-group-name rule 1 modify table 1 set firewall modify your-group-name rule 1 protocol all
set interfaces ethernet eth1 firewall in modify your-group-name 
commit 
save

这样的配置就会让系统的防火墙根据group去区分不同的出口.

然而问题还是有: 因为gfwlist的转换并不完美, 所以可能会有不少域名有问题.

所以还有另外的办法,我们下一篇继续