Nginx Proxy Manager (NPM)是一款基于Nginx的轻量级管理程序,它提供了极其方便的 Web 界面,让用户能够以最简单的方式实现网站反向代理、自动化SSL证书申请(HTTPS)以及端口转发(本教程在md5.pw同步发布)。
需要准备的事项:
1.拥有一台搬瓦工的服务器(参考教程);
2.服务器在运行,且安装了debian12系统(参考教程);
3.拥有一个域名(反向代理需要);
4. SSH 连接工具已准备就绪(例如 Xshell)。
一、连接服务器并安装Nginx Proxy Manager
Nginx Proxy Manager 推荐使用 Docker 容器化部署,本部分将一并完成 Docker 环境的安装。
1.SSH 连接与基础工具安装
使用 SSH 工具连接到您的搬瓦工服务器(推荐使用 Xshell 等工具,如果你是个人或家庭使用,可以下载 Xshell:下载链接),
然后执行下方命令安装必要的工具。
apt-get install wget curl vim sudo unzip -y
为了优化编辑体验,执行以下命令,防止后期使用 vi 编辑时出现剪贴板或格式报错:
echo set clipboard=unnamed >> ~/.vimrc
2.安装并启动Docker
执行下方命令安装 Docker,安装过程预计耗时数十秒。
wget -qO- get.docker.com | bash
Docker 安装完成后,执行以下命令启动 Docker 服务并设置开机自启:
systemctl start docker systemctl enable docker
3.创建Nginx Proxy Manager目录
创建一个目录用于存放 Docker 配置文件和相关数据,并进入该目录:
mkdir ngingx-proxy-manager && cd ngingx-proxy-manager
4.创建Docker Compose文件
在 nginx-proxy-manager 目录下,执行下方命令,创建一个 docker-compose.yml 文件:
vi docker-compose.yml
进入 vi 编辑页面后,按下键盘 i 键进入编辑模式,将以下配置复制进去, 配置粘贴完毕后,按下键盘 ESC 键退出编辑模式,然后输入 :wq(写入并退出)。
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
network_mode: host
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt

注意:这里为了便于后续端口转发操作,使用了host模式,意味着所有端口都对于这个docker容器开放了。
5.启动Nginx Proxy Manager
在 nginx-proxy-manager 目录下,执行以下命令启动服务:
docker compose up -d
显示容器 ID 等信息,则说明启动成功。

二、使用Nginx Proxy Manager配置反向代理
反向代理通常需要使用域名。在这个阶段,我们将使用一个示例域名演示,对 OpenList 访问地址设置反向代理。
1.登录Nginx Proxy Manager
Nginx Proxy Manager 默认登录地址为 http://你的搬瓦工IP地址:81
第一次登录会提示你设置管理员信息,Email 地址请填写有效的邮箱。

2.设置中文
Nginx Proxy Manager现在支持中文,可以在右上角直接设置。
3.设置反向代理
进入 「代理服务列表」,点击 「添加代理服务」。

在「详情」选项卡,「域名」填写用于反向代理的域名,「转发主机名/IP」填写后端服务的 IP 地址或域名(因为 OpenList 部署在同一台服务器上,这里使用本地地址 127.0.0.1),「转发端口」填写后端服务的端口( OpenList 是5244)。

因为我们要反向代理的是 OpenList 访问地址,所以要添加以下额外参数,处理文件传输和大文件下载(如果你只是反向代理普通网页,不需要此操作)。
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:5244;
proxy_http_version 1.1;
# the max size of file to upload
client_max_body_size 20000m;
}

4. 申请SSL证书并开启HTTPS
点击 「SSL」 选项卡,申请 Let’s Encrypt 免费证书,并开启 强制SSL 选项,以提高网站安全性。

到这里,反向代理就成功,SSL部分已经显示Let’s Encrypt了。

完成设置后,访问用于反代的域名,可以看到 openlist 登录界面。

三、配置Nginx Proxy Manager的端口转发
通过端口转发,可以实现类似远程加速的效果,比如为远程桌面(RDP)连接提供搬瓦工优化线路加速。
1.设置转发的端口
进入 「端口转发列表」,点击 「添加」。

然后填写参数信息,「入站端口」填21000,「转发主机」填写需要远程的 Windows 主机的实际 IP 地址。「转发端口」填写远程服务端口(RDP的默认端口是3389)。「协议」因为 RDP 连接同时支持 TCP 和 UDP,因此请将 TCP 和 UDP 都打开,以获得最流畅的远程体验。

2.测试转发情况
设置并保存后,您现在可以通过访问 搬瓦工IP地址:21000 来连接到您的 Windows 主机。
此时,你的远程连接流量将通过搬瓦工的 CN2 GIA/CMIN2 等优化线路传输,实现高效的远程加速。

端口转发的应用场景非常广泛,您可以根据实际需求发掘更多的用途,例如远程游戏串流、特定服务访问等。




评论