Closed pianranjinghong closed 4 months ago
理论上来讲,自 OpenWrt 22.03 使用 fw4 开始,你在官方原生镜像中安装 dockerd 后,即使不安装 passwall,它默认docker桥接网络模式(docker0
)就无法联网,除非使用 Host 网络模式。因为它默认不会添加 docker 区域 ⇒ 转发 wan
防火墙规则,同时 dockerd 会 blocked_interfaces wan。
各种迹象来看,这是 OpenWrt 刻意为之。我相信这不是 passwall 或其它插件需要去干预的问题。
打破这种默认值最优的方式应该是 patch dockerd 软件包后去编译dockerd,以 OpenWrt 21 或之前版本的形式为 dockerd 提供可用的桥接网络。
理论上来讲,自 OpenWrt 22.03 使用 fw4 开始,你在官方原生镜像中安装 dockerd 后,即使不安装 passwall,它默认docker桥接网络模式(
docker0
)就无法联网,除非使用 Host 网络模式。因为它默认不会添加docker 区域 ⇒ 转发 wan
防火墙规则,同时 dockerd 会 blocked_interfaces wan。各种迹象来看,这是 OpenWrt 刻意为之。我相信这不是 passwall 或其它插件需要去干预的问题。
打破这种默认值最优的方式应该是 patch dockerd 软件包后去编译dockerd,以 OpenWrt 21 或之前版本的形式为 dockerd 提供可用的桥接网络。
了解了,谢谢
描述您遇到的bug
从4.77-4开始,旁路由中的docker容器无法联网,看了一下,在355a741改动中,luci-app-passwall/root/usr/share/passwall/nftables.sh文件中删除了
我在本地文件中加入了这两句后,docker就可以上网了。
复现此Bug的步骤
防火墙部分配置 ` config defaults option input 'REJECT' option output 'ACCEPT' option forward 'REJECT' option flow_offloading '1' option flow_offloading_hw '1' option fullcone '1' option synflood_protect '1'
config zone option name 'lan' option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT' list network 'lan' list network 'lan6'
config zone option name 'wan' list network 'wan' list network 'wan6' option input 'REJECT' option output 'ACCEPT' option forward 'REJECT' option masq '1' option mtu_fix '1'
config forwarding option src 'lan' option dest 'wan'
config rule option name 'Allow-DHCP-Renew' option src 'wan' option proto 'udp' option dest_port '68' option target 'ACCEPT' option family 'ipv4'
config rule option name 'Allow-Ping' option src 'wan' option proto 'icmp' option icmp_type 'echo-request' option family 'ipv4' option target 'ACCEPT'
config rule option name 'Allow-IGMP' option src 'wan' option proto 'igmp' option family 'ipv4' option target 'ACCEPT'
config rule option name 'Allow-DHCPv6' option src 'wan' option proto 'udp' option dest_port '546' option family 'ipv6' option target 'ACCEPT'
config rule option name 'Allow-MLD' option src 'wan' option proto 'icmp' option src_ip 'fe80::/10' list icmp_type '130/0' list icmp_type '131/0' list icmp_type '132/0' list icmp_type '143/0' option family 'ipv6' option target 'ACCEPT'
config rule option name 'Allow-ICMPv6-Input' option src 'wan' option proto 'icmp' list icmp_type 'echo-request' list icmp_type 'echo-reply' list icmp_type 'destination-unreachable' list icmp_type 'packet-too-big' list icmp_type 'time-exceeded' list icmp_type 'bad-header' list icmp_type 'unknown-header-type' list icmp_type 'router-solicitation' list icmp_type 'neighbour-solicitation' list icmp_type 'router-advertisement' list icmp_type 'neighbour-advertisement' option limit '1000/sec' option family 'ipv6' option target 'ACCEPT'
config rule option name 'Allow-ICMPv6-Forward' option src 'wan' option dest '*' option proto 'icmp' list icmp_type 'echo-request' list icmp_type 'echo-reply' list icmp_type 'destination-unreachable' list icmp_type 'packet-too-big' list icmp_type 'time-exceeded' list icmp_type 'bad-header' list icmp_type 'unknown-header-type' option limit '1000/sec' option family 'ipv6' option target 'ACCEPT'
config rule option name 'Allow-IPSec-ESP' option src 'wan' option dest 'lan' option proto 'esp' option target 'ACCEPT'
config rule option name 'Allow-ISAKMP' option src 'wan' option dest 'lan' option dest_port '500' option proto 'udp' option target 'ACCEPT'
config zone 'docker' option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT' option name 'docker' list network 'docker'
config redirect option dest 'docker' option target 'DNAT' option name 'qinglong' option src 'wan' option src_dport '5705' option dest_port '5705' option family 'any' option enabled '0'
config forwarding option src 'docker' option dest 'lan'
config forwarding option src 'lan' option dest 'docker'
config include 'unblockneteasemusic' option type 'nftables' option path '/var/run/unblockneteasemusic/fw4.nft' option position 'table-post'
config include 'passwall' option type 'script' option path '/var/etc/passwall.include' option reload '1'
config include 'passwall_server' option type 'script' option path '/var/etc/passwall_server.include' option reload '1'
config include 'passwall2' option type 'script' option path '/var/etc/passwall2.include' option reload '1'
config include 'passwall2_server' option type 'script' option path '/var/etc/passwall2_server.include' option reload '1'
`
您想要实现的目的
docker可以联网
日志信息
无
截图
No response
系统相关信息
平台:X86 内核:6.1.89 系统:immortalwrt master passwall:4.77-4
其他信息
No response