1. 引言

在使用阿里云ECS服务器时,很多用户会发现:通过ifconfig查看到的IP(如172.24.177.253)和阿里云控制台显示的公网IP(如118.31.115.35)不一致,这导致SSH连接失败或产生困惑。

本文将详细解释 公网IP与内网IP的区别,并提供 VS Code Remote-SSH连接阿里云ECS的完整解决方案,帮助你高效管理远程服务器。


2. 公网IP vs 内网IP:核心区别

(1)公网IP(弹性公网IP/EIP)

  • 作用:用于从互联网(如你的本地电脑)访问云服务器。
  • 特点
    • 由阿里云分配,独立于ECS实例,可以绑定或解绑。
    • 通过 NAT(网络地址转换) 映射到内网IP。
    • 例如:118.31.115.35(用户通过此IP连接服务器)。

(2)内网IP(私有IP)

  • 作用:用于阿里云内网通信(如ECS之间、ECS与RDS等服务的交互)。
  • 特点
    • 在VPC内部分配,仅限内网访问。
    • 通过 ifconfigip a 查看到的IP(如 172.24.177.253)。
    • 无法直接从外网访问

(3)关键区别总结

特性 公网IP 内网IP
访问范围 互联网 阿里云内网
查看方式 阿里云控制台 ifconfigip a
是否可变 可绑定/解绑 固定(除非更换VPC)
用途 SSH远程连接、Web服务 内网RDS/Redis访问等

3. 如何正确连接阿里云ECS?

(1)确认使用公网IP

  • 错误做法
    尝试用 ifconfig 查到的内网IP(如 172.24.177.253)连接:
    ssh root@172.24.177.253  # 失败!此IP仅限内网
    
  • 正确做法
    使用阿里云控制台提供的 公网IP(118.31.115.35)
    ssh root@118.31.115.35
    

(2)检查阿里云安全组规则

如果连接超时,需确保安全组放行SSH端口(默认22):

  1. 进入 阿里云控制台 → ECS → 安全组
  2. 添加 入方向规则
    协议类型:TCP  
    端口范围:22/22  
    授权对象:0.0.0.0/0(或你的本地IP)
    

(3)配置VS Code Remote-SSH

  1. 安装 Remote-SSH 插件。
  2. 修改配置文件(~/.ssh/config):
    Host my-aliyun-server
      HostName 118.31.115.35
      User root
      Port 22
      IdentityFile ~/.ssh/id_rsa  # 如果使用密钥
    
  3. 点击左下角 远程连接图标 选择主机。

4. 常见问题及解决方案

(1)问题:Ping不通公网IP

  • 原因:阿里云默认禁止ICMP(ping)。
  • 解决
    在安全组中添加 ICMP协议 的入方向规则。

(2)问题:SSH连接超时

  • 可能原因
    1. 安全组未放行22端口。
    2. 服务器防火墙(如 iptables/ufw)阻止连接。
    3. 弹性公网IP未绑定。
  • 排查步骤
    # 在服务器检查SSH服务状态
    sudo systemctl status sshd
    
    # 检查防火墙规则(Ubuntu)
    sudo ufw status
    

(3)问题:VS Code无法连接

  • 解决方案
    • 确保 ~/.ssh/config 配置正确。
    • 检查 Remote-SSH日志(VS Code输出面板)。

5. 最佳实践建议

  1. 改用SSH密钥登录(比密码更安全):
    ssh-keygen -t rsa  # 生成密钥对
    ssh-copy-id root@118.31.115.35  # 上传公钥
    
  2. 修改默认SSH端口(如 2222)减少攻击风险。
  3. 定期监控ECS状态
    • 使用 topdf -hnetstat -tuln 查看资源占用。
    • 在阿里云控制台设置 云监控报警

6. 总结

  • 公网IP用于外网访问(如SSH、HTTP),内网IP用于VPC内部通信。
  • 连接ECS必须使用公网IPifconfig 查到的内网IP仅限内网使用。
  • VS Code Remote-SSH 是高效管理远程服务器的利器,配合安全组和密钥登录更安全。

如果你遇到其他问题,欢迎在评论区留言讨论! 🚀

(原创不易,如果对你有帮助,请点赞+收藏支持!)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐