软路由的系统

软路由,软字排在了路由器前面,说明软件是软路由的头等大事。

软件分为操作系统和应用程序两类,选择了操作系统,也就选了对应的软件生态。那我们先来看操作系统。

由于我们的路由是一个网络硬件,那么哪个操作系统软件的网络软件最丰富呢?毋庸置疑,就是linux了。windows和macos也是可用的,但没有linux的网络库全和大。

适用路由器的linux操作系统,分为两种,路由器专用系统,和常见的linux发行版。下面分别讲下他们的优缺点。

路由器专用系统

如LEDE/openwrt,爱快,koolshare,是专门为路由器开发的嵌入式系统

优点 自带套件,安装方便,为了软路由而生,有web管理页面,配置管理方便

缺点 软件源没有常见linux发行版多,很多软件需要适配

常见linux发行版

如centos、ubuntu、debian、archlinux等

优点 软件丰富,可以装几乎所有的软件

缺点 配置复杂,安装麻烦,需要一定的shell、系统管理的知识

结论 如果你有一定的动手能力,我推荐你使用linux发行版做你的路由器系统(有一定的硬件配置要求,比如我的是4核赛扬的cpu、2G内存,128G的ssd硬盘+1T的hdd硬盘),如果你路由器配置比较低,那么推荐使用路由器专用系统,占用资源较少。

软路由的软件

假设跟我一样,你选择了安装常见linux发行版,并且为了稳定选择了centos当作操作系统(当然你也可以选择自己的发行版),那么需要安装什么软件才能让他变成一个路由器呢?

软路由拓扑

操作系统安装 centos安装指南官方版

软件列表

  • dnsmasq (必选)提供dns、dhcp等功能
  • iptables (可选)网络利器
  • shadowsocks(可选)网络软件
  • samba(可选) 本地共享
  • adbyby(可选)广告过滤透明代理
  • transmission(可选) bt下载

软件配置指南

1 dnsmasq

由于我家里是光纤,网络运营商自带了一个modem兼路由器。从网上翻了下,找到一个超密,并且超密到路由器,可以设置这个路由器为桥接或者路由功能,如果选择桥接,相当于他什么作用也没有,仅仅是一个光纤信号转换器了,这里我选择的是路由,所以也不需要安装拨号软件了。

首先:设置dhcp server,dns转发,编辑 /etc/dnsmasq.conf

interface=br0 ## 设置你的网络接口,可能与我的不同 dhcp-range=10.0.1.2,10.0.1.254,72h ## 设置你要分配的内网地址段,租约时间,dhcp server resolv-file=/etc/resolv.dnsmasq.conf ## 设置你要使用的默认dns

其次:配置系统转发封包,开启linux路由功能,这样你的linux服务器就是一个路由器了

echo 1 > /proc/sys/net/ipv4/ip_forward sysctl -p net.ipv4.ip_forward = 1

2 shadowsocks 你既然配置了dnsmasq,我推荐你设置全局透明翻墙,使用gfwlist 方案

优点:只要你局域网内的设备连上了你的路由器,所有自动翻墙,无需设置,可以让特定域名根据dnsmasq解析出来的ip强制走ss。 缺点:域名列表需要维护,你可以自己设置,也可以直接使用gfwlist

首先:配置dns解析,配合使用dnsmasq进行dns转发,让你获取正确的ip。 这里如果你安装的dnsmaq已经包含了ipset,则直接使用即可。 把dns请求根据域名路由到特定的服务器,可以把他添加到你的配置文件即可,如下(具体示例配置如下)。

配置说明:对于google.com 的域名dns解析请求转发到本地的5353端口, 并且把解析出来的ip地址放入gfwlist这个ipset集合里面。

server=/.google.com/127.0.0.1#5353 ipset=/.google.com/gfwlist

其次:设置iptables 路由规则,把上一步获取的正确的ip地址进行路由,把gfwlist ipset里面的ip地址自动路由到你的ss-server ss-redir监听的端口,iptables nat 规则如下,设置prerouting 是为了你的局域网内设备翻墙,设置output 是为了你路由器自己也能翻墙。

iptables -t nat -A PREROUTING -p tcp -m set –match-set gfwlist dst -j REDIRECT –to-port 1080 iptables -t nat -A OUTPUT -p tcp -m set –match-set gfwlist dst -j REDIRECT –to-ports 1080

最后:设置好后,你的设备先通过dnsmasq 把dns解析路由到你的ss的服务器,防止dns污染。然后根据解析出来的正确的地址,再把这些地址的访问请求路由到代理服务器,获得正确的连接。

3 adbyby 广告过滤安装启动后,会有一个监听端口,这个软件可以过滤http流量的广告,足够用了,所以只要把80端口的流量转发即可。(这个软件开启后会有性能损失)

配置iptables 规则,8118 是adbyby 监听端口

iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-ports 8118

4 transmission & samba

如何配置,请查看软件官方指导,比较简单。 作用:下载bt,本地看视频等 一个是下载bt软件,一个是本地共享服务器,bt下载的视频等可以通过samba协议在手机端&电脑端&电视等各个下挂设备使用。(这里推荐你局域网的设备,有线一定要千兆,无线也一定要千兆,传输速度不要是瓶颈) transmission 还有一个网页管理页面,还可以随时随地往里面放入下载任务。咱不多说。

软路由其他玩法

由于他是一个linux系统,你还可以把他当作一个代码仓库,可以放你自己的爬虫,可以做网络qos等管理,设置某些网站无法访问(防止熊孩子系列)等等,只要你可以想到,就可以做到,还可以配合树莓派等硬件做一些只能硬件,快乐玩耍吧