在 CentOS 上设置 SSH 防火墙,通常分为两种情况:firewalld(CentOS 7/8/Stream) 和 iptables(CentOS 6 或手动关闭 firewalld)。下面按常见场景说明。
默认 SSH 端口是 22
grep ^Port /etc/ssh/sshd_config
sudo firewall-cmd --permanent --add-service=ssh
# 或指定端口
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
例如改成 2222
sudo vi /etc/ssh/sshd_config
Port 2222
sudo systemctl restart sshd
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.100"
port protocol="tcp" port="22" accept'
sudo firewall-cmd --reload
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
service iptables save
service iptables restart
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
如果你告诉我 CentOS 版本 + 是否云服务器 + 是否改过 SSH 端口,我可以给你更精确的一条命令配置。