1. 安裝飛牛OS到Nas主機(jī)脆栋,不多做述說(shuō),網(wǎng)上很多教程
注意一點(diǎn)洒擦,如果沒(méi)有主路由的情況下椿争,需要在飛牛OS里安裝docker openwrt做主路由,可以先給飛牛os設(shè)置靜態(tài)ip熟嫩,網(wǎng)關(guān)和DNS先設(shè)置你想要給openwrt的ip秦踪,然后回到操作電腦上這是同網(wǎng)段的靜態(tài)ip,就可以網(wǎng)頁(yè)打開(kāi)飛牛OS操作界面
2. 飛牛OS上啟動(dòng)Docker掸茅,倉(cāng)庫(kù)搜索openwrt椅邓,下載 【zzsrv/openwrt】鏡像(也可下載你喜歡的其他OpenWRT鏡像)
注意一點(diǎn),飛牛OS上需要網(wǎng)絡(luò)才能下載鏡像文件昧狮,所以需要主路由先連接網(wǎng)絡(luò)給飛牛下載好鏡像文件景馁,然后把主路由的改成橋接模式
3. 創(chuàng)建docker macvlan類(lèi)型虛擬網(wǎng)絡(luò)給OpenWRT使用
在飛牛OS里打開(kāi)SSH連接
然后使用 putty 等ssh終端工具連接上飛牛OS,登錄后使用 sudo -i 切換到root用戶(hù)逗鸣,就可以使用命令操作
docker network create -d macvlan --subnet=192.168.8.0/24 --gateway=192.168.8.1 -o parent=eno1 openwrt
192.168.8.0,192.168.8.1: 這IP段需要根據(jù)個(gè)人需要設(shè)置
eno1: 這個(gè)nas主機(jī)的網(wǎng)絡(luò)設(shè)備名稱(chēng)合住,可以看飛牛的網(wǎng)絡(luò)設(shè)置,如圖
openwrt:新建虛擬網(wǎng)絡(luò)的名稱(chēng)
4. 啟動(dòng)openwrt docker
docker run --restart always --name openwrt -d --network openwrt --privileged zzsrv:openwrt /sbin/init
粗體的openwrt為上面所建虛擬網(wǎng)絡(luò)的名稱(chēng)
這一步也可以在飛牛OS的docker管理器里面啟動(dòng)慕购,注意填寫(xiě)的參數(shù)即可
5. 啟動(dòng)openwrt后聊疲,配置openwrt網(wǎng)絡(luò)
從容器里進(jìn)入openwrt容器詳情里
點(diǎn)擊 終端圖標(biāo)
連接/bin/bash后,在右邊終端輸入:
nano /etc/config/network
在config interface 'lan'的配置項(xiàng)里面沪悲,修改成 option ipaddr 后面的ip成為你想要給OpenWRT配置的 lan ip
若是openwrt作為旁路由获洲,還需要配置網(wǎng)關(guān)和dns的ip,作為主路由可以不配置下述內(nèi)容
在config interface 'lan'的配置項(xiàng)里面繼續(xù)添加:
option gateway '192.168.x.xx'
option dns '192.168.x.xx'
這個(gè)里的ip可以配置成你的主路由ip
到這里openwrt的網(wǎng)絡(luò)配置基本完成殿如,可以重啟openwrt的docker容器
也可以在 Compose 里配置啟動(dòng)OpenWRT腳本贡珊,腳本內(nèi)容如下:
version: '3'
services:
? openwrt:
? ? image: zzsrv/openwrt:latest
? ? container_name: openwrt
? ? restart: always
? ? privileged: true
? ? volumes:
? ? ? - /vol1/1000/docker/openwrt/etc/config/network:/etc/config/network
? ? networks:
? ? ? - openwrt
? ? command: /sbin/init
networks:
? openwrt:
? ? external: true
volumes里最爬,掛著了network的配置文件,內(nèi)容如下门岔,也可以不配置爱致,根據(jù)下面教程配置
config interface 'loopback'
? ? ? ? option proto 'static'
? ? ? ? option ipaddr '127.0.0.1'
? ? ? ? option netmask '255.0.0.0'
? ? ? ? option device 'lo'
config globals 'globals'
? ? ? ? option packet_steering '1'
config interface 'lan'
? ? ? ? option proto 'static'
? ? ? ? option netmask '255.255.255.0'
? ? ? ? option ipaddr '192.168.8.1'
? ? ? ? option device 'br-lan'
config device
? ? ? ? option name 'br-lan'
? ? ? ? option type 'bridge'
? ? ? ? list ports 'eth0'
config interface 'wan'
? ? ? ? option proto 'pppoe'
? ? ? ? option device '@lan'
? ? ? ? option ipv6 '0'
? ? ? ? option username '撥號(hào)賬號(hào)'
? ? ? ? option password '撥號(hào)密碼'
6. 進(jìn)入openwrt后臺(tái)配置相關(guān)網(wǎng)絡(luò)
因?yàn)槲业膎as主機(jī)是單網(wǎng)卡的,所以openwrt只有一個(gè)lan口寒随,那么如何配置PPPoE撥號(hào)呢糠悯,如下圖(單網(wǎng)口作為lan和PPPoE撥號(hào)不能跑滿(mǎn)網(wǎng)卡很正常):
設(shè)備選擇“別名@lan”,就可以創(chuàng)建成功接口妻往,然后設(shè)置撥號(hào)賬號(hào)等互艾,不多做贅述了
7. 配置openwrt和飛牛OS網(wǎng)絡(luò)互通
上述配置完成后,openwrt和飛牛os網(wǎng)絡(luò)不互通的讯泣,雖然看起來(lái)在同一網(wǎng)段纫普,但是macvlan模式有限制導(dǎo)致不互通(不過(guò)同網(wǎng)段下其他機(jī)器是可以網(wǎng)絡(luò)互通的),所以需要在飛牛OS下新建一條macvlan來(lái)和openwrt互通
7.1 在飛牛OS的啟動(dòng)腳本里加入新建macvlan等操作
使用 putty 等ssh終端工具連接上飛牛OS好渠,登錄后使用 sudo -i 切換到root用戶(hù)
然后輸入 nano?/etc/rc.lcoal 昨稼,文件內(nèi)容如下:
#!/bin/sh -e
ip link set eno1 promisc on > /dev/null 2>&1
ip link add macvlan-proxy link eno1 type macvlan mode bridge
ip addr add 192.168.8.3 dev macvlan-proxy
ip link set macvlan-proxy up
ip route add 192.168.8.1 dev macvlan-proxy
route add default gw 192.168.8.1 macvlan-proxy
exit 0
ip link set eno1 promisc on > /dev/null 2>&1? : 開(kāi)啟網(wǎng)卡混淆模式,eno1 如上一樣是網(wǎng)絡(luò)設(shè)備名稱(chēng)
ip link add macvlan-proxy link eno1 type macvlan mode bridge: 新建名稱(chēng)為macvlan-proxy的網(wǎng)橋設(shè)備
ip addr add 192.168.8.3 dev macvlan-proxy:設(shè)置macvlan-proxy的IP
ip link set macvlan-proxy up: 啟動(dòng)macvlan-proxy
ip route add 192.168.8.1 dev macvlan-proxy: 給macvlan-proxy設(shè)置路由
route add default gw 192.168.8.1 macvlan-proxy:給macvlan-proxy設(shè)置網(wǎng)關(guān)
保存操作:CTRL+X ,然后 會(huì)提示 輸入Y拳锚,然后回車(chē)保存文件
在終端輸入如下命令后回車(chē)?
systemctl enable rc-local
systemctl start rc-local.service
systemctl status rc-local.service
后續(xù)重啟就完成了配置