环境
Raspberry Pi 3B
固件下载地址:openwrt,根据硬件平台选择合适的固件;
树莓派对应固件目录:brcm2708/bcm2710 (2710 对应 rpi 3)
本次使用固件版本(rpi-3-ext4-factory.img.gz):openwrt-18.06.5使用 Win32DiskImager 刷入openwrt固件,最新版本地址:latest
插入SD卡,启动树莓派
接入网络
- 启动树莓派之后,网线直连电脑,浏览器输入 192.168.1.1 进入 openwrt web界面管理;
- 设置root密码进入
- 选择 Network -> Interfaces,选择 add interfaces,添加新接口 wan,如下图所示:
选择 Submit 之后,选在 Save
- 编辑 LAN 口,选择 Physical Settings,设置 Interface,如下图所示:
Save 即可
可以再进入 General Setup 修改下 IPV4 地址,和上级路由器不同网段即可,此处我设置为了 10.0.0.1,修改之后点击 Save
选择 Network -> Wireless,开启无线AP功能,后边可通过连接树莓派wifi,进行openwrt的相关配置;
如果没有设置 firewall,无法通过wan口的ip访问ssh和web服务上述修改完成后,点击右上侧 UNSAVED CHANGES,然后 Save & Apply。
如果失败,请强制保存
- 将树莓派接入已联网的路由器的Lan口,树莓派即可上网。
安装软件
连接树莓派的wifi,默认无线名称是 OpenWrt
ssh 登录后台,ip为树莓派LAN口设置的静态ip,用户名 root,没有密码
passwd 设置密码
安装中文包
1
2
3# opkg update
# opkg install luci-i18n-base-zh-cn
# opkg install luci-i18n-firewall-zh-cn安装 sftp 服务
1
2
3# opkg install vsftpd openssh-sftp-server
# /etc/init.d/vsftpd enable
# /etc/init.d/vsftpd startopenwrt 自带 scp,也可用scp
安装shadowsocks和dns-forwarder
1
2# wget http://openwrt-dist.sourceforge.net/packages/openwrt-dist.pub -O /tmp/openwrt-dist.pub
# opkg-key add /tmp/openwrt-dist.pub自定义feeds
1
2src/gz openwrt_dist http://openwrt-dist.sourceforge.net/packages/base/mipsel_24kc
src/gz openwrt_dist_luci http://openwrt-dist.sourceforge.net/packages/luci更新并安装
1
2
3
4
5# opkg update
# opkg install dns-forwarder
# opkg install luci-app-dns-forwarder
# opkg install shadowsocks-libev
# opkg install luci-app-shadowsocksPS:上述自定义源方式没试过。
shadowsocks和dns-forwarder也可下载之后手动安装:
shadowsocks-libev
luci-app-shadowsocks
dns-forwarder
luci-app-dns-forwarder安装dnsmasq-full
openwrt自带dnsmasq,但是不支持ipset,所以要安装dnsmasq-full1
# opkg install dnsmasq-full
由于openwrt自带dnsmasq,可能会导致安装失败,但是不能先卸载dnsmasq再安装dnsmasq-full,卸载dnsmasq之后就无法联网了。
opkg install dnsmasq-full 完成之后,可以看到dnsmasq-full的ipk包的路径,手动下载安装即可;
dnsmasq和dnsmasq-full所用配置文件一样,更新配置文件为安装dnsmasq-full时产生的文件。
最后删除自带dnsmasq1
# opkg remove dnsmasq
配置
配置shadowsocks
选择 服务 -> 影梭
添加服务器,然后打开透明代理,第一次配置之后需要重启树莓派才会生效;
重启之后,查看透明代理状态配置dns-forwarder
选择 服务 -> DNS 转发,监听端口设置为 5353配置firewall
选择 网络 -> 防火墙 -> 自定义规则
添加如下规则:1
2
3
4ipset -N gfwlist iphash
iptables -t nat -A PREROUTING -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1234
iptables -t nat -A OUTPUT -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1234
ipset add gfwlist 8.8.8.8重启防火墙
添加gfwlist
新建并进入目录 /etc/dnsmasq.d,下载文件 dnsmasq_gfwlist_ipset.conf
这个文件中的域名解析将走 127.0.0.1:5353 ,DNS转发已配置,上游DNS 8.8.8.81
2
3# wget https://cokebar.github.io/gfwlist2dnsmasq/dnsmasq_gfwlist_ipset.conf
# echo "conf-dir=/etc/dnsmasq.d" >> /etc/dnsmasq.conf
# /etc/init.d/dnsmasq restart自定义 DNS
对 WAN 口进行如图配置,自定义DNS服务器为 127.0.0.1,DNS解析交给dnsmasq-full
选择 网络 -> DHCP/DNS,设置DNS转发,将ISP的DNS填入(或者使用公共DNS 如:114.114.114.114),国内域名走国内解析
测试
配置参考:Openwrt折腾记录03