[Linux] 从外网访问内网硬盘
目的
实现一个由nginx的文件访问系统,并且是用户加密验证的。
安装和配置nginx
安装
利用官方给出的地址,可以安装nginx.
开启的文件位于 /etc/init.d/nginx,请注意,这个和nginx官网介绍的路径不一样。
你可以使用下述命令,控制nginx的开启,等等:
sudo etc/init.d/nginx -s signal
signal可以是:
- stop — fast shutdown
- quit — graceful shutdown
- reload — reloading the configuration file
- reopen — reopening the log files
配置
默认的总配置路径是 /etc/nginx/nginx.conf
如果你打开这个文件,会发现里面有一个
include etc/nginx/sites_enabled/*
它是用来读取sites_enabled里面的config文件的。
而sites_enabled文件夹中的配置都是链接,链接到sites_available文件夹里面的config文件。
因此,为了避免问题的出现,请直接修改sites_available/中的配置文件。
我的配置方式:
location /files {
alias /home/pi/share/; # 最后的 / 很重要
index index.html; # 如果由index.html会读取html文件
autoindex on;
autoindex_exact_size off;
}
然后使用下面的命令重新加载配置。
sudo /etc/init.d/nginx reload
用户验证
创建一个用户
sudo apt-get install apache2-utils
下载完之后,可以使用htpasswd工具了。
找一个路径,输入:
sudo htpasswd -c ./name.db admin
然后再输入密码,即可创建新的用户。
如果想要在这个db里面,添加用户,去掉 -c 选项就好。
配置nginx
在配置文件中,加入:
location /files {
...
auth_basic "Please input password"; #这里是验证时的提示信息
auth_basic_user_file /usr/local/src/nginx/passwd;
...
}
修改穿透的设置
在frpc.ini中,加入如下信息:
[http]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 7003
请不要忘记,在服务器上,把7003给打开。