linux普通用户监听1024以下的端口(80、443)

发布时间 2024-01-10 17:13:01作者: 自律™
Linux 普通用户(非 root)监听 1024 以下的端口(如 80 或 443)的方法和具体操作步骤:

### 1. 使用 `authbind` 工具
- **安装 `authbind`**:
  sudo apt-get install authbind
- **授权特定端口**(以 80 端口为例):
  sudo touch /etc/authbind/byport/80
  sudo chown [普通用户名] /etc/authbind/byport/80
  sudo chmod 500 /etc/authbind/byport/80
- **使用 `authbind` 启动应用**:
  authbind --deep [应用启动命令]

### 2. 使用 `iptables` 进行端口重定向
- **将高端口重定向到低端口**(例如,将 8080 端口重定向到 80 端口):
  sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

### 3. 使用 `setcap` 赋予特定权限
- **给应用的可执行文件赋予 `CAP_NET_BIND_SERVICE` 权限**:
  - 对 Java 应用:
    sudo setcap 'cap_net_bind_service=+ep' /path/to/java
  - 对 Nginx:
    sudo setcap 'cap_net_bind_service=+ep' /path/to/nginx