我試圖建立一個路由器後面的服務器,我已經能夠將其降低到以下問題:服務器的路由器後面
我用:
- 西門子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