1伤锚、背景
在國(guó)內(nèi)調(diào)試谷歌音箱擅笔,代碼早就按文檔3天內(nèi)就寫(xiě)好了,讓谷歌音箱聯(lián)網(wǎng)這事卻弄了兩周见芹,過(guò)程很艱辛剂娄,主要是實(shí)踐各種方案。
首先有個(gè)閑置騰達(dá)AC9路由器,里面有VPN的選項(xiàng)玄呛,但是只支持L2TP和PPTP阅懦,于是在服務(wù)器搭建了L2TP,本地windows10一直能正常使用徘铝,但是路由器偶爾能連上一兩次后面就很難連接耳胎,我個(gè)人懷疑是UDP風(fēng)暴或者路由器內(nèi)部搞鬼,總之就是很不穩(wěn)定惕它。
后來(lái)又嘗試讓局域網(wǎng)內(nèi)linux系統(tǒng)連接openvpn做路由轉(zhuǎn)發(fā)怕午,但是一直未成功,最后決定直接用docker在centos7上做一個(gè)旁路由實(shí)現(xiàn)轉(zhuǎn)發(fā)淹魄,讓局域網(wǎng)內(nèi)的子路由器聯(lián)網(wǎng)郁惜,再讓谷歌音箱連接子路由器上網(wǎng)。也有人直接給路由器刷固件甲锡,但是對(duì)于公司有本地服務(wù)器的情況兆蕉,用docker做更便捷一些。
2缤沦、搭建
查看網(wǎng)卡和網(wǎng)段
ifconfig
enp0s31f6: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500
inet 192.168.1.91 netmask 255.255.255.0 broadcast 192.168.1.255
獲取兩個(gè)信息網(wǎng)卡:enp0s31f6 網(wǎng)段:192.168.1.91
查看是否有PROMISC字段虎韵,如果沒(méi)有
#臨時(shí)打開(kāi)網(wǎng)卡混淆模式
ip link set enp0s31f6 promisc on
#開(kāi)機(jī)啟動(dòng)項(xiàng)里永久打開(kāi)網(wǎng)卡混淆
vim /etc/rc.local
ip link set enp0s31f6 promisc on
#重啟網(wǎng)卡或重啟系統(tǒng)查看是否永久生效,該步驟可忽略
/etc/init.d/network restart
配置docker
vim /home/lucien/openwrt/network
填寫(xiě)以下內(nèi)容缸废,主要修改ipaddr 包蓝、gateway 驶社、dns 三個(gè)IP,比如上面centos7的主路由器分配的IP是192.168.1.91测萎,那么gateway亡电、dns 就要填192.168.1.1,如果是192.168.0.91绳泉,那么這里填寫(xiě)192.168.0.1逊抡。至于ipaddr就相當(dāng)于和192.168.1.91同級(jí)的設(shè)備姆泻,在主路由器里相當(dāng)于有2臺(tái)電腦或者設(shè)備聯(lián)網(wǎng)零酪,這里填寫(xiě)一個(gè)主路由器內(nèi)沒(méi)有使用過(guò)的IP即可,我這里填寫(xiě)的是192.168.1.70拇勃。
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'config globals 'globals'
option packet_steering '1'config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option ipaddr '192.168.1.70'
option gateway '192.168.1.1'
option dns '192.168.1.1'config interface 'vpn0'
option ifname 'tun0'
option proto 'none'
建立docker虛擬網(wǎng)絡(luò)
#macnet 為名稱四苇,macvlan 為模式,將 192.168.1.0 修改為你自己主路由網(wǎng)段方咆。
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=enp0s31f6 macnet
docker run --restart always -d --name=openwrt --network macnet --privileged -v /home/lucien/openwrt/network:/etc/config/network sulinggg/openwrt:x86_64 /sbin/init
然后在瀏覽器里輸入192.168.1.70 訪問(wèn)月腋,默認(rèn)賬號(hào):root 密碼:password,
然后就可以在子路由器里設(shè)置網(wǎng)關(guān)地址為192.168.1.70瓣赂,之后就可以讓谷歌音箱連接了榆骚。