大家好,我是剽悍一小兔,独立开发者,副业搞钱尝试者,热爱技术分享,欢迎一起学习交流。

我会每天分享编程技术、独立开发、行业咨询、思考感悟。

代表作:《JavaScript百炼成仙》

公众号:java小白翻身

小程序:速用百宝箱

在 Linux 系统里,要查看所有放行的端口,这和防火墙的配置情况有关。下面为你介绍几种常见的情形:

1. 使用 firewalld(适用于 CentOS/RHEL 7+、Fedora 等系统)

要是系统使用的是 firewalld,可以执行以下命令查看放行的端口:

sudo firewall-cmd --list-ports

若想查看更为详细的信息,比如端口对应的服务等,可使用:

sudo firewall-cmd --list-all

2. 使用 iptables(适用于 Ubuntu、Debian 等系统)

当系统使用 iptables 时,可通过以下命令查看放行的端口:

sudo iptables -L -n -v | grep -i "accept" | grep -i "tcp\|udp"

该命令会把所有 ACCEPT 规则里的 TCP 和 UDP 端口都列出来。

3. 使用 ufw(适用于 Ubuntu 等系统)

如果系统使用的是 ufw(Uncomplicated Firewall),可执行此命令查看放行的端口:

sudo ufw status verbose

4. 查看正在监听的端口(与防火墙放行不同)

若你想了解系统当前正在监听的端口(这和防火墙是否放行并无关联),可以使用:

sudo netstat -tulpn

或者使用 ss 命令(它的性能更好):

sudo ss -tulpn

这里:

  • • -t 代表 TCP 协议
  • • -u 代表 UDP 协议
  • • -l 表示只显示监听状态的端口
  • • -p 能够显示监听该端口的程序
  • • -n 会以数字形式显示端口号

示例输出

下面是 firewall-cmd --list-ports 命令的示例输出:

80/tcp 443/tcp 22/tcp

这表明防火墙放行的端口有 80(HTTP)、443(HTTPS)以及 22(SSH)。

注意事项

  • • 要查看防火墙放行的端口,需要有 root 权限,所以命令前要加 sudo
  • • 不同的 Linux 发行版,其防火墙配置工具可能不一样,像 CentOS 7+ 常用 firewalld,而 Ubuntu 则常用 ufw
  • • 系统正在监听的端口,防火墙未必会放行;同理,防火墙放行的端口,系统也可能没有程序在监听。

要永久放行 Linux 系统上的 22000 端口,具体操作取决于你使用的防火墙工具。以下是针对不同防火墙的配置方法:

1. 使用 firewalld(CentOS/RHEL 7+、Fedora)

步骤:
  1. 1. 添加永久规则(TCP 或 UDP,根据需求选择):
    # 放行 TCP 端口 22000
    sudo firewall-cmd --permanent --add-port=22000/tcp
    
    # 放行 UDP 端口 22000(如果需要)
    sudo firewall-cmd --permanent --add-port=22000/udp
  2. 2. 重载防火墙使规则生效
    sudo firewall-cmd --reload
  3. 3. 验证规则是否添加成功
    sudo firewall-cmd --permanent --list-ports

2. 使用 ufw(Ubuntu、Debian)

步骤:
  1. 1. 启用 UFW(如果未启用)
    sudo ufw enable
  2. 2. 添加规则放行端口 22000
    # 放行 TCP 端口 22000
    sudo ufw allow 22000/tcp
    
    # 放行 UDP 端口 22000(如果需要)
    sudo ufw allow 22000/udp
  3. 3. 验证规则
    sudo ufw status verbose

3. 使用 iptables(传统方式,需手动保存规则)

步骤:
  1. 1. 添加规则放行端口 22000
    # 放行 TCP 端口 22000
    sudo iptables -A INPUT -p tcp --dport 22000 -j ACCEPT
    
    # 放行 UDP 端口 22000(如果需要)
    sudo iptables -A INPUT -p udp --dport 22000 -j ACCEPT
  2. 2. 保存规则(不同系统保存方式不同)
    • • Ubuntu/Debian
      sudo apt-get install iptables-persistent
      sudo netfilter-persistent save
    • • CentOS/RHEL
      sudo yum install iptables-services
      sudo service iptables save
      sudo systemctl enable iptables
  3. 3. 验证规则
    sudo iptables -L -n -v

验证端口是否放行

配置完成后,可以通过以下方式验证:

  • • 使用 firewalld 或 ufw 的状态命令(见前面步骤)。
  • • 使用 nmap 扫描本地端口
    sudo nmap -sT -p 22000 localhost
    如果看到 22000/tcp open,则表示端口已成功放行。

注意事项

  • • 安全风险:放行端口会增加系统暴露面,建议仅放行必要的端口,并配合其他安全措施(如 SSH 密钥认证、fail2ban 等)。
  • • 端口冲突:确保 22000 端口未被其他服务占用(使用 netstat -tulpn | grep 22000 检查)。
  • • 服务配置:如果是为某个服务开放端口(如 SSH),需确保该服务本身也配置为监听 22000 端口(修改 /etc/ssh/sshd_config 中的 Port 字段)。

根据你的系统选择对应的方法,配置后重启系统验证规则是否持久生效。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐