扭曲的服务器无法通过互联网连接

时间:2016-09-08 21:07:46

标签: twisted python-3.4 linuxmint

我已经编写了服务器(我已经使用过python 3,twisted,tkinter)当我尝试在我的本地机器上连接它时,一切都很好,例如通过telnet我这样做 - " telnet localhost port",但当我尝试这个" telnet ip_address port"它不会被连接起来。问题是为什么?为了简化这一点,这里有简单的代码:

from twisted.internet import reactor, protocol

class Echo(protocol.Protocol):

    def dataReceived(self, data):
        self.transport.write(data)

def main():
    factory = protocol.ServerFactory()
    factory.protocol = Echo
    reactor.listenTCP(8123, factory)
    reactor.run()

if __name__ == '__main__':
    main()

1 个答案:

答案 0 :(得分:0)

以下是需要完成的工作的概述。要开始,您必须绑定到localhost以外的接口。或者,您可以监听所有接口(即interface = '0.0.0.')。在您的代码中,您需要将界面附加到reactor.listenTCP()函数:

reactor.listenTCP(8123, factory, interface='0.0.0.0')

接下来,您必须确保路由器和服务器上允许传入的TCP流量。您还必须将来自路由器的传入WAN接口的流量转发到服务器上的接口。在服务器端,您必须确保防火墙允许传入流量。因此,假设您的ISP提供的WAN IP地址为72.10.20.30,并且您的Twisted服务器正在服务器的接口192.168.1.100:8123上运行。转到您的路由器,查找端口转发或NAT功能,然后设置它们,以便将WAN IP请求转发到您服务器的IP。

采取这些步骤的额外预防措施,因为这可能会使您的网络非常脆弱!使用OpenShift或Heroku等服务来托管你的Python项目可能会更好。