TOP云提供高性价比云服务器租用,有中国内地/港澳台、海外等全球各地节点,TOP云国内云服务器只要有域名备案号就能直接用,无须重复备案;港澳台及海外云服务器不用备案,购买之后直接使用,省时省力省心。价格实惠,续费同价,2核2G5M仅需27元每月,8核8G50M仅需66元每月,更多配置套餐请进入下面网址了解:

TOP云总站云服务器:https://topyun.vip/server/buy.html

TOP云C站云服务器:https://c.topyun.vip/cart

在云服务器租用中,限制IP访问是提升安全性的重要手段,可以有效防止未授权访问、暴力破解或DDoS攻击。以下是详细的实现方法和注意事项:


一、限制IP访问的常见方法

1. 通过防火墙限制(推荐)

(1)Linux 系统防火墙(iptables/firewalld/ufw)

  • iptables(基础工具)
    示例:仅允许特定IP访问SSH(端口22),其他IP全部拒绝:

    # 清空现有规则(谨慎操作)
    sudo iptables -F

    # 允许特定IP访问SSH
    sudo iptables -A INPUT -p tcp --dport 22 -s 允许的IP -j ACCEPT

    # 拒绝其他所有IP访问SSH
    sudo iptables -A INPUT -p tcp --dport 22 -j DROP

    # 保存规则(Ubuntu/Debian需安装iptables-persistent)
    sudo iptables-save | sudo tee /etc/iptables/rules.v4
  • firewalld(CentOS/RHEL等)
    示例:仅允许IP 192.168.1.100 访问HTTP(端口80):

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="80" accept'
    sudo firewall-cmd --reload
  • ufw(Ubuntu简化工具)
    示例:仅允许IP 203.0.113.5 访问SSH:

    sudo ufw allow from 203.0.113.5 to any port 22
    sudo ufw enable

(2)云平台安全组(更高效)

  • AWS/Aliyun/Tencent Cloud等:在控制台配置安全组规则,直接限制入站/出站流量。
    示例(阿里云安全组)

    优点:无需登录服务器,由云平台直接拦截流量,性能更好。

    • 入方向规则:仅允许特定IP访问SSH(端口22)和HTTP(端口80)。

    • 出方向规则:按需限制(如仅允许访问特定外网IP)。


2. 通过Web服务器配置限制(如Nginx/Apache)

(1)Nginx 限制IP访问

  • 允许特定IP访问
    在Nginx配置文件中(如 /etc/nginx/sites-available/default)添加:

    location / {
        allow 203.0.113.5;    # 允许的IP
        deny all;             # 拒绝其他所有IP
    }
  • 拒绝特定IP

    location / {
        deny 192.168.1.100;   # 拒绝的IP
        allow all;            # 允许其他IP
    }

    重启Nginx生效:

    sudo systemctl restart nginx

(2)Apache 限制IP访问

  • 在虚拟主机配置或 .htaccess 文件中添加:

    <Directory "/var/www/html">
        Require ip 203.0.113.5   # 仅允许该IP
        # 或拒绝特定IP
        # Require not ip 192.168.1.100
    </Directory>

    重启Apache:

    sudo systemctl restart apache2

3. 通过Fail2Ban动态封禁IP

  • 适用场景:防御暴力破解(如SSH、Web登录),自动封禁恶意IP。

  • 配置示例(SSH防护):
    修改 /etc/fail2ban/jail.local:

    [sshd]
    enabled = true
    maxretry = 3      # 3次失败后封禁
    bantime = 86400   # 封禁24小时

    重启Fail2Ban:

    sudo systemctl restart fail2ban

4. 数据库或其他服务限制IP

  • MySQL/MariaDB
    在 my.cnf 或直接执行SQL命令限制IP访问:

    CREATE USER 'user'@'203.0.113.5' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'user'@'203.0.113.5';
    FLUSH PRIVILEGES;
  • Redis/Memcached
    绑定特定IP或设置密码(默认无密码且监听所有IP,需修改配置文件)。


二、注意事项

  1. 优先级建议

    • 云安全组 > 防火墙 > Web服务器配置。云安全组性能最好,防火墙更灵活,Web配置适合应用层限制。

    • 多层防护结合(如安全组+Fail2Ban)效果更佳。

  2. 避免误封

    • 确保自己的IP在允许列表中(尤其是动态IP用户,可使用DDNS或VPN)。

    • 测试规则前,保持另一个SSH会话活跃,防止被锁。

  3. 日志监控

    • 通过 iptables -L -n、fail2ban-client status 或Web服务器日志检查封禁情况。

  4. IPv6支持

    • 如果服务器启用IPv6,需同步配置IPv6规则(如 ip6tables 或安全组的IPv6规则)。


三、总结

场景推荐方法
全局IP访问控制云平台安全组 + Linux防火墙(iptables/firewalld)
防御暴力破解Fail2Ban + 防火墙
Web应用层IP限制Nginx/Apache配置
数据库等服务的IP限制服务自身配置(如MySQL绑定IP)

最佳实践

  • 公网服务器:云安全组 + Fail2Ban + Web服务器IP限制。

  • 内网服务器:防火墙 + 服务自身配置。

  • 动态IP用户:结合VPN或DDNS工具(如花生壳)。


不容错过
Powered By TOPYUN 云产品资讯