发布于2026-07-08 阅读(0)
扫一扫,手机访问
在LAMP环境里设置防火墙,这事儿说难不难,说简单也不简单。很多人一上来就想着把所有端口都封了,结果网站打不开,后台也进不去,白白折腾半天。今天咱们就捋一捋,把这个防火墙规则讲清楚。

先问个关键问题:你手头的Linux系统到底用的是iptables还是firewalld?这取决于发行版。Debian/Ubuntu老版本多用iptables,CentOS/RHEL 7以上则默认走firewalld。不过别慌,两种方式的思路是相通的——无非就是决定:谁该进来,谁该滚蛋。
iptables是Linux世界的老牌防火墙工具,适合那些喜欢把规则一条条写在明面上的用户。先看看当前哪些规则在生效:
sudo iptables -L -n
好,接下来放行最关键的服务。SSH(端口22)得先放行,不然你连管理后台都进不去了:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
然后是Web服务。HTTP(端口80)和HTTPS(端口443)一个都不能少,除非你打算让人访问时只能看见一片空白:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
如果你的应用需要直接连接数据库,MySQL(默认端口3306)也得放行。但注意:数据库访问最好限定来源IP,不然等于把数据库大门敞开:
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
最后,把默认规则设为DROP——也就是除了上面明确允许的,其他所有入站流量一概拒绝:
sudo iptables -P INPUT DROP
规则设完别忘了保存,不然重启后一切归零:
sudo iptables-sa ve > /etc/iptables/rules.v4sudo service iptables sa ve如果你更喜欢基于区域的规则管理——比如“内部网络宽一点,外部网络严一点”——firewalld会更顺手。先看看它是否在运行:
sudo firewall-cmd --state
如果没启动,把它拉起来:
sudo systemctl start firewalld
然后逐一放行服务。SSH、HTTP、HTTPS这些常见服务可以直接用服务名:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
MySQL没有对应的firewalld服务定义,得直接开端口:
sudo firewall-cmd --permanent --add-port=3306/tcp
所有规则加好之后,必须reload一下才能让配置生效:
sudo firewall-cmd --reload
最后确认一下规则列表,看看该开的端口是否都在:
sudo firewall-cmd --list-all
--permanent或保存配置,否则系统一重启,你之前设的全白干。掌握这些,你的LAMP服务器就相当于穿上了一层防护甲。剩下的,就是根据业务需要,不断微调和迭代规则了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8