一个多月以前开始,站点有大量境外连号 IP 异常访问(规避了每 IP 并发限制),所以就想着在防火墙中启用【禁止国外】功能,但是发现“禁止国外”、“禁止港澳台”无论是单选还是复选,结果是整个站点都无法访问。取消勾选则站点访问恢复正常。
刚开始以为可能 IP 属于“漏网之鱼”未被收录,不过尝试更换了几次 IP 后、包括使用国内其他 IP 均无法访问站点。不知道防火墙功能是什么时候“失效”的,只记得去年刚安装完 AMH 7.2 时还测试过防火墙功能,当时一切都正常。
尝试过重装 amnetwork 、重装服务器操作系统、重装 AMH 面板(全量安装/手动安装组件都试过),还是问题依旧;检查过 ipset 列表,正常的有内容输出;
后来没法子了,只能重新整备了台服务器先将站点迁移过去,新服务器上 AMH 面板功能一切正常。不知道是什么原因导致的面板防火墙功能异常。
=== 补充 ===
(未勾选“网站访问阻止:禁止国外”)防火墙配置如下:
# Generated by iptables-save v1.8.7 on Thu Mar 20 16:51:10 2025
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:40]
:CNI-ADMIN - [0:0]
:CNI-FORWARD - [0:0]
-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
-A INPUT -p tcp -m tcp --dport 10100:10180 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p udp -m udp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 80,*****,***** -j ACCEPT
-A FORWARD -m comment --comment "CNI firewall plugin rules" -j CNI-FORWARD
-A FORWARD -p tcp -m tcp --dport 3000 -j ACCEPT
-A CNI-FORWARD -m comment --comment "CNI firewall plugin admin overrides" -j CNI-ADMIN
-A CNI-FORWARD -d 10.88.0.2/32 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A CNI-FORWARD -s 10.88.0.2/32 -j ACCEPT
COMMIT
# Completed on Thu Mar 20 16:51:10 2025
# Generated by iptables-save v1.8.7 on Thu Mar 20 16:51:10 2025
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:CNI-4744e959ac67d212409880e7 - [0:0]
:CNI-DN-4744e959ac67d21240988 - [0:0]
:CNI-HOSTPORT-DNAT - [0:0]
:CNI-HOSTPORT-MASQ - [0:0]
:CNI-HOSTPORT-SETMARK - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j CNI-HOSTPORT-DNAT
-A OUTPUT -m addrtype --dst-type LOCAL -j CNI-HOSTPORT-DNAT
-A POSTROUTING -m comment --comment "CNI portfwd requiring masquerade" -j CNI-HOSTPORT-MASQ
-A POSTROUTING -s 10.88.0.2/32 -m comment --comment "name: \"podman\" id: \"28e2886d8cbb71bb03a931b90b2d1efd54334b8fc6501492cc06da9dff4eeb0f\"" -j CNI-4744e959ac67d212409880e7
-A CNI-4744e959ac67d212409880e7 -d 10.88.0.0/16 -m comment --comment "name: \"podman\" id: \"28e2886d8cbb71bb03a931b90b2d1efd54334b8fc6501492cc06da9dff4eeb0f\"" -j ACCEPT
-A CNI-4744e959ac67d212409880e7 ! -d 224.0.0.0/4 -m comment --comment "name: \"podman\" id: \"28e2886d8cbb71bb03a931b90b2d1efd54334b8fc6501492cc06da9dff4eeb0f\"" -j MASQUERADE
-A CNI-DN-4744e959ac67d21240988 -s 10.88.0.0/16 -p tcp -m tcp --dport 3000 -j CNI-HOSTPORT-SETMARK
-A CNI-DN-4744e959ac67d21240988 -s 127.0.0.1/32 -p tcp -m tcp --dport 3000 -j CNI-HOSTPORT-SETMARK
-A CNI-DN-4744e959ac67d21240988 -p tcp -m tcp --dport 3000 -j DNAT --to-destination 10.88.0.2:3000
-A CNI-HOSTPORT-DNAT -p tcp -m comment --comment "dnat name: \"podman\" id: \"28e2886d8cbb71bb03a931b90b2d1efd54334b8fc6501492cc06da9dff4eeb0f\"" -m multiport --dports 3000 -j CNI-DN-4744e959ac67d21240988
-A CNI-HOSTPORT-MASQ -m mark --mark 0x2000/0x2000 -j MASQUERADE
-A CNI-HOSTPORT-SETMARK -m comment --comment "CNI portfwd masquerade mark" -j MARK --set-xmark 0x2000/0x2000
COMMIT
# Completed on Thu Mar 20 16:51:10 2025
最好全部列出面板防火墙的规则内容,看是哪方面拦截的了,也看服务器出入口还有没其它防火墙,
如果尝试重装过amnetwork与面板、操作系统都重装过,应该就不是面板上软件的问题。