NAS一般部署在家里,但是在外使用极为不方便,如果有公网IP那就好很多,但是公网IP暴漏总归不安全,而且大多数公网ip都是动态的,虽然可以走ddns,但是又不能对外提供服务(web页面)。我的宽带是走路由器拨号上网的,一开始有ipv6公网的,但是路由器对于ipv6有防火墙要么全开要么全关,关了就不安全,虽然ipv6是动态的,但是关了防火墙,相当于所有内网设备暴漏。于是我又申请了公网ipv4,这下方便多了,需要外网的设置端口转发,暴漏指定端口,公网ipv4是动态的,就用了ddns,而且不提供web服务,我是这么做的,已mt-photos为例:路由器对外端口4456转发到nginx服务4453,然后nginx反代到mt-photos,mt-photos端口为8063,nginx相关配置片段如下:upstream mtphotos_upstream {
ip_hash;
server 192.168.1.111:8063;
}
server
{
listen 4453 quic reuseport;
listen 4453 ssl;
server_name nas.mydomain.com;
add_header Alt-Svc 'h3=":$server_port"; ma=86400';
ssl_certificate /etc/nginx/ssl/nas.mydomain.com.pem;
ssl_certificate_key /etc/nginx/ssl/nas.mydomain.com.key;
set $flag 0;
if ($http_user_agent ~ "^okhttp/") {
set $flag 1;
}
if ($http_user_agent ~ "MT Photos App/") {
set $flag 1;
}
if ($http_user_agent ~ "^Dalvik/") {
set $flag 1;
}
if ($http_user_agent ~ "MtPhotosApp/") {
set $flag 1;
}
if ($http_user_agent ~ "mtphotos/") {
set $flag 1;
}
if ($flag = 0) {
return 444;
}
location / {
proxy_pass http://mtphotos_upstream;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
上面的配置生效后,只能通过手机app进行访问,其他方式访问就会返回444,什么也看不到,一个为内网地址http://192.168.1.111:8063,一个为外网地址https://nas.mydomain.com:4456,这样就可以随时随地正常使用mt-photos,而且外网直接访问https://nas.mydomain.com:4456也是无法访问的。当然lucky也可以通过界面操作配置已达到相同效果
还没有评论,来说两句吧...