本帖最后由 RedCrew 于 2022-5-24 12:32 编辑
烦求大佬分析下,N1刷了f大的op固件使用docker bridge搭建容器后,N1正常访问容器但LAN口网段主机无法访问。 经分析感觉和防火墙有关系,但测试经过各种更改防火墙区域访问权限后,问题未解决。下面是我歪打正着的解决方式。 烦请各位大佬看看能不能找到根本原因!!
情况描述: - 容器正常与外网通信,但LAN口网段主机无法与容器通信
- 青龙面板使用host模式端口5700,更换为bridge模式5700tcp:5700,LAN口网段主机发现前端页面无法打开。
- 尝试新建容器nextcloud,使用bridge模式8080tcp:80,LAN口网段主机发现前端页面无法打开。
- netstat -anp,发现端口正常监听。
- N1 curl本地8080端口正常,curl容器80端口正常。容器curl N1 8080端口正常。N1、网段主机、容器均双向ping测正常。
- LAN口网段主机 curl N1 8080端口异常,并且eth0抓包发现N1有收包但未回包。
判断原因: - N1防火墙策略限制(下图为默认设置)
- 通过调整策略LAN>wan、vpn、docker(无效果)
处理过程: 经过论坛等搜索: - 在这个贴子中发现有“飞天翔云”大神回复-----https://www.right.com.cn/FORUM/thread-4069232-1-1.html
- 但帖子标题“刷了flippy大神的openwrt固件,容器无法联网”和我问题无关
- 但抱着试试看的心态测试了。
操作步骤: 固件:openwrt_s905d_n1_R22.2.2_k5.4.179-flippy-69+o - Luci -> 网络 -> 防火墙 -> 转发:接受
- 添加如下防火墙规则(我使用的命令行添加,未使用自定义规则)
- iptables -t nat -A POSTROUTING -s 172.31.0.0/24 ! -o docker0 -j MASQUERADE
- 172.31.0.0/24 根据你的docker环境的bridge网络情况设置
- 删除 docker0 并重启
- ip link del docker0
- reboot
操作完成后: - 系统重启后LAN口网段主机还是访问容器异常
- 但!!!发现!!!重启防火墙后正常访问。
- 系统重启也后必须在重启防火墙,才可访问。
|