群晖NAS再再折腾
最近电信把我的公网地址收回去了,之前做好的网络端口映射失效了,在公司已经不能愉快地访问家里的网络。原先网络结构示意图如下:







- 一台有公网IP地址的主机,简称公网主机,假设主机IP地址为123.123.123.123
 - 支持梅林固件的路由器(能够安装frpc)
 - 一个域名,以jiangguogang.club为例
 
- 对https://jiangguogang.club的访问会返回一个“Welcome”的信息
 - 对https://jiangguogang.club/photo的访问会转至NAS的相册,局域网的地址是http://192.168.1.200/photo
 - 对https://dms.jiangguogang.club的访问会转至NAS的管理界面,局域网地址是http://192.168.1.200:5000
 - 对https://webdav.jiangguogang.club的访问会转至NAS的WebDAV服务,局域网地址是http://192.168.1.200:5005
 - 对https://router.jiangguogang.club的访问会转至我的ASUS路由器,局域网地址是http://192.168.1.1
 - 所有使用http的访问都会被重定向至https
 

| 用户 | NGINX | frps | frpc | 
| https://jiangguogang.club | 直接返回"Welcome" | - | - | 
| https://jiangguogang.club/photo | 转127.0.0.1:5002 | TCP通道转frpc | 转192.168.1.200:80 | 
| https://dms.jiangguogang.club | 转127.0.0.1:5000 | TCP通道转frpc | 转192.168.1.200:5000 | 
| https://webdav.jiangguogang.club | 转127.0.0.1:5005 | TCP通道转frpc | 转192.168.1.200:5005 | 
| https://router.jiangguogang.club | 转127.0.0.1:5003 | TCP通道转frpc | 转192.168.1.1:80 | 
server {
    server_name jiangguogang.club;
    location / {
        add_header Content-Type text/plain;
        return 200 'Welcome! I am Jiang Guogang.';  #直接返回字符串
    }
    location /photo/ {
        proxy_pass http://127.0.0.1:5002;   #转至本地的5002端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
    #启用https,证书来自于Let's encrypt. 建议使用Certbot,具体参考Let's encrypt的官网
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/jiangguogang.club/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/jiangguogang.club/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
    server_name dsm.jiangguogang.club;
    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/dsm.jiangguogang.club/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/dsm.jiangguogang.club/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
    server_name webdav.jiangguogang.club;
    location / {
        proxy_pass http://127.0.0.1:5005;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/webdav.jiangguogang.club/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/webdav.jiangguogang.club/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
    server_name router.jiangguogang.club;
    location / {
        proxy_pass http://127.0.0.1:5003;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/router.jiangguogang.club/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/router.jiangguogang.club/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
#下面的配置的意思是:对http的访问将会重定向至https
server {
    if ($host = photo.jiangguogang.club) {
        return 301 https://$host$request_uri;
    }
    listen 80;
    server_name photo.jiangguogang.club;
    return 404;
}
server {
    if ($host = webdav.jiangguogang.club) {
        return 301 https://$host$request_uri;
    }
    listen 80;
    server_name webdav.jiangguogang.club;
    return 404;
}
server {
    if ($host = dsm.jiangguogang.club) {
        return 301 https://$host$request_uri;
    }
    listen 80;
    server_name dsm.jiangguogang.club;
    return 404;
}
server {
    if ($host = jiangguogang.club) {
        return 301 https://$host$request_uri;
    }
    listen 80;
    server_name jiangguogang.club;
    return 404;
}
server {
    if ($host = router.jiangguogang.club) {
        return 301 https://$host$request_uri;
    }
    listen 80;
    server_name router.jiangguogang.club;
    return 404;
}
[common]
#服务器监听端口7000
bind_port = 7000
#服务器web管理界面的访问端口
dashboard_port = 7001
#服务器web管理界面用户名
dashboard_user = admin
#服务器web管理界面密码(记得改成你的)
dashboard_pwd = 123456
#日志文件
log_file = ./frps.log
#日志等级
log_level = info
#日志保留天数
log_max_days = 3
#客户端访问token(记得改成你的)
token = 654321
#服务器端允许客户端请求的端口范围是5000到5009
allow_ports = 5000-5009
max_pool_count = 5
max_ports_per_client = 0
authentication_timeout = 900
#使用多路复用
tcp_mux = true
[common]
#服务器的地址(公网)
server_addr = 123.123.123.123
#服务器的监听端口
server_port = 7000
#服务器的token(改成你的)
token = 654321
#日志文件配置,调试的时候就靠这个了
log_file = /var/log/frpc.log
log_level = info
log_max_days = 3
#启用多路复用
tcp_mux = true
#协议,除了TCP之外还有一个经过改进的协议,但我这边使用时候遇到了点问题,还是用TCP吧
protocol = tcp
#不要登录失败就退出
login_fail_exit = false #应用名称
[dsm]
#http是基于TCP协议的,我统一都当成TCP来处理好了
type = tcp
#本地IP地址
local_ip = 192.168.1.200
#本地端口
local_port = 5000
#服务器上要打开的端口
remote_port = 5000
#使用加密
use_encryption = true
#使用压缩
use_compression = true [photo]
type = tcp
local_ip = 192.168.1.200
local_port = 80
remote_port = 5002
use_encryption = true
use_compression = true [webdav]
type = tcp
local_ip = 192.168.1.200
local_port = 5005
remote_port = 5005
use_encryption = true
use_compression = true [router]
type = tcp
local_ip = 192.168.1.1
local_port = 80
remote_port = 5003
use_encryption = true
use_compression = true
群晖NAS再再折腾的更多相关文章
- 群晖NAS再折腾
		
端口转发 两年前我买了一台双盘位的群晖NAS,配置两个4T的硬盘,这玩意儿一度改变了我使用电脑的模式,真是爽爆了!最最主要的功能就是我能用它规整我所有的资料,并且不管何时何地,只要有网就能访问.为了能 ...
 - 在群晖NAS上运行URLOS之后竟然能安装Discuz! Q!!
		
如果我们手头上有1台群晖NAS时,有没有考虑过把群晖NAS当成服务器来使用,这样会不会很有意思呢? 现在,我们终于可以尝试一番了,把群晖NAS变成一台实实在在的服务器,在上面跑各种运行环境!其实很简单 ...
 - 电脑桌面与群晖NAS双向实时同步-20210105
		
电脑桌面与群晖NAS双向实时同步 2021年1月15日星期五 一.购买群晖DS920+网络存储服务器.NEC超轻笔记本电脑(重量小于800克).小米10至尊版安卓智能手机和intel i9 1 ...
 - 异地远程访问群晖NAS中的文件
		
异地远程访问群晖NAS中的文件 我以群晖DS720+网络存储服务器为例,介绍我是如何异地远程访问群晖NAS中的文件的. 此文章只介绍部署操作的大概步骤,具体的操作方法和技巧可以在西瓜视频.抖音 ...
 - 黑群晖NAS安装方法(收集)/物理机/VMware虚拟机/KVM虚拟机(转)
		
群晖NAS系统的特点: 1.正版的群晖分为两部分,启动引导和系统文件,其中启动引导是一个闪盘,镶嵌在群晖的主板上,而系统文件是现成下载然后倒入的pat文件. 2.黑群晖破解的主要是启动引导,其实能兼容 ...
 - VMware 15.5虚拟机安装群晖NAS
		
一.群晖nas简介 NAS(Network Attached Storage:网络附属存储),按字面意思理解其实就是网络存储器,可以理解为存储资料的网盘,云盘.NAS本身支持多种协议(如NFS.CI ...
 - 群晖NAS网络存储服务器防盗防小偷
		
群晖NAS网络存储服务器防盗防小偷 根据群晖NAS的实际测量外形尺寸到淘宝网邮购金属 配电箱(弱电箱). 把配电箱(弱电箱)用粗螺丝固定到机柜或墙壁上. 把群晖NAS用密码纯铜挂锁锁在配电箱(弱电箱 ...
 - 群晖NAS简介(转)
		
Synology 群晖科技(Synology )创立于 2000 年,自始便专注于打造高效能.可靠.功能丰富且绿色环保的 NAS 服务器,是全球少数几家以单纯的提供网络存储解决方案获得世界认同的华人企 ...
 - 使用群晖NAS:配置Git server
		
1.首先在群晖的DSM的控制面板中创建一个用户例如是Git_test(我给了管理员权限) 2.在套件中心安装 Git server 3.打开Git server 勾选用户 Git_test 4.在控制 ...
 
随机推荐
- java面试常见题目
			
JAVA相关基础知识面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用 ...
 - mac 终端高亮显示~
			
针对terminal采用bash模式: 编辑 ~/.bash_profile, 加入以下代码: export CLICOLOR=1 export LSCOLORS=gxfxaxdxcxegedabag ...
 - Chapter 07-Basic statistics(Part4 t-tests&&nonparametric tests of group difference)
			
一. t-tests 这一部分我们使用分布在MASS包中的UScrime数据集.它是关于美国47个州在1960年时,关于惩罚制度对犯罪率的影响. Prob:监禁(坐牢)的概率: U1:14到24岁的城 ...
 - phpStorm自动生成___jb_tmp___文件
			
把这个去掉就可以了
 - Multi-Camera Coordination and Control in Surveillance Systems: A Survey 阅读笔记
			
原文: Natarajan, Prabhu, Pradeep K. Atrey, and Mohan Kankanhalli. "Multi-camera coordination and ...
 - java基础文件,File类
			
此文参考自"Java SE程序设计" 编著: 青岛东合信息技术有限公司 算是做笔记,以后想看可以翻阅,顺便分享出来大家可以参照.如有侵权,请联系本人删除 文件 文件是相关记录或放在 ...
 - shell脚本持续更改
			
1.用shell查看磁盘是否大于80%并发送邮箱告警. 分析如何查看磁盘占用: # df -h | grep /dev/vda1 | awk '{print $5}' |cut -d "%& ...
 - Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31
			
作者 | 徐迪.李传云.黄珂.汪萌海.张晓宇.何淋波 .陈有坤.李鹏审核 | 陈俊 上游重要进展 1. Kubernetes v1.17 版本发布 功能稳定性是第一要务.v1.17 包含 22 个增强 ...
 - iOS app反编译
			
对于APP store 上的应用都是加密的了,反编译起来有难度. 对于自己用xcode 编译的ipa 或者是其他渠道下载的ipa包都可以使用反编译工具进行反编译. https://cnbin.gith ...
 - CocoaPods 详解之----更新篇
			
CocoaPods 大概是 2011 年出现的开源组件管理工具(目前已支持 Objective-C 和 Swift),近年来普及率越来越高,几乎已是所有 Cocoa 开源项目的标配.另外,很多大点的团 ...