以通过Nginx作为反向代理服务器,对家内群晖进行反向代理为例,确保外部访问的安全性,以下是详细步骤:
1. 准备工作
- VPS:确保VPS有公网IPv4地址。
- 家内群晖:确保群晖NAS已配置并可通过内网访问。
- 域名:建议使用域名并通过DNS解析到VPS的公网IP。
2. 配置VPS
2.1 安装Nginx
在VPS上安装Nginx作为反向代理服务器:
sudo apt update
sudo apt install nginx
2.2 配置Nginx
编辑Nginx配置文件,通常在/etc/nginx/sites-available/default或新建一个配置文件:
sudo nano /etc/nginx/sites-available/synology
添加以下内容:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://your-home-ip:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
yourdomain.com:替换为你的域名。your-home-ip:替换为家内群晖的内网IP地址。
启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/synology /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
3. 配置家内群晖
3.1 设置固定内网IP
确保群晖NAS在内网中有固定IP地址。
3.2 配置端口转发
在家内路由器上设置端口转发,将VPS的流量转发到群晖NAS:
- 外部端口:80(HTTP)或443(HTTPS)
- 内部IP:群晖NAS的内网IP
- 内部端口:5000(群晖默认HTTP端口)
4. 配置SSL/TLS(可选但推荐)
4.1 获取SSL证书
使用Let’s Encrypt获取免费SSL证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
4.2 更新Nginx配置
Certbot会自动更新Nginx配置以支持HTTPS。确保Nginx配置如下:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
location / {
proxy_pass http://your-home-ip:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
5. 测试访问
通过浏览器访问https://yourdomain.com,确保能安全访问家内群晖。
6. 安全加固
- 防火墙:在VPS和家内路由器上启用防火墙,仅允许必要端口。
- VPN:考虑使用VPN替代直接暴露群晖服务。
- 定期更新:保持VPS和群晖系统的软件更新。
通过这些步骤,你可以安全地通过VPS反向代理访问家内群晖。
