插件窝 干货文章 linux怎么开放端口

linux怎么开放端口

端口 sudo iptables 开放 207    来源:    2025-04-07

在Linux系统中开放端口通常涉及配置防火墙规则(如iptables/nftables或firewalld/ufw等工具),以下是几种常见方法的详细步骤:


方法1:使用 iptables(传统方式)

# 允许TCP端口(示例:开放80端口)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 允许UDP端口(示例:开放53端口)
sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT

# 保存规则(根据系统选择)
sudo iptables-save | sudo tee /etc/iptables/rules.v4  # Debian/Ubuntu
sudo service iptables save                           # CentOS 6

方法2:使用 firewalld(RHEL/CentOS/Fedora)

# 开放TCP端口(示例:80)
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent

# 开放UDP端口(示例:53)
sudo firewall-cmd --zone=public --add-port=53/udp --permanent

# 重新加载防火墙
sudo firewall-cmd --reload

# 查看已开放端口
sudo firewall-cmd --list-ports

方法3:使用 ufw(Ubuntu/Debian)

# 允许TCP端口(示例:22)
sudo ufw allow 22/tcp

# 允许UDP端口(示例:1194)
sudo ufw allow 1194/udp

# 启用UFW(若未启用)
sudo ufw enable

# 查看规则
sudo ufw status numbered

方法4:直接修改 /etc/services(不推荐)

如果服务端口未在/etc/services中定义,可以手动添加,但需配合防火墙使用:

echo "myapp 12345/tcp # 自定义端口" | sudo tee -a /etc/services

验证端口是否开放

# 本地检查
sudo ss -tulnp | grep <端口号>
sudo netstat -tulnp | grep <端口号>  # 若未安装ss

# 远程测试(从其他机器)
telnet <IP地址> <端口号>
nc -zv <IP地址> <端口号>

注意事项

  1. 安全性:仅开放必要端口,避免使用-j ACCEPT开放所有流量(如iptables -P INPUT ACCEPT)。
  2. 持久化:规则可能需保存才能重启后生效(如iptables需单独操作)。
  3. SELinux:若启用SELinux,需确保策略允许端口访问: bash sudo semanage port -a -t http_port_t -p tcp 8080
  4. 云服务器:需在云平台安全组中额外放行端口(如AWS安全组、阿里云ECS规则)。

根据你的Linux发行版和防火墙工具选择对应方法即可。如有进一步问题可提供具体环境细节(如系统版本、服务类型等)。