带有端口的本地主机的主机名-OSX [关闭]


14

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

因为我正在编写的代码需要引用域名,所以我希望保持约定,dev.myHost.com并指向从Node运行的non-port-80服务(从技术上来说,我在Harp.js上运行,在on上运行Sails.js)。

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

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

Answers:


23

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

如果我是对的,我建议您进行如下设置:

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

192.168.0.10
192.168.0.11

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

第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.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

重要说明请注意,ipfw规则和回送接口别名不是永久性的,并且在重新启动后将不再存在。因此,请考虑添加启动脚本。


1
工作美丽。这正是我想要的。
mondo 2014年

1
很高兴它有效!我非常确定这不是完全“重复”的;)
krisFR 2014年

在Mac OS sierra上获取sudo:ipfw:找不到命令
ClintM

3
@ClintM:ipfw已由代替pfctl。有关如何打开端口的示例:gauravsohoni.wordpress.com/2015/04/14/mac-osx-open-port
Joe Atzberger

以pfctl预期格式更新答案会非常好。
西蒙(Simon)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.