OpenWRT升级到18.06.1

1. OpenWRT 18.06.1

为了使用新型site-to-site VPN wireguard,决定把路由器固件从OpenWRT 15.05.1升级到OpenWRT 18.06.1,直接去OpenWRT官网下载升级固件


2. 软件安装

文件系统

1
2
3
4
5
6
opkg install block-mount
opkg install kmod-usb-storage
opkg install kmod-usb-storage-extras
opkg install kmod-fs-ext4
opkg install fdisk
opkg install e2fsprogs

透明代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
wget http://openwrt-dist.sourceforge.net/openwrt-dist.pub
opkg-key add openwrt-dist.pub
opkg print-architecture | awk '{print $2}'

# 添加软件源
echo "src/gz openwrt_dist http://openwrt-dist.sourceforge.net/packages/base/$(opkg print-architecture | awk '{print $2}' | tail -n 1)" >> /etc/opkg/distfeeds.conf
echo "src/gz openwrt_dist_luci http://openwrt-dist.sourceforge.net/packages/luci" >> /etc/opkg/distfeeds.conf
opkg update

# 安装透明代理相关软件
opkg install ChinaDNS
opkg install simple-obfs
opkg install dns-forwarder
opkg install shadowsocks-libev
opkg install luci-app-shadowsocks
opkg install luci-app-chinadns
opkg install luci-app-dns-forwarder

iptables模块

1
2
3
4
5
6
7
8
# UDP转发
opkg install iptables-mod-tproxy
# 使用PPTP VPN
opkg install kmod-nf-nathelper-extra ppp-mod-pptp iptables-mod-conntrack-extra
opkg install iptables-mod-nat-extra
opkg install kmod-nf-nathelper-extra
# 用于透明代理,重启后生效
opkg install ipset

DNS

1
2
opkg remove dnsmasq
opkg install dnsmasq-full

其他工具

1
2
3
opkg install ip-full
opkg install vim
opkg install htop

下载工具

1
2
3
4
opkg install coreutils-base64  
opkg install curl
opkg install ca-certificates
opkg install ca-bundle

VPN

1
2
3
4
5
# tinc VPN,一种site-to-site VPN
opkg install tinc
# wireguard,新型site-to-site VPN
opkg install luci-app-wireguard
opkg install wireguard

汉语语言包

1
opkg install luci-i18n-base-zh-cn

3. 透明代理配置

安装完软件后,需要重启路由器才能生效

Shadowsocks配置

进入影梭配置页面 服务 > 影梭 > 服务器管理,添加服务器,填写服务器信息,服务器地址、服务器端口、密码、加密方式

设置代理方案,进入 访问控制 页面,

  • 「外网区域」被忽略IP列表 选择ChinaDNS路由表即可,其他的留空。

  • 「内网区域」接口设置为默认接口br-lan即可,代理类型主要有三种:

    • 正常代理:使用外网区域设置的方式。
    • 直接连接:忽略外网区域的设置,不走代理。
    • 全局代理:忽略外网区域的设置,强制走代理。

      代理自身为路由设备自身访问网络时的代理方式

  • 「内网主机」,单独配置内网特定IP的代理方式,优先级更高

进入基本设置页面,透明代理选择一个主服务器,UDP服务器若无玩游戏需求,停用即可。SOCKS5代理停用即可。端口转发用于避免DNS污染,选择一个主服务器即可,本地端口设置为5300,目标地址为8.8.8.8:53,然后保存上述配置,刷新页面查看透明代理和端口转发是否处于运行中状态

DNS配置

DNS转发示意图如下图所示

img

国内域名走国内 DNS 解析,国外域名走国外 DNS 解析,解决DNS污染问题。选择服务 -> DNS转发,选择「启用」,保存配置然后刷新页面确认DNS转发处于运行状态

选择服务->ChinaDNS,选择「启用」,并将「上游服务器」改为 114.114.114.114,127.0.0.1#53005300DNS 转发 配置项的 监听端口,保存配置刷新页面确认ChinaDNS转发处于运行状态

选择网络 > DHCP/DNS,在「DNS转发」中填入:127.0.0.1#53535353ChinaDNS 配置项的 本地端口并保存

依赖ChinaDNS解析速度很慢,经过测试,也有证书问题。需要指定域名强制直连,下载相应脚本并生成dnsmasq配置文件

1
2
3
curl -L -o generate_dnsmasq_chinalist.sh https://github.com/cokebar/openwrt-scripts/raw/master/generate_dnsmasq_chinalist.sh
chmod +x generate_dnsmasq_chinalist.sh
sh generate_dnsmasq_chinalist.sh -d 182.254.116.116 -p 53 -s ss_spec_dst_bp -o /etc/dnsmasq.d/accelerated-domains.china.conf

接着可以继续添加自己的需要强制不走代理的域名,在 /etc/dnsmasq.d 目录下新建 custom_bypass.conf ,按照下列格式添加,通常需要将 CDN 域名加进来。

1
2
server=/example.com/182.254.116.116
ipset=/example.com/ss_spec_dst_bp

GFWList强制走代理,自定义域名强制走代理

1
2
3
curl -L -o gfwlist2dnsmasq.sh https://github.com/cokebar/gfwlist2dnsmasq/raw/master/gfwlist2dnsmasq.sh
chmod +x gfwlist2dnsmasq.sh
sh gfwlist2dnsmasq.sh -d 127.0.0.1 -p 5300 -s ss_spec_dst_fw -o /etc/dnsmasq.d/dnsmasq_gfwlist.conf

接着可以增加自己的强制走代理的域名,在 /etc/dnsmasq.d 目录下新建 custom_forward.conf,按照下列格式添加,同样需要将 CDN 域名加进来。

1
2
server=/example.com/127.0.0.1#5300
ipset=/example.com/ss_spec_dst_fw

重启dnsmasq

1
/etc/init.d/dnsmasq restart

修订版本信息

修订版本 时间 备注
文档创建
文档修改1

参考