OpenWrt的docker镜像

#代理

创建Dockerfile

vi Dockerfile
	FROM openwrtorg/rootfs:latest

	RUN rm -rf /var/lock/opkg.lock && mkdir -p /var/lock/ && \
		opkg update && \
		opkg remove dnsmasq && \
		opkg install curl wget bash luci luci-i18n-base-zh-cn libustream-openssl
	RUN wget -O kuoruan-public.key http://openwrt.kuoruan.net/packages/public.key && \
		opkg-key add kuoruan-public.key && \
		echo "src/gz kuoruan_universal http://openwrt.kuoruan.net/packages/releases/all"  >> /etc/opkg/customfeeds.conf && \
		opkg update && \
		opkg install luci-app-v2ray luci-i18n-v2ray-zh-cn luci-compat
	COPY *.ipk /tmp/
	RUN opkg install /tmp/v2ray-core_4.21.3-1_x86_64.ipk /tmp/luci-app-shadowsocks_1.9.1-1_all.ipk /tmp/shadowsocks-libev_3.3.3-1_x86_64.ipk

	HEALTHCHECK --interval=5s --timeout=2s --retries=12 \
	CMD curl --silent --fail localhost || exit 1

将上面的内容写入当前目录的Dockerfile中,然后下载下面的几个ipk

#### SS ####
# ss-live 版  https://github.com/shadowsocks/openwrt-shadowsocks/releases    # shadowsocks-live      ipk
# luci-app-ss https://github.com/shadowsocks/luci-app-shadowsocks/releases   # luci-app-shadowsocks     ipk
#### V2Ray ####
# https://github.com/kuoruan/luci-app-v2ray # web界面及中文包
# https://github.com/kuoruan/openwrt-v2ray  # openwrt版v2ray core

使用下面的命令构建镜像,启动容器并映射80端口,即可访问WEB界面,密码默认为空

docker build -t opwnwrt-luci:latest .
docker run -d -p 8080:80 --name openwrt -v /data/v2ray/config:/var/etc/v2ray openwrt-luci:latest

旁路由不能上国内网站问题 使用用ShadowsocksR Plus+ (SSR Plus+)GFW List 无法访问墙外网络,墙内网络不受影响,尝试过端口、DNS各种调试以后,发现最有可能的原因是:路由器做主路由,OpenWRT做旁路由,在流量走到旁路由之前会由主路由的运营商DNS先做一次解析,再走到旁路由,很可能是主路由的DNS被污染劫持了,而恰巧OpenWRT GFW List模式只有列表中的域名/IP才会使用强制劫持,造成无法科学上网。

  如果将OpenWRT设置为绕过大陆白名单或者全局,是可以使用的,证明这两个模式是强制劫持所有DNS流量重定向的,但是我不太喜欢用这两个模式,虽然也可以使用,但会加长链路,不能达到科学上网最优解。

  于是经过几番尝试,解决办法:将路由器中 SSR Plus+ 的DNS自定义,指向到主路由IP(注意填写端口号),重启OpenWRT和主路由器以后,仍然可以使用,搞定!

最后更新于