我正在尝试在我的服务器上运行一个简单的TCP服务器。我在Twisted examples page上使用echoserv.py和echoclient.py。当我在服务器上运行echoserv.py时,我可以使用echoclient.py中的以下内容正常连接:
reactor.connectTCP('localhost', 8000, factory) <- for a localhost connection
reactor.connectTCP('192.168.0.250', 8000, factory) <- for a lan connection
但是当我尝试通过互联网远程连接时,我在echoclient.py中使用以下行:
reactor.connectTCP('mydomain.com', 8000, factory)
然而,当我尝试运行echoclient.py时,有一个暂停,然后我得到:
connection failed: User timeout caused connection failure.
我知道它正在对我的域名做些什么,因为当我做一个随机域名时,我得到:
connection failed: Connection was refused by other side: 111: Connection refused.
我的所有端口都已正确配置为端口8000,我确定不是我的ISP阻止端口(我可以随时使用随机端口与其他应用程序)。我也试过使用8000以外的端口,但无济于事。如果有帮助,这是我的路由器页面中的端口转发线:
[X] tcp_server 192.168.0.250 TCP 8000/8000 always edit delete
知道为什么会这样吗?
答案 0 :(得分:5)
当您对路由器进行编程以将输出端口转发到入站服务器时,它实际上只有在客户端(尝试连接的人)真正位于您的网络之外时才会真正起作用。您,从您的网络内部,无法使用它,它将无法为您工作。你会觉得它不起作用,但确实如此。至少对那些外面的人来说。
搜索Port Forwarding Tester at Google以获取相关证明。这个(谷歌的第一个结果)工作得很好:http://www.yougetsignal.com/tools/open-ports/
答案 1 :(得分:1)
您是否尝试过以下操作?