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

无法修改NGINX端口实现外部访问问题求助

Troubleshooting Nginx Port 6000 Access on AWS EC2

Hey there, let’s work through this issue step by step—since you can access the port locally but not over the public IP, we know your app and basic Nginx config are functional. The problem is almost certainly tied to network-level restrictions. Here’s what to check and fix:

1. Double-Check AWS Security Group Rules

Even if you think you opened port 6000, small oversights happen here:

  • Ensure you’ve added an inbound rule for TCP port 6000 with the source set to 0.0.0.0/0 (for full public access) or your specific external IP range if you want restricted access.
  • Confirm the security group with this rule is actually attached to your EC2 instance. Head to the AWS EC2 console → Select your instance → Go to the Security tab → Verify the correct group is listed and the 6000 rule exists.

2. Verify VPC Network ACLs

AWS VPC Network ACLs act as a subnet-level firewall, and they’re stateless—meaning you need both inbound and outbound rules to allow traffic:

  • For inbound: Allow TCP port 6000 from 0.0.0.0/0.
  • For outbound: Allow TCP ports 1024-65535 (ephemeral client ports) to 0.0.0.0/0—this lets the server send responses back to external devices, which use random ports in this range.
  • Skip this only if you’re using the default VPC (default ACLs allow all traffic); custom VPCs often have restrictive ACLs.

3. Ensure Nginx is Listening on All Interfaces

After updating your config to listen 6000;, confirm:

  • You restarted Nginx to apply changes:
    sudo systemctl restart nginx
    
  • Nginx is listening on all network interfaces (not just localhost). Run this command to check:
    ss -tulpn | grep nginx
    
    You should see a line like LISTEN 0 511 0.0.0.0:6000 0.0.0.0:* users:(("nginx",pid=xxxx,fd=xx)). If it shows 127.0.0.1:6000, your config might have an implicit local-only listen directive—double-check flask.conf for extra listen lines.

4. Check Ubuntu’s UFW Firewall

AWS EC2 instances don’t enable UFW by default, but if you turned it on manually, it could block port 6000:

  • Allow the port:
    sudo ufw allow 6000/tcp
    
  • Reload the firewall:
    sudo ufw reload
    
  • Confirm the rule is active:
    sudo ufw status
    

5. Confirm Your Public IP is Correct

If you’re not using an Elastic IP, your EC2 instance’s public IP might change after a reboot. Run this on your instance to get the current public IP:

curl http://checkip.amazonaws.com

Make sure you’re using this exact IP when accessing from outside.

Bonus: Prepping for Two Independent Services

Once port 6000 works, setting up a second service is simple—just create a new Nginx config file (or duplicate flask.conf) with:

  • A unique listen port (e.g., 6001;)
  • A separate upstream block pointing to your second Python worker’s port (e.g., localhost:8081)
  • Keep the same server_name if both services should use the public IP, or adjust it if needed.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:42:03