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