相关疑难解决方法(0)

如何绑定和发送Google Cloud Forwarding规则IP地址?

我已按照Google云端平台上的使用协议转发的说明进行操作.所以我现在有这样的事情:

$ gcloud compute forwarding-rules list
NAME    REGION    IP_ADDRESS      IP_PROTOCOL  TARGET
x-fr-1  us-west1  104.198.?.??    TCP          us-west1-a/targetInstances/x-target-instance
x-fr-2  us-west1  104.198.?.??    TCP          us-west1-a/targetInstances/x-target-instance
x-fr-3  us-west1  104.198.??.???  TCP          us-west1-a/targetInstances/x-target-instance
x-fr-4  us-west1  104.198.??.???  TCP          us-west1-a/targetInstances/x-target-instance
x-fr-5  us-west1  104.198.?.???   TCP          us-west1-a/targetInstances/x-target-instance
Run Code Online (Sandbox Code Playgroud)

(注意:名称已被更改,问号已被替换.我不确定保持这些私密但更安全而不是遗憾.)

我的实例"x"在"x-target-instance"中,并且具有五个转发规则"x-fr-1"到"x-fr-5".我在"x"上运行nginx,我可以从它的6个外部IP地址中的任何一个访问它(1个用于实例+ 5个转发规则).到现在为止还挺好.

我现在感兴趣的是将服务器绑定到这些外部IP地址.为了探索,我尝试使用Python:

import socket
import time

def serve(ip_address, port=80):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind((ip_address, port))
    try:
        sock.listen(5)
        while True:
            con, _ = sock.accept()
            print con.getpeername(), con.getsockname()
            con.send(time.ctime())
            con.close()
    finally:
        sock.close()
Run Code Online (Sandbox Code Playgroud)

现在我可以绑定"0.0.0.0",我得到一些有趣的结果:

>>> serve("0.0.0.0")
('173.228.???.??', 57288) ('10.240.?.?', 80)
('173.228.???.??', 57286) ('104.198.?.??', …
Run Code Online (Sandbox Code Playgroud)

python networking google-compute-engine google-cloud-platform

11
推荐指数
1
解决办法
1727
查看次数