0

我的服务器有 3 个 IP 地址,127.0.0.1、192.168.0.100 和一个互联网 IP 地址。我将在此服务器上运行由 python 编写的服务,但我不希望它在互联网上公开。我正在使用 BaseHTTPRequestHandler 类来实现这个服务,那么如何只绑定 127.0.0.1 和 192.168.0.100 而不是另一个呢?

4

2 回答 2

0

通常,路由器有一个选项,您可以允许服务器可见或不可见。如果在路由器上您将服务器设置为不可见,则您的服务器将无法通过 Internet 访问。

于 2013-10-24T03:42:26.763 回答
0

我认为你有两个选择。

1) 监听所有接口,但覆盖 BaseHTTPRequestHandler。init检查客户端地址,如果连接来自不需要的接口,则断开连接

2)创建多个套接字,每个要监听的地址一个。SocketServer.serve_forever() 是阻塞的,所以你要么需要每个地址使用一个线程,要么切换到更复杂的框架,比如 twisted。

于 2013-10-24T04:12:38.820 回答