Linux端口如何开启?

开放端口前的准备

  1. 确认需要开放的端口号

    • HTTP服务:80/TCP
    • HTTPS服务:443/TCP
    • SSH服务:22/TCP
    • 自定义服务:如3000/TCP
  2. 检查端口是否已被监听
    运行命令查看当前监听端口的服务:

    sudo ss -tuln | grep LISTEN
    # 或使用传统命令
    sudo netstat -tuln | grep LISTEN

    若目标端口未出现在列表中,需先配置应用程序监听该端口(如修改Nginx/Apache配置)。


通过防火墙开放端口

Linux系统常用两种防火墙工具,根据发行版选择对应方案:

方案1:使用 firewalld(推荐用于CentOS/RHEL/Fedora)

  1. 查看防火墙状态

    sudo firewall-cmd --state

    若返回 running 表示防火墙已启用。

  2. 永久开放端口

    # 开放TCP端口(示例:开放80和443)
    sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
    # 开放UDP端口(示例:开放53/UDP)
    sudo firewall-cmd --zone=public --add-port=53/udp --permanent
  3. 重新加载配置生效

    sudo firewall-cmd --reload
  4. 验证已开放端口

    sudo firewall-cmd --zone=public --list-ports

方案2:使用 iptables(适用于Debian/Ubuntu或旧版系统)

  1. 临时开放端口(重启失效)

    # 允许TCP端口(示例:22)
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    # 允许UDP端口(示例:1194)
    sudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT
  2. 永久保存规则
    安装持久化工具并保存:

    sudo apt install iptables-persistent  # Debian/Ubuntu
    sudo netfilter-persistent save        # 保存规则
  3. 检查生效规则

    sudo iptables -L INPUT -v --line-numbers

验证端口是否开放成功

  1. 从外部网络测试
    使用另一台设备执行:

    telnet 你的服务器IP 端口号  # 示例:telnet 192.168.1.100 80

    若返回 Connected 表示成功。

  2. 服务器本地测试

    nc -zv 127.0.0.1 端口号      # 示例:nc -zv 127.0.0.1 22
  3. 在线工具检测
    访问 YouGetSignal 或 PortChecker,输入服务器公网IP和端口号扫描。


安全注意事项

  1. 最小化开放原则
    仅开放必要端口,关闭未使用的服务(如默认的SSH端口22可改为非标准端口)。

  2. 限制访问来源

    • 在防火墙中指定IP白名单:
      # firewalld示例:仅允许192.168.1.0/24访问3306
      sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="3306" protocol="tcp" accept' --permanent
    • iptables示例:
      sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 3306 -j ACCEPT
  3. 启用Fail2ban防护
    安装Fail2ban自动屏蔽暴力破解行为:

    sudo apt install fail2ban  # Debian/Ubuntu
    sudo yum install fail2ban  # CentOS/RHEL
  4. 定期更新系统
    保持系统和防火墙工具更新:

    sudo apt update && sudo apt upgrade  # Debian/Ubuntu
    sudo yum update                     # CentOS/RHEL

常见问题解决

  • 端口开放后仍无法访问?

    1. 检查服务是否正常运行(如 systemctl status nginx)。
    2. 确认云服务商安全组规则(阿里云/酷盾需额外配置控制台安全组)。
    3. 排查本地网络限制(如企业防火墙)。
  • 误操作锁定SSH连接?

    1. 通过云控制台使用VNC登录恢复。
    2. 预先配置 cron 任务定时重置防火墙:
      @hourly iptables -P INPUT ACCEPT && iptables -F

开放Linux服务器端口需同步操作防火墙规则(firewalldiptables)和应用程序配置,始终遵循安全最佳实践:最小化开放、限制IP源、启用防护工具,操作前备份防火墙配置(如 cp /etc/firewalld/zones/public.xml ~/backup/),避免因规则错误导致服务中断。

引用说明:本文操作基于Linux官方文档及常见运维实践,参考来源包括:

  • Firewalld官方文档
  • Iptables指南
  • Linux Man Pages(man firewalld, man iptables

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6909.html

(0)
酷番叔酷番叔
上一篇 2025年7月10日 02:23
下一篇 2025年7月10日 02:35

相关推荐

  • Windows 10装Linux会丢失数据吗?

    准备工作必备工具8GB以上U盘(制作启动盘)烧录工具:Rufus(Windows)或BalenaEtcher(跨平台)Linux镜像:推荐Ubuntu 22.04 LTS(官网下载)或Fedora(官网下载)关键操作备份数据:使用Windows自带的”文件历史记录”或第三方工具(如Macrium Reflect……

    2025年6月18日
    20500
  • Linux如何给SD卡分区?操作步骤与工具使用指南?

    在Linux系统中对SD卡进行分区是一项常见操作,通常用于制作启动盘、扩展存储空间或实现数据隔离,由于SD卡容量较小且需兼容多种设备,分区时需谨慎操作,避免数据丢失,本文将详细介绍Linux环境下分区的完整流程,包括准备工作、工具选择、具体操作步骤及注意事项,准备工作在开始分区前,需完成以下准备工作,确保操作安……

    2025年9月22日
    13000
  • linux如何启动ftp

    Linux 中,可通过安装 vsftpd 服务,使用命令 `systemctl start vsft

    2025年8月16日
    17600
  • Linux系统如何用yum命令安装软件包?

    Linux系统中,yum(Yellowdog Updater, Modified)是一款常用的包管理工具,主要用于自动化安装、更新和卸载软件包,并能自动解决依赖关系,广泛应用于基于RPM的发行版,如CentOS、RHEL、Fedora等,本文将详细介绍如何使用yum进行软件包管理,包括基础配置、安装步骤、常用命……

    2025年9月20日
    15500
  • Linux如何查看系统缓存文件大小?

    在Linux系统中,缓存是提升系统性能的关键机制,通过缓存频繁访问的文件数据和元数据,减少磁盘I/O操作,加快程序响应速度,了解缓存文件大小的分布和占用情况,对于系统性能调优、故障排查和存储管理都具有重要意义,本文将详细介绍Linux系统中查看缓存文件大小的多种方法,涵盖系统级内存缓存、文件系统缓存及用户级应用……

    2025年9月17日
    18900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信