當我在預設VPC中建立實例時,檢查ifconfig,它顯示netmask is /32
,如下所示:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
inet 10.138.0.2 netmask 255.255.255.255 broadcast 10.138.0.2
inet6 fe80::4001:aff:fe8a:2 prefixlen 64 scopeid 0x20<link>
ether 42:01:0a:8a:00:02 txqueuelen 1000 (Ethernet)
RX packets 4728 bytes 39926123 (38.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3900 bytes 442039 (431.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
問題是我嘗試安裝的應用程式不允許/32
子網路。我嘗試建立一個測試 VPC 網絡,但如果使用該網絡,我將無法再透過 ssh 連接到實例。如果嘗試將輔助範圍新增至預設子網路但未成功。我嘗試擴展網路掩碼,但sudo ifconfig eth0 10.138.0.2 netmask 255.255.255.0
僅使 ssh 連線凍結(使用 Web 瀏覽器進行 ssh)。之後我無法 ssh 到實例。對此還有哪些方法?
我在這裡看到問題,但看起來沒有得到答案:Google Cloud Compute 將 /20 子網路遮罩設定為內部介面
答案1
不幸的是,這個參數的設定方式是為了更好地與 Google Cloud Platform 整合。
關於為什麼在建立新的VPC時不能使用SSH,您必須建立新的防火牆規則,因為它們只適用於一個VPC,因此舊的防火牆規則不適用於新的VPC。
我強烈建議在應用程式的支援下提出問題,以便與 Google Cloud Platform 整合。
答案2
對於透過 Google 搜尋到達這裡的任何人,以下是我在 GCE 文件中找到的內容。逐字引用:
要使用 /32 以外的網路遮罩配置接口,您應該使用標誌 --guest-os-features MULTI_IP_SUBNET 建立映像,並使用它來建立您的實例。例如,如果您使用基於 debian-9 的映像,則可以使用下列命令建立映像:
gcloud compute images create debian-9-multi-ip-subnet \
--source-disk debian-9-disk \
--source-disk-zone us-west1-a \
--guest-os-features MULTI_IP_SUBNET