前提
- 群晖DS920+双网口
- 家里有旁路由openwrt:192.168.31.132
- 群晖LAN1:常规网络,192.168.31.90 网关192.168.31.1
- 群晖LAN2:走旁路由网关,192.168.31.91 网关192.168.31.132 带机场
创建走LAN2的docker容器网络
1.
查看网卡信息,进入ssh中端输入
1 | ip addr |
查找LAN2 192.168.31.91对应的网卡名称即ovs_eth1(记下)
2.
创建macvlan网络,还是在ssh,输入以下命令(提示无权限请加上sudo后执行或直接切换su执行)
仅ipv4
1 | docker network create -d macvlan --subnet=网段 --gateway=网关 -o parent=网卡 网络名称 |
ipv4+ipv6
1 | docker network create -d macvlan --subnet=v4网段 --gateway=v4网关 --ipv6 --subnet=v6网段 --gateway=v6网关 -o parent=网卡 网络名词 |
- 网段:我的路由器内网网段是192.168.31.x,填192.168.31.0/24
- 网关:因为要走旁路由,所有网关设置为旁路由的192.168.31.132
- 网卡:第1部获取的LAN2网卡名称ovs_eth1
- 网络名称:随便取,Proxynet(避免后续问题尽量用纯英文)
实例
1 | docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.132 -o parent=ovs_eth1 Proxynet |
执行完毕在container(docker)中就能看到刚创建的Proxynet网络
创建容器并指定网络
1.
以jellyfin compose为例(docker run大致相同,参数不同)
指定网络
1 | networks: |
分配ip (注意,要分配一个还未被使用的ip)
1 | networks: |
写好后重新构建并启动
2.
重新启动稍等片刻后,进入路由界面确认是否正确获得ip地址,并将ip和mac绑定保持后续不变
3.
内网:
内网直接使用地址+端口访问既可以:192.168.31.127:8096(jellyfin默认端口)
外网:
因为直接获得了路由器内网ip,路由器DMZ已经设置了NAS的ip(192.168.31.90),所以需要设置下反代不同的ip而不是之前的仅仅端口反代
相当于外网访问*:8197端口时,会反代到内网的192.168.31.127:8096地址,从而实现外部访问