web-dev-qa-db-ja.com

アクセス可能なPythonサーバー

Python library socketを使用してプログラムを作成していますが、友人が自宅から接続できるようにしたいと考えています。プログラムの残りの部分がありますローカルホストとローカルネットワークでうまく動作しますが、私が言ったように、友人が接続できるようにしたいです。

私の推測では、グローバル IPアドレス を使用する必要があり、 PySTUN で取得できますが、ソケット/サーバーをグローバルにバインドしようとするたびにIPアドレスは、このエラーを無効にします:

socket.error:[Errno 99]要求されたアドレスを割り当てることができません `

この問題を修正するにはどうすればよいですか?

1
RPiAwesomeness

基本的に、ネットワークを正しく構成する必要があります。また、ローカルインターフェイス(lo)のローカルアドレスではなく、外部ネットワークインターフェイス(eth0など)のIPアドレスにバインドする必要があります。ルーターを使用している場合、パブリックアドレス(ルーターに割り当てられているアドレス)はコン​​ピューターのアドレスではありません。ローカルにバインドし、使用するポートを開くようにルーターに指示し、すべてのトラフィックをコンピューターに転送する必要があります。ルーターによっては、UPnP/STUNを使用してこれを実行できる場合があります。または、手動で構成する必要がある場合があります。

1
dobey