因为我使用openwrt拨号上网,然后下面还有一个二级路由
造成的结果是,如果我要访问NAS里面的东西,必须要通过反代
而且是做了两层的端口映射。因为网段都不一样。
用了反代之后导致很多软件访问出现问题,可能是因为我映射了两次端口的原因
之前只映射一次,同网段的话没有出现过问题
所以这次教程就是解决不同网段的。
这里踩了一个大坑,我openwrt是编译了nginx的,直接使用nginx作为web server的
看看以下这段代码
server {
listen XXXX ssl;
server_name yourdomain.com;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# location / {
# proxy_redirect off;
# 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_pass https://192.168.2.2:5001;
# }
}
这个坑就是,不要用nginx的反代。直接映射端口就可以了。
OP端口映射到二级路由的端口,然后登陆二级路由映射到NAS所在的内网IP的端口号。
比如
一级路由的网段是192.168.10.1
二级路由的网段是192.168.20.1
那么先在OP里面的端口映射里面设置
外部端口2222映射到192.168.10.2(这里就是分配给二级路由的IP)的2222端口
然后在二级路由里面设置
来源IP记得选192.168.10.2
外部端口2222到192.168.20.2(这里分配到NAS的IP)的端口
到这里就解决了。
enjoy!