mac sierra 下如何方便地监听1024以下的端口??
发布于 8 个月前 作者 p2227 765 次浏览 来自 问答

操作系统 mac 10.12.5 有这么一段代码

var http = require("http");
http.createServer(function(request, response) {
    response.writeHeader(200, {"Content-Type": "text/html"});
    response.write("Hello World!");
    response.end();
}).listen(80);

启动之后报 EACCESS 搜索这个帖子可知 https://cnodejs.org/topic/50220732f767cc9a51e9fcef ,加sudo 可以解决这个问题 里面还有一个方法是iptables

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
sudo iptables-save

但是发现sierra下没有iptables这个命令,那应该用什么方法代替呢?因为不想每次启动node都敲密码

7 回复

我记得是是因为内置的apache占用了80端口

@i5ting 用sudo是可以运行的,但是我并不想每一次启动都输入密码

@godghdai chown root.root /path/to/application 有点危险不想这样做 chmod u+s /path/to/application 无效

第二种方法: CAP_NET_BINDSERVICE -bash: setcap: command not found

第三种方法: Port Forwarding 这就是我正文说的,sierra下没有iptables这个命令

第四种方法: 没看懂

总体说来我是想用第三种方法的,毕竟风险最小,但找不到方法。

反向代理转呀

@i5ting 你的意思是用nginx吗?这也是一种方法,nginx重启的频率比较低,有无更好一点的方法

@p2227 nginx占用80,然后反向代理到你的3000端口

回到顶部