众所周知, 群辉默认占用了 80 端口, 443 端口. 而 zoffline 正好需要使用 80 和 443 端口, 如何解决呢?
其实我们可以通过自定义 docker 网络. 创建一个类型为 macvlan 的网络, 手动指定 ip 即可. 具体 ip 和网络需要结合内网实际情况进行尝试和修改.
内网环境
- zoffline 内网网段: 192.168.0.1/24
- zoffline 的容器 ip, 一般来说为了避免冲突, 需要在内网子网下, 内网 DHCP 之外. (冲突可能性不是很大, 这里重叠也无所谓…
- 配置好 zoffline ip 之后, 在路由器 DHCP 页面看不到设备, 因为这属于静态 IP 指定.
确定群辉网卡名称
- 这里的 ip 是群辉的 ip, 操作时需替换成实际的 ip
- 一般的网卡名称是
eth0
,但实际是ovs_eth0
. 这里是因为我启用了群辉的 openswitch. 畅网 N100 黑群晖踩坑记录
1 | ❯ ifconfig | grep "192.168.0.50" -B 2 #替换成实际的 ip |
查看通过无线 / 有线连接的设备
方法一
1 | root@op:~# cat /proc/net/arp |
- Flags 标志可以表示是否在线状态,0x0 表示离线,标志 0x2 表示在线
- Device 表示接口的名称
方法二
1 | root@op:~# cat /tmp/dhcp.leases |
- 可以看到 mac 地址,IP,设备名等信息
部署
创建 macvlan 类型网络
根据上面的排查, 结果如下
- subnet 为
192.168.0.0/24
- gateway 为
192.168.0.1
(直接填路由器 ip 即可) - ip-range 指新创建的这个网络的子网范围, 这里设定为 192.168.0.220/31
- parent 代表父网卡, 这里为 ovs_eth0
- 最后的 zoffline 为 docker 网络名称
- 上述数值根据实际情况按需修改
1 | docker network create -d macvlan \ |
docker-compose.yml
1 | # dc down && docker network rm zoffline |
启动
- 执行
dc up -d && docker exec -it zoffline sh
即可 - 启动后访问对应 ip 即可
题外话: macvlan与host网络互通
- 大体思路是: 多创建一个 macvlan 网络作为中转, 通过对 iptables 添加路由实现互通.
- 不过因为我的容器 本来就是独立部署的, 所以不需要macvlan与host网络互通.
https://rehtt.com/index.php/archives/236/
https://post.smzdm.com/p/awkv40k4/
添加 bot 之后内存占用 1.5GB+
- 尝试重新拉取下最新镜像, 应该可以解决
- 正常情况下启用 Ghosts, Bots 和 RoboPacers 的占用应该在 350MB 左右
- https://github.com/oldnapalm/zoffline-bots
- https://github.com/zoffline/zwift-offline/commit/e4bdc3fdd492c923e7504ad994fb36cf86bcd35a