1. 概述:为什么“IP填啥”很重要
在海外云/机房环境,IP分为公网IP、私有网(VPC/内网)IP、回环地址。运维首要判断你的服务是直接对公网暴露还是通过负载均衡/端口转发、NAT、代理来对外提供。错误填写会导致端口无法访问或安全风险。
2. 步骤一:确认服务器的真实IP
1) 登录服务器,运行 ip addr show 或 ifconfig 查看网卡地址;2) curl -s ifconfig.co 或 curl -s icanhazip.com 获取外网出口IP;3) 在云控制台核对分配的弹性公网IP(EIP)或内网IP(私有IP)。记录三类IP用于后续配置。
3. 步骤二:决定服务绑定哪个IP
对外服务通常绑定0.0.0.0(所有地址)或具体私有IP(当通过负载均衡/NAT映射时)。如果云提供商做DNAT/ELB,后端服务应绑定私有IP或0.0.0.0;若单机直接使用EIP,服务可绑定该公网IP或0.0.0.0。
4. 步骤三:云端安全组/防火墙配置
按云厂商(AWS/Azure/GCP/国内IDC)在控制台安全组/NSG/security rules中添加入站规则:协议(TCP/UDP),端口范围(如22/80/443),来源IP(建议限制为管理IP或0.0.0.0/0按需)。示例:AWS 控制台 -> Security Groups -> Inbound -> Add TCP 80 0.0.0.0/0。
5. 步骤四:操作系统防火墙(ufw/iptables/firewalld)
- ufw(Ubuntu):sudo ufw allow 80/tcp; sudo ufw allow from 1.2.3.4 to any port 22; sudo ufw enable。- iptables(通用)示例:sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT; sudo iptables-save > /etc/iptables/rules.v4。- firewalld(CentOS7+):sudo firewall-cmd --permanent --add-port=80/tcp; sudo firewall-cmd --reload。
6. 步骤五:NAT/端口转发场景(常见于内网+EIP)
如果服务在私有IP(192.168.x.x),需要做DNAT并开启转发:1) sudo sysctl -w net.ipv4.ip_forward=1 并写入 /etc/sysctl.conf;2) sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.10:80;3) sudo iptables -A FORWARD -p tcp -d 192.168.0.10 --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT。
7. 步骤六:服务绑定配置示例(nginx、ssh)
- nginx:在 /etc/nginx/sites-available/default 或 nginx.conf,使用 listen 0.0.0.0:80 或 listen 192.168.0.10:80;保存并 sudo systemctl reload nginx。- ssh:在 /etc/ssh/sshd_config 中使用 ListenAddress 0.0.0.0(或指定IP),sudo systemctl restart sshd。
8. 步骤七:端口与IP的测试方法
- 本机检查:ss -tuln | grep 80 或 netstat -tulpen。- 外网测试:nmap -Pn -p 80 <公网IP>,或 telnet <公网IP> 80,curl -I http://<公网IP>/。遇通不通,先检查云安全组,再检查os防火墙,最后检查服务是否监听对应IP/端口。
9. 常见问题与排查顺序
排查顺序建议:1)确认EIP与服务器实际出口IP是否一致;2)云安全组是否放行端口;3)服务器防火墙是否拦截;4)服务是否监听正确IP/端口;5)路由/NAT规则是否生效。每步都用上面提到的命令验证。
10. 安全建议与最佳实践
- 管理端口(如22)应限制来源IP或使用VPN/跳板机;- 生产服务尽量通过负载均衡器做健康检查和DDoS防护;- 使用最小权限原则,只开放必要端口;- 记录并版本化防火墙/iptables规则。
11. Q1: 如果云提供商给的是NAT形式的公网怎么办?
答:首先确认云商给你的是否是私有机房内网IP,外网请求经过运营商NAT。如果是NAT,你需要在云控制台申请弹性公网IP或让云商做端口映射。若无法,必须配合云商在上游完成DNAT,或者在你可控的边界设备上配置端口转发并在服务器上开启ip_forward与相应iptables规则。
12. Q2: 防火墙规则写到云控制台和本机两边都需要吗?
答:是的,通常需要两边都配置。云端安全组/NSG负责第一道过滤,操作系统防火墙(iptables/ufw/firewalld)是第二道防线。两者缺一不可,否则即使云端放行,本机仍可能拒绝连接,反之亦然。
13. Q3: 如何验证端口映射生效以及排查延迟问题?
答:验证步骤:1)从公网用 nmap/telnet/curl 测试端口;2)在服务器用 tcpdump -i eth0 port 80 查看请求是否到达;3)检查 iptables -t nat -L -n 和 iptables -L -n 确认规则;4)用 traceroute/tracert 看路由路径;如有延迟,检查中间负载均衡或云商网络质量并联系提供商。
来源:运维角度解析海外服务器IP填啥 与防火墙端口配置关联