如何配置AWS EC2安全组,允许连接iPhone热点的Mac通过SSH访问
连接iPhone热点的Mac通过SSH访问AWS EC2的解决方案
方案1:自动更新安全组SSH入站规则
用iPhone热点时,你的公网IP是运营商动态分配的,手动查询的IP很快会失效。可以写个脚本自动同步当前IP到安全组:
- 先确保已安装AWS CLI并配置好具备安全组修改权限的凭证
- 创建以下脚本(保存为
update-sg-ssh.sh):# 获取当前公网IPv4 CURRENT_IP=$(curl -s https://api.ipify.org)/32 # 替换为你的安全组ID SECURITY_GROUP_ID="sg-xxxxxxxxxxxxxxxxx" SSH_PORT=22 # 清理旧的全开放规则(如果之前加过) aws ec2 revoke-security-group-ingress --group-id $SECURITY_GROUP_ID --protocol tcp --port $SSH_PORT --cidr 0.0.0.0/0 2>/dev/null # 添加当前IP的SSH权限 aws ec2 authorize-security-group-ingress --group-id $SECURITY_GROUP_ID --protocol tcp --port $SSH_PORT --cidr $CURRENT_IP - 每次切换热点后运行
chmod +x update-sg-ssh.sh && ./update-sg-ssh.sh,就能自动把当前IP加入安全组
方案2:用AWS Systems Manager Session Manager连接
完全不需要开放22端口到公网,依赖AWS原生服务:
- 前提:EC2实例已安装SSM Agent(Amazon Linux 2默认预装,其他系统需手动安装),且实例关联了带
AmazonSSMManagedInstanceCore权限的IAM角色 - 操作步骤:
- 在Mac上安装AWS CLI和Session Manager插件
- 运行命令直接连接实例:
aws ssm start-session --target i-xxxxxxxxxxxxxxxxx(替换为你的实例ID)
- 这个方法不受公网IP变化影响,任何能连AWS的网络都能用
方案3:搭建VPN中转
在EC2所在VPC内部署VPN服务(如OpenVPN),Mac先连接VPN进入VPC私网:
- 配置安全组放行VPN端口(如UDP 1194),并允许VPN私网IP段访问EC2的22端口
- Mac连接VPN后,直接用EC2的私网IP进行SSH连接,无需公网IP规则
方案4:启用IPv6规则
部分运营商的蜂窝网络会分配IPv6地址,你可以尝试:
- 获取Mac的IPv6地址:
curl -s https://api6.ipify.org - 在EC2安全组中添加IPv6入站规则,允许该地址访问22端口
- 用EC2的IPv6地址进行SSH连接
内容的提问来源于stack exchange,提问作者techdog
相关产品推荐
相关产品推荐

