带有端口的本地主机的主机名 - OSX

mon*_*ndo 20 hosts mac-osx ipfw node.js

我正在尝试Node.js在我的机器上本地运行多个Web 服务器。

因为我正在编写的代码需要引用一个域名,所以我想保留一个约定dev.myHost.com并将其指向从 Node 运行的非端口 80 服务(从技术上讲,我在Harp.js 上运行一个,一个在 上运行Sails.js)。

  • 所以dev.hostOne.com应该指出localhost:123
  • 并且dev.hostTwo.com应该指向localhost:456

这可能吗?如果是,如何。

kri*_*sFR 29

根据我的理解,您似乎只使用一台本地开发机器,这意味着没有连接到任何提供 DNS 的网络。

如果我是对的,我建议设置如下所述的内容:

第 1 步:为您的 MAC OS 分配至少两个 IP 地址(每个域一个),假设:

192.168.0.10
192.168.0.11
Run Code Online (Sandbox Code Playgroud)

要设置第二个 IP,您必须添加第二个以太网适配器(逻辑而非物理)。

第 2 步:由于您没有 DNS 服务器,您可以/etc/hosts通过添加以下内容来设置您的文件:

192.168.0.10     dev.hostone.com
192.168.0.11     dev.hosttwo.com
Run Code Online (Sandbox Code Playgroud)

第 3 步:为您的环回接口分配别名:

sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias
Run Code Online (Sandbox Code Playgroud)

第 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
Run Code Online (Sandbox Code Playgroud)

你完成了!

现在 :

在此处输入图片说明 在此处输入图片说明


我已经设置了两个Node.jsWeb 服务器来测试您的案例:

$ 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
Run Code Online (Sandbox Code Playgroud)

重要提示:请注意,ipfw规则和环回接口别名不是持久的,重新启动后将不再存在。所以考虑添加一个启动脚本。

  • @ClintM:`ipfw` 已被替换为 `pfctl`。有关如何打开端口的示例:https://gauravsohoni.wordpress.com/2015/04/14/mac-osx-open-port/ (4认同)
  • 以 pfctl 预期格式更新答案会非常好。 (3认同)
  • 工作得很好。这正是我想要的。 (2认同)