ポートを持つローカルホストのホスト名-OSX [終了]


14

Node.jsマシン上で複数のWebサーバーをローカルで実行しようとしています。

私が書いているコードはドメイン名を参照する必要があるため、dev.myHost.comNodeから実行されている非port-80サービス(技術的にはHarp.jsとonを実行していますSails.js)の規則を維持し、ポイントしたいです。

  • だから、dev.hostOne.comを指している必要がありますlocalhost:123
  • dev.hostTwo.com指す必要がありますlocalhost:456

これは可能ですか?もしそうなら、どのように。

回答:


23

私の理解では、あなたは1台のローカル開発マシンのみを使用しているようです。つまり、DNSを提供するネットワークに接続していないということです。

私が正しい場合、以下のようなものをセットアップすることをお勧めします:

ステップ1: MAC OSに少なくとも2つのIPアドレス(ドメインごとに1つ)を割り当てます。

192.168.0.10
192.168.0.11

2番目のIPをセットアップするには、2番目のイーサネットアダプター(物理ではなく論理)を追加する必要があります。

ステップ2: DNSサーバーがないため/etc/hosts、次を追加してファイルをセットアップできます。

192.168.0.10     dev.hostone.com
192.168.0.11     dev.hosttwo.com

ステップ3:ループバックインターフェイスにエイリアスを割り当てます。

sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias

ステップ4:ipfwパケットを転送するためのセットアップ:

sudo ipfw add fwd 127.0.0.1,123 tcp from me to 192.168.0.10 dst-port 80
sudo ipfw add fwd 127.0.0.1,456 tcp from me to 192.168.0.11 dst-port 80

できました!

今:

ここに画像の説明を入力してください ここに画像の説明を入力してください


Node.jsケースをテストするために2つのWebサーバーをセットアップしました。

$ netstat -anp tcp | grep -E "123|456"
tcp4    0    0  127.0.0.1:123    *.*    LISTEN
tcp4    0    0  127.0.0.1:456    *.*    LISTEN

重要:ipfwルールとループバックインターフェイスエイリアスは永続的ではなく、再起動後には存在しなくなることに注意してください。そのため、起動スクリプトを追加することを検討してください。


1
美しく働きました。これはまさに私が望んでいたものです。
mondo 14

1
嬉しいです!私はそれが完全に「重複」ではないと確信していました;)
krisFR 14

Mac OSシエラでsudoを取得:ipfw:コマンドが見つかりません
ClintM

3
@ClintM:ipfwはに置き換えられましたpfctl。ポートを開く方法の例:gauravsohoni.wordpress.com/2015/04/14/mac-osx-open-port
Joe Atzberger

pfctlの期待される形式で回答を更新することは本当に素晴らしいことです。
サイモン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.