本文由【云老大】 TG@yunlaoda360 撰写
外部协议转发
-
创建防火墙规则:创建一个允许外部流量到达目标实例的防火墙规则。
bash
inigcloud compute firewall-rules create ALLOW_IPV4_FIREWALL_RULE_NAME \ --target-tags=allow-ipv4-ext \ --allow=tcp:80 \ --source-ranges=0.0.0.0/0
-
创建虚拟机实例:创建一个虚拟机实例,并在实例上安装所需的服务器软件(如Apache)。
bash
sqlgcloud compute instances create VM_INSTANCE_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ipv4-ext \ --metadata=startup-script='#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html sudo systemctl restart apache2'
-
创建目标实例:创建一个目标实例,该实例包含上一步创建的虚拟机。
bash
inigcloud compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --zone=ZONE
-
预留静态外部IP地址:预留一个静态外部IPv4地址。
bash
inigcloud compute addresses create IPV4_ADDRESS \ --region=REGION
-
创建转发规则:创建一个转发规则,将TCP流量转发到目标实例。
bash
inigcloud compute forwarding-rules create IPV4_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL \ --region=REGION \ --ip-protocol=TCP \ --address=IPV4_ADDRESS \ --ports=80 \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE
-
测试设置 :获取转发规则的IP地址,并使用
curl
命令测试设置是否成功。
内部协议转发
-
创建目标实例:创建一个目标实例,该实例包含虚拟机。
bash
inigcloud compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --zone=ZONE
-
创建转发规则:创建一个转发规则,将TCP流量转发到目标实例。
bash
inigcloud compute forwarding-rules create IPV4_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL \ --network-tier=PREMIUM \ --region=REGION \ --ip-protocol=TCP \ --ports=80 \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE
-
创建测试客户端虚拟机:创建一个测试客户端虚拟机,用于发送流量到转发规则的IP地址。
bash
inigcloud compute instances create CLIENT_VM_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh
-
测试设置 :获取转发规则的IP地址,并使用
curl
命令测试设置是否成功。