39

私は現在、Django フレームワークを試しており、作成したものを同僚/友人と共有/提示/表示します。VMware経由でWin7のUbuntuで作業しています。したがって、私の現在の pub-IP とポート (例: http://123.123.123.123:8181/django-app/ ) を友人に送信して、テストできるようにしたいと考えています。

問題は-私はdjangoのDevサーバーを使用しています(python /path-to-django-app/manage.py runserver $IP:$P​​ORT)。

devserver を公開するにはどうすればよいですか?

編集:

あ、言い忘れたことがあります。悲しいことに、UbuntuでVMwareを使用しています。現在の int-IP 192.168.xx.xx を返し、それを環境変数 ($CUR_IP) に保存するシェルスクリプトがあるので、django の devserver を実行するたびに、単純に実行します

python /path-to-django-site/manage.py runserver $CUR_IP:8080

このようにして、仮想マシンの外部で使用できる http アドレス (例: http://192.168.40.145:8080/app-name/ ) になります。ホスト(win7)マシンでテストできました。それが実際に私が質問した理由です。ext-IPを使ってrunserverを外でも使えるようにする方法はないかと思った

4

9 に答える 9

95
python manage.py runserver 0.0.0.0:8181

これにより、ポート 8181 ですべての IP をリッスンする開発サーバーが実行されます。

2011 年 6 月 17 日現在、Django 開発サーバーはデフォルトでスレッド化されていることに注意してください(チケット #1609)

ドキュメントから:

デフォルトの IP アドレス 127.0.0.1 は、ネットワーク上の他のマシンからはアクセスできないことに注意してください。ネットワーク上の他のマシンから開発サーバーを表示できるようにするには、独自の IP アドレス (例: 192.168.2.1) または 0.0.0.0 を使用します。

于 2010-07-25T11:09:03.430 に答える
11

rubyがインストールされていると仮定すると、localtunnelを取得する必要があります。

gem install localtunnel

次に、Python開発サーバーを次のコマンドで起動します。

python manage.py runserver 0.0.0.0:8000

別のシェルで、localtunnelを開始します。

localtunnel -k ~/.ssh/id_rsa.pub 8000 

これにより、ローカルサーバーにアクセスするためのURLが出力されます。

Port 8000 is now publicly accessible from http://xxxx.localtunnel.com

それでおしまい。

于 2012-09-06T08:05:53.477 に答える
5

192.168.*.*LAN プライベート アドレスです。適切な VMWare (または他の VM マネージャー) とファイアウォールの呪文を実行して LAN からアクセスできるようにしても、LAN の外部、つまりインターネットからアクセスすることはできません。全体として (このような開発サーバーはセキュリティとスケーラビリティを考慮して設計されていないため、これも良いことです)。

LAN プライベート IP を持つマシンの一部のポートをインターネット全体から見えるようにするには、「仮想サーバー」機能を備えたルーターが必要です (安価なルーターを含む多くのルーターがそれを提供していますが、有効にすることについて具体的に説明することは不可能です)。各ブランドには独自の特異な方法があるためです)。また、dyndnsまたは他の同様のサービスを使用して、安定した DNS 名を常に変化するパブリック IP に関連付けることをお勧めします (もちろん、接続プロバイダーから静的 IP を購入する場合を除きますが、後者のオプションは常にコストが高くなります) )。

質問はソフトウェア開発とはあまり関係がなく、サーバーの管理と構成に関係しているため、superuser.comまたはserverfault.comがより良い回答と詳細を提供する可能性があります(質問で構成の詳細をすべて提供すると)。

于 2010-07-25T16:11:17.607 に答える
1

Virtualboxを使用している場合、VBのネットワーク設定を「NAT」から「ブリッジアダプター」に変更する必要があります。次に、Linux を再起動します。実行sudo ifconfigすると、IP アドレスが のように表示されます192.168.*.*。最後のステップは runserver です

python manage.py runserver 192.168.*.*:8000

乾杯!

于 2014-01-03T02:54:09.413 に答える
0

VMWare でブリッジ ネットワークを構成し、Ubuntu ファイアウォールでターゲット ポートへのアクセスを許可する必要があります。

于 2010-07-25T12:45:16.710 に答える
0

または、 cotunnelを使用できます。ubuntu (VMware 内) で cotunnel を実行するだけで、ローカル側で使用している cotunnel ダッシュボードのトンネル ポートを変更できます。公開 URL を提供し、その URL を友達と共有できます。

Django サーバーは 127.0.0.1 または 0.0.0.0 (私は 0.0.0.0 を好みます) をリッスンできますが、cotunnel には関係ありません。

于 2020-05-09T16:19:43.487 に答える