You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EC2实例仅22端口可访问,如何开放其他端口供外部服务访问?

解决EC2实例仅22端口可访问的问题

核心排查与解决步骤

EC2端口无法对外访问,主要受安全组规则、实例内部防火墙、Docker端口映射三个环节控制,按以下顺序逐一处理:

1. 配置EC2安全组入站规则

  • 登录AWS控制台,找到目标EC2实例关联的安全组
  • 新增入站规则:
    • 类型选「自定义TCP」,端口范围填1234(你需要暴露的数据库端口)
    • 源地址若需全网访问填0.0.0.0/0,仅限特定客户端访问则填对应IP段(更安全)
    • 若要测试80端口,重复上述步骤添加80端口的入站规则
  • 保存规则

2. 检查实例内部防火墙(Linux系统为例)

  • 通过SSH登录EC2实例,执行命令查看当前防火墙规则:
    sudo iptables -L
    
  • 若1234/80端口未放行,添加规则:
    # 放行1234端口
    sudo iptables -A INPUT -p tcp --dport 1234 -j ACCEPT
    # 放行80端口(测试用)
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    
  • 若实例使用firewalld防火墙,执行:
    sudo firewall-cmd --add-port=1234/tcp --permanent
    sudo firewall-cmd --reload
    

3. 确认Docker端口映射配置

  • 部署数据库容器时,必须用-p参数做端口映射,格式为主机端口:容器内部端口,示例:
    # 将主机1234端口映射到MySQL容器的3306端口
    docker run -d -p 1234:3306 mysql:latest
    
  • 执行docker ps查看容器状态,确认PORTS列显示0.0.0.0:1234->容器端口/tcp,说明映射生效

4. 测试端口连通性

  • 用telnet测试:
    telnet 你的EC2公网IP 1234
    
  • 或用nc命令(更简洁):
    nc -zv 你的EC2公网IP 1234
    

内容的提问来源于stack exchange,提问作者Preston_Jarvis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 11:48:09