
我需要启动(使用 brew 安装的) nginx 的 80 端口,但是不希望被局域网访问,系统是 macOS Monterey 12.4
这种配置可以启动
server { listen 0.0.0.0:80; ... } 这种配置不行
server { listen 127.0.0.1:80; ... } 报错内容
bind() to 127.0.0.1:80 failed (13: Permission denied) 1 lscho 2022-06-29 10:38:42 +08:00 Permission denied 是权限不够,把 nginx 的用户加一下 root 权限,或者把 nginx 的用户改为自己,然后 sudo 启动试试 |
2 xtinput 2022-06-29 10:42:18 +08:00 上虚拟机呀 |
3 xtinput 2022-06-29 10:43:19 +08:00 直接在主机上部署服务器环境不好,可能会出现端口冲突 |
4 xtinput 2022-06-29 10:48:41 +08:00 https://github.com/gyf304/vmcli 直接用系统的虚拟机框架,没 GUI 的 |
5 PerFectTime 2022-06-29 10:54:21 +08:00 sudo nginx |
7 scp173 OP |
8 mww 2022-06-29 11:37:06 +08:00 好像低于 1024 端口就需要 root 权限,最简单的方法就是端口转发 |
10 lululau 2022-06-29 11:46:59 +08:00 把 1024 以下端口规定为受限端口其实是一个糟糕的设计,macOS 10.13 之后就没有受限端口这个机制了,只不过它的实现看起来有 bug ,这就是为什么绑到某个具体接口的时候仍然报 Perm denied: https://news.ycombinator.com/item?id=18302380 brew 安装的服务可以用 brew services 启动: 1. 以当前用户启动:brew services start nginx |
11 lululau 2022-06-29 11:47:36 +08:00 2. 以 root 用户启动,并设置为开机自启动:sudo brew services start nginx |
12 lululau 2022-06-29 11:56:53 +08:00 用 Alfred 的,也可以用我弄的这个 workflow: https://github.com/lululau/homebrew-services-alfred-workflow |
14 CEBBCAT 2022-06-29 12:26:37 +08:00 提问之前别忘了搜索 https://stackoverflow.com/a/44032912 |
16 scp173 OP 哎,目前的做法是绑定了所有网卡的 80 端口,在 [系统偏好设置] - [安全性与隐私] - [防火墙] [防火墙选项] 里禁用 nginx 的外部网络连接,以此达到使用 80 端口且防止局域网访问 |