我试图建立一个路由器后面的服务器,我已经能够将其降低到以下问题:服务器的路由器后面
我用:
- 西门子SL2 -141路由器。
- Windows 7 64位与Python 2.7。
我运行:
server.py:
import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind((IP, 8080)) sock.listen(1) sock.accept() print 'success' sock.close()
client.py:
import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((IP, 8080)) sock.close()
- 当IP ='127.0.0.1'它的工作原理是。
我设置静态IP:
> Network And Sharing Center > Change Adaper Settings > Local Area Connection > Properties > Internet Protocol Version 4 (TCP/IPv4) > Properties > Use The Following IP Address: IP Address: 10.0.0.200 Subnet Mask: 255.0.0.0 Default Gateway: 10.0.0.138 > Use The Following DNS Server Addresses: Preferred DNS Server: 10.0.0.138 Alternate DNS Server: - - - -
当IP = '10 .0.0.200' 它的工作原理。
我设置端口转发在我的路由器:
> http://10.0.0.138/ > Username: Admin > Password: Admin > Advanced > Virtual Server > Port Forwarding > Add: User Defined: Test From Internal Host IP Address: ALL Forward to Internal Host IP Address: 10.0.0.200 Protocol: TCP External Packet Port Start: 8080 External Packet Port End: 8080 Forward To Internal Host Port Start: 8080 Forward To Internal Host Port End: 8080 > Apply (and reboot router, just in case).
据我了解,如果我离开服务器IP '10 .0.0.200' 和设置客户端IP到我的公网IP它应该工作,但它不起作用(“由于目标机器主动拒绝它而不能建立连接”)。
我试图与Apache服务器做同样的事情,结果是相似的:浏览本地主机的工作,浏览静态IP的工作,但在浏览公网IP没有工作(80端口给我的路由器设置页面,而端口8080只是无法连接)。
最后说明:
- 我关掉我的防火墙。
- 我检查了端口是打开的(http://www.canyouseeme.org/),它是。
- 我检查服务器正在监听(netstat -na | find/i“8080”),它确实如此。
任何想法是什么问题?
原来的路由器通过互联网没有路线我,所以公网IP不是用我的机器识别。我尝试通过Tor运行客户端(并浏览Apache服务器),并且一切正常。 谢谢。 – 2013-02-16 18:59:25