最近公司的VPN导致我想自己试试怎么搞出来的,有两个移动硬盘想尝试买个树莓派来做个远程可以访问本地的网盘,就拿电脑测试一下。我看大概有以下种工具:frp、nps、蒲公英和花生壳。后两者都是有部分限制的,但不需要自己有服务器。前两个适合有服务器的,我就尝试了一下nps,我这里主要试了网站的转发,具体其它还没弄清楚;
NPS参考教程
准备工作
- 一台服务器【主要想说要有一个有公网ip的服务器】
- 本地环境
安装
服务器
我用的Docker,现在习惯于优先使用docker配置;
- 下载配置文件【注意记住自己的下载文件地址】
git clone https://github.com/ehang-io/nps.git
- 修改配置文件
注意开启服务器对应的端口,如果使用阿里云等等,也要注意去管理界面开启端口!后面使用时亦是如此;
vim nps.conf
- 获取docker镜像
docker pull ffdfgdfg/nps
- 运行 | 注意更改conf为你自己的目录
docker run -d --name nps --net=host -v /home/nps/nps/conf:/conf ffdfgdfg/nps
本地
- 登录后台 | 用户名和密码在配置文件中
-
新增客户端
-
下载软件 | 我这里用的是windows
下载地址:https://github.com/ehang-io/nps/releases
- 解压后进入cmd
-
在获取运行代码 | 参考
-
在上述的cmd框中运行即可连通本地和服务器
使用
网站
我这里应该是非标准化的,使用http没成功,用的tcp代理,然后在服务器上转到tcp端口的;有点类似于:外网访问网站 -> 服务器 -> 本地网站的流程!
- 域名解析
-
获取本地的ip
ipconfig
-
去界面添加一个tcp解析,如下【记住端口号,下一步转发代理要用】
-
在服务器配置网站,然后配置反向代理,我这里如下【nginx】
location / {
proxy_pass http://localhost:20002;#上一步配置的端口号
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Scheme $scheme;
# websocket setting
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 120s;
proxy_next_upstream error;
}
- 然后就可以愉快的使用了!
本地 | 代理后的情况 |
---|---|