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

如何让无公网的EC2B借助有公网的EC2A访问互联网及安装YUM包?

可以借助EC2A实现EC2B访问互联网/安装YUM包,以下是两种可行方案

方案一:SSH动态端口转发(临时快速场景)

无需在EC2A额外部署服务,适合临时执行YUM操作的场景。

  1. 从本地登录EC2A时建立动态SOCKS代理:

    ssh -D 1080 -C -N ec2-user@<EC2A公网IP>
    

    参数说明:-D指定动态代理端口,-C压缩传输数据,-N仅建立连接不执行远程命令。

  2. 通过EC2A跳转登录EC2B后,配置代理访问互联网:

    • 临时生效(重启后失效):
      export http_proxy=socks5://<EC2A私有IP>:1080
      export https_proxy=socks5://<EC2A私有IP>:1080
      
      执行完直接使用yum install <包名>或yum update即可。
    • 永久生效:编辑/etc/yum.conf,在文件末尾添加:
      proxy=socks5://<EC2A私有IP>:1080
      

方案二:EC2A部署Squid代理(长期稳定场景)

适合EC2B长期需要访问互联网的场景,配置一次即可持续使用。

  1. 在EC2A上安装并配置Squid:

    • 安装Squid服务:
      sudo yum install squid -y
      
    • 修改Squid配置文件/etc/squid/squid.conf:
      找到http_access deny all规则,在其上方添加允许EC2B所在子网访问的ACL规则(示例子网为10.0.0.0/24,请替换为实际子网):
      acl local_subnet src 10.0.0.0/24
      http_access allow local_subnet
      
      保留原有的http_access deny all在配置文件最后。
    • 启动并设置开机自启:
      sudo systemctl start squid
      sudo systemctl enable squid
      
    • 确保EC2A的安全组允许EC2B的私有IP访问3128端口(Squid默认端口)。
  2. 在EC2B上配置代理:

    • 临时生效:
      export http_proxy=http://<EC2A私有IP>:3128
      export https_proxy=http://<EC2A私有IP>:3128
      
    • 永久生效(全局代理):
      创建代理配置文件并加载:
      echo "export http_proxy=http://<EC2A私有IP>:3128" | sudo tee /etc/profile.d/proxy.sh
      echo "export https_proxy=http://<EC2A私有IP>:3128" | sudo tee -a /etc/profile.d/proxy.sh
      source /etc/profile.d/proxy.sh
      
      或仅给YUM配置代理:编辑/etc/yum.conf添加:
      proxy=http://<EC2A私有IP>:3128
      

注意事项

  • 确认EC2A的安全组允许出站80/443流量,保证其能正常访问互联网获取YUM源。
  • 使用Squid时,需根据EC2B的实际私有IP段调整ACL规则,避免开放不必要的访问权限。
  • SSH隧道方式依赖本地的SSH连接,连接断开后代理会失效,仅适合临时操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:55:06