出发点
- 很早的时候一直在用网件 wndr4300 刷了 openwrt 以及 lede 这种开放式的路由系统,一直沉迷于无界浏览无法自拔。因为笔者最近在学习的一些东西比较新,在国内看不到详细的文档,能上 google 当然是最好的。
要求提升
- 当然不能满足于可以访问,作为一个年轻人就要有敢于折腾的精神。速度慢点的路由已经满足不了笔者的需求了。刚好前几天买了个树莓派3,不折腾下似乎有点过分了啊。
准备工具
需要的设备
- 电脑一台
- 树莓派 or 其他linux平台
- 网卡2个,有线,无线,usb网卡都行
- 网线一根
需要的软件
- dnsmasq or isc-dhcp-server
- overture or DNScrypt
- v2ray shadowsocks or shadowsocks-rss
网络拓扑
开始动手
配置网卡
- 先把提供本机dhcp服务的网卡地址配置好,给自己赋予一个静态地址
1 | sudo vim /etc/network/interfaces |
解释下
eth0
和eth1
是我的树莓派上两张网卡,这个网卡名字不一定都是这种,根据自己的网卡名称进行修改,输入ifconfig
来查看eth0
是连接上级路由的,它的网段是192.168.10.0
,我直接连上就能上网了,把这张卡设置dhcp
,自动从上级路由获取ip,如果是无线网卡一般是wlan0
eth1
是本机用来提供路由服务的,设置自己的网段,并且赋予自己固定ip
配置 dnsmasq
- 首先安装 dnsmasq 来提供 dhcp 和 dns 缓存服务
1 | sudo apt-get install dnsmasq |
- 安装完成后查看安装状态
pi@raspberrypi:~ $ dnsmasq -v
Dnsmasq version 2.76 Copyright (c) 2000-2016 Simon Kelley
Compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify
- 编辑 dnsmasq 配置文件
1 | # 不需要提供dhcp服务的网卡,一般是连接外网的那张卡 |
如果你是使用了isc-dhcp-server
这种额外的 dhcp 服务器,那么就把上面
1 | no-dhcp-interface=eth0 |
这两句删掉吧,如果不设定dhcp-range
dnsmasq 默认是不开启 dhcp 的,然后这么配置isc-dhcp-server
1 | sudo vim /etc/dhcp/dhcpd.conf |
建议直接用 dnsmasq 好了,忽略上面两条内容即可
添加 gfwlist
1 | cd |
- 在
gfwlist.conf
中都是这样的存在
1 | server=/030buy.com/127.0.0.1#5300 |
127.0.0.1#5300
代表匹配的域名通过这个服务器和端口进行 DNS 解析,而这个端口是多少取决于一会你的防污染 DNS 服务器开启的端口,刚生成的是 5353 端口,我的因为被占用了,查找并替换改成 5300
1 | # 开启dnsmasq |
配置转发服务
1 | sudo vim /etc/sysctl.conf |
iptables
开启网段定向转发
1 | sudo iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -o eth0 -j MASQUERADE |
- ok, 至此,一个具有正常功能的普通路由就可以使用了,连接的设备也是可以上网的了
配置无污染的上级 DNS
其实多此一举,v2ray 自带无污染dns服务
安装 overture, 去 github 下载 release-binary, 我的树莓派下载 overture-linux-arm.zip修改配置文件config.json
1 | { |
然后直接运行就行./overture-linux-arm
, 这样不能关闭这次连接的终端,否则就关闭了,可以选择开一个 screen 来运行,或者./overture-linux-arm &
DNSCrypt 可以代替 overture 不过配置麻烦,读者可以自行研究,功能更加强大稳定
配置 v2ray
- 先去安装 v2ray
1 | cd |
- 客户端配置出一个socks5代理端口 8080 (以备不时之需)、一个透明代理端口 1080
1 | { |
- iptables 和 ipset 设置
1 | sudo apt-get install ipset |
- 开启无限制的世界
1 | sudo service v2ray start |
效果展示
housirvipdeiMac:~ housirvip$ dig www.google.com
; <<>> DiG 9.8.3-P1 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23438
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 1978 IN A 172.217.26.36
;; Query time: 17 msec
;; SERVER: 192.168.20.1#53(192.168.20.1)
;; WHEN: Thu Aug 17 23:59:10 2017
;; MSG SIZE rcvd: 48