谷歌云:如何切换双栈子网并更新VM实例栈类型(IPv6支持)
谷歌云VM配置双栈子网+IPv6以获取Let's Encrypt证书步骤
一、先停止目标VM实例
谷歌云要求更改VM子网必须先停止实例,所以第一步先去VM实例列表,选中你的Nginx VM,点击「停止」按钮。
二、创建双栈子网
- 打开谷歌云控制台的「VPC网络」→「子网」页面
- 点击「创建子网」,按以下配置:
- VPC网络:选择和你的VM当前所在的同一个VPC(避免跨VPC的网络问题)
- 子网名称:自定义一个好记的名字(比如
dual-stack-subnet) - 地区:必须和你的VM实例所在地区一致
- IPv4地址范围:可以指定一个未被占用的CIDR(比如
10.0.1.0/24,不确定的话让系统自动生成即可) - IPv6:勾选「启用IPv6访问」,选择「自动分配IPv6范围」(新手推荐)
- 栈类型:选择「双栈(IPv4和IPv6)」
- 点击「创建」完成子网创建
三、将VM迁移到双栈子网
- 回到VM实例列表,选中已停止的VM,点击「编辑」
- 找到「网络接口」部分,点击当前子网旁边的「编辑」按钮
- 在「子网」下拉菜单中,选择刚创建的双栈子网
- 保存更改
四、启用VM的双栈IP配置
- 还是在VM的编辑页面,找到「网络接口」的「IP栈类型」选项
- 从「仅IPv4」切换为「双栈」
- 新手直接选「自动」分配IPv6地址;如果需要静态地址,可在「IPv6地址」部分选择「静态」并分配对应地址
- 保存并启动VM实例
五、配置Nginx和防火墙
- Nginx监听IPv6:编辑你的Nginx站点配置文件(比如
/etc/nginx/sites-available/your-site.conf),确保监听规则包含IPv6:
重启Nginx生效:listen 80; listen [::]:80; listen 443 ssl; listen [::]:443 ssl;sudo systemctl restart nginx - 开放IPv6防火墙端口:
- 打开「VPC网络」→「防火墙」页面,点击「创建防火墙规则」
- 名称:比如
allow-ipv6-http-https - 网络:选择对应VPC
- 方向: ingress
- 目标:给你的VM加个标签(比如
nginx-server),这里选「目标标签」并填入该标签 - 来源IPv6范围:
::/0 - 协议和端口:勾选「tcp」,填入
80,443 - 保存规则
六、申请Let's Encrypt证书
先安装certbot(如果没装):sudo apt install certbot python3-certbot-nginx
然后运行命令申请证书:
sudo certbot --nginx
按照提示完成域名验证和证书配置即可,此时验证会同时支持IPv4和IPv6,不会再出现验证错误。
内容的提问来源于stack exchange,提问作者Kris Swat
相关产品推荐
相关产品推荐

