分享

猴子都能看懂的NAS内网穿透设置教程V2.0

 真友书屋 2023-12-24 发布于浙江

大家好,熟悉我文章的应该都知道我喜欢推荐NAS。但是玩NAS,除了白群白威联通这些自带远程访问服务的产品外,想在外面访问自己的NAS,是一件比较麻烦的事情。而且即便用这些厂商提供的远程服务,不管是速度还是延迟都很高,毕竟服务器在国外。如果你是黑裙,unraid这类的话,那连这种高延迟的访问服务都没办法享受。所以到底怎么在外访问自家NAS呢 ?

想要在外面访问自家NAS,在没有QC或者my qnap这类厂商提供的服务情况下,有两种情况。第一种,自己的宽带有公网IP,那可以直接转发端口出去。这么干好处是能跑满你家上传,但是现在各地查PCDN和个人宽带架设web服务很严格,这么干一是不合法,二很容易导致运营商停你宽带,我已经被联通警告过然后写保证书了,所以最好别这么干。

第二条路就是走内网穿透了,不管你有没有公网IP,这个方法都适合,比如我就有公网IP,但是运营商查得严的情况下,我只能走这条路,缺点就是速度受到你架设的转发服务器的带宽限制。大概三四年前我出过一期内网穿透教程,但是出的太早,现在早已经不再适用了。所以这次来教大家,怎么去做内网穿透。

当然,这里说个前提,你内网穿透,架设NAS的web服务,也不是直接就能架的。需要完成ICP备案才能正常访问,否则你即便架设好了,也是下图中这个结果。不过这种情况仅限于你绑定域名的情况下,不绑定域名的话,直接输入IP地址和你转发出去的端口号,是可以直接访问的。如果想要备案,阿里云和腾讯云都提供了备案服务,但是具体备案时间需要多久不确定,一般一个月到半年,中间可能会因为资料问题重审。

图片

好了,说了这么多,那现在让我们进入正题。内网穿透的第一个要求,就是你需要有一个转发用的服务器。目前腾讯云阿里云这些国内一线云服务厂商都在促销,延迟比小云服务厂商好很多,也都有100以内包年的机型。比如阿里云的99元是2核心CPU+2G内存+40GB SSD+3M内存。但是目前看下来,性价比不是很高。性价比最高的是腾讯云的,同配置只要88元一年,每月200G流量。

图片

当然,88一年的仅限新用户购买,而且3M带宽说实话有点小了。这里个人推荐购买118一年的版本,带宽升级为4M,流量多了100G,也是我在用的服务器。而且这个版本不限制新老用户,没买过都能买。一年118元,三年价格是540元,有长期需求的可以直接三年走起,不然一年期续费价格是很贵的。

图片

买完云服务,然后就是买域名了。当然,在ICP备案没有完成之前,你想通过域名访问是不现实的。如果你是阿里云服务器,那直接在阿里云买域名是最好的,腾讯云同理。在腾讯云首页搜索框输入域名,选择域名注册即可注册,实名认证那些记得都做了。

图片

输入你想要的域名点搜索,选一个便宜的注册了就行。目前.online和.site的注册和续费都很便宜,推荐用这个就行。

图片

备案我就不教了,腾讯云和阿里云官方教程很详细。买云服务器的时候,记得选好云服务器的位置,南方人选南京或者广州,北方人选北京即可。系统选择centos7.6,有挂docker需求的可以选择带docker的版本。但是你都有NAS了,还用在云服务器上挂docker吗?买完服务器右上角点击控制台,点击左上角云产品,选择轻量服务器,进入网页端大后台。点击自己购买的那台服务器,重置密码。

图片

这个密码是你的SSH密码,而且不能太简单,大小写数字+符号都要有,选择离线重置最好。因为你买的时候是随机生成密码,还是改个好记的吧。

图片

接下来就是SSH进服务器后台了。SSH工具推荐MobaXterm,官网地址:https://mobaxterm./,点download,下载free版本即可。MobaXterm的优点是体积小,带文件服务和文本编辑器,能省事不少。

图片

下载后打开MobaXterm,点击Session,然后选择SSH,host处输入你刚才的服务器公网IP,云服务器后台能看到。点击OK。

图片

双击你刚刚建立好的连接,第一次会让你接受密钥,点Accept即可。用户名root,密码输入你刚刚设置的root密码。输入密码的时候不会有显示是正常现象,继续输入,输入完成回车即可。

图片

进入后先安装systemd,后面会用到。Centos的命令是yum install systemd。然后回车,中间会让你确认一次,输入y回车即可。

图片

安装完systemd,就需要去架设frps服务了。s就是server的意思,服务端用。客户端用的是frpc,即client。项目地址https://github.com/fatedier/frp/releases,下载最新版。centos下载amd64版本即可。

图片

下载到本地,上传至etc文件夹下。默认连上之后打开的是root文件夹,需要点顶部的两个点回到上一层再双击etc。上传方法很简单,把你下载的文件拖到文件框里面就行。

图片

输入命令cd ..回到底层,看到centos后面的“~”变成“/”就说明回到底层了,再输入cd etc进入etc文件夹。

图片

输入tar -zxvf 文件名,解压你刚才上传的frp客户端文件。比如我下载的是frp_0.53.0_linux_amd64.tar.gz,那就输入tar -zxvf frp_0.53.0_linux_amd64.tar.gz,回车解压。

图片

解压完成后刷新左侧的文件管理器,找到frp_0.53.0_linux_amd64文件夹,F2重命名为frp文件夹。

图片

命令行侧输入cd frp,输入ls -a可以看到里面的文件。

图片

输入vi frps.toml,打开配置文件,按ins之后可以输入。或者双击frp文件夹进入,右键frps.toml,选择open with default text editor使用自带的文本编辑器打开这个文件。

图片

网上你能找到的大部分教程都是用frps.ini,但是后续frp不会再支持ini文件,所以建议用toml文件。写法是不一样的,具体写法如下

bindPort = 7000 #{必选} 客户端与该端口建立连接

log.to = 'console' #{可选} 日志配置, 通过打印的方式输出日志

vhostHTTPPort = 7100 #{可选} http代理需要,当访问该端口时跳到对应本地frpc代理

vhostHTTPSPort = 7200 #{可选} https代理需要,当访问该端口时跳到对应本地frpc代理

transport.tcpMux = true #tcp流多路复用(优化传输,需一致)

#身份验证

auth.method = 'token' #{可选}身份验证方式

auth.token = 'password' #token设置密码,用于通过身份验证创建连接

#frp服务仪表板配置(可以不用)

webServer.port = 7300 #{也可自行修改端口}

webServer.addr = '0.0.0.0' #公网ip或者域名

webServer.user = 'admin' #登录用户名{可自行修改}

webServer.password = 'admin' #登录密码{可自行修改}

按以上写法,我选出我需要的选项之后,就是如下所示。里面包含了客户端所需要的端口,http和https代理端口,tcp多路复用,以及验证方式和验证密码。输入完成后保存即可,文本编辑器点击保存按钮即可,而vi命令行则是按ESC退出编辑状态,再输入:wq回车保存。

图片

到这里frps客户端就配置好了,接下来就是如何启动的问题。有两种启动方式,第一种是在当前文件夹下输入./frp -c ./frps.toml,这样启动。但是我们是要长期运行的,这样不方便维护,这就需要前面安装的systemd。不用退回底层文件夹,直接在命令行中输入sudo vim /etc/systemd/system/frps.service,新建一个frps服务的文件。

如果是按照我的教程来的,文件夹路径也一样,那就按INS进入编辑状态,直接粘贴

[Unit]

# 服务名称,可自定义

Description = frp server

After = network.target syslog.target

Wants = network.target

[Service]

Type = simple

# 启动frps的命令,需修改为您的frps的安装路径

ExecStart = /etc/frp/frps -c /etc/frp/frps.toml

[Install]

WantedBy = multi-user.target

最终结果如下,按ESC退出编辑状态,输入:wq保存即可。

图片

这样我们就能使用systemd来控制服务端了。命令如下

# 启动frp

sudo systemctl start frps

# 停止frp

sudo systemctl stop frps

# 重启frp

sudo systemctl restart frps

# 查看frp状态

sudo systemctl status frps

#设置开机启动frp

sudo systemctl enable frps

比如在启动状态下我想查看frps服务状态,就输入sudo systemctl status frps,启动后看到active(running)就说明启动成功了。后面的enable是开启开机启动后会显示。

图片

这样frps服务器就架设好了,然后就是去腾讯云的防火墙把你刚刚设置的几个端口都放开。回到刚刚设置root密码的网页,选择防火墙。

图片

添加规则,协议类型选择TCP,端口输入你刚刚在配置文件中设置的端口。一个端口添加一次。比如你放开了14514端口,那就像下图这样输入,来源不用填,备注自己定。一定都要添加上,避免访问失败的问题。阿里云的话,是在安全选项卡里面编辑。

图片

配置完服务端,接下来就是客户端的配置了。因为不走公网IP,所以无需在路由器上配置,直接在对应设备上配置即可。比如你要转发NAS,那就直接去NAS上配置客户端。这里以qnap的NAS为例,告诉你怎么配置。至于群晖,不好意思,我手上已经没群晖了,自己上网搜吧。或者根据我下面的教程看看qnap的docker怎么配置。

首先进入qnap的网页后台,找到Container Station,即docker管理器。没有的话去app center里面安装,这个不用我教吧。打到容器选项卡,点击创建。

图片

基本模式就行,映像处输入stilleshan/frpc:latest,点击下一步

图片

名称不用管,默认的即可,点击下面的高级设置。

图片

由于我们用的是toml文件,所以不能用他默认的命令,第一项命令选项卡,点击覆盖,输入/bin/sh -c '/frp/frpc -c /frp/frpc.toml',取代原有的命令。

图片

网络选项卡,不要用默认的NAT,选择自定义,改为host模式。

图片

然后打到存储选项卡,映射/frp在你NAS中的位置。所有qnap的共享文件夹都在/share下,所以前面要加上/share,比如frp文件夹我放在了Container文件夹下,那卷就填写/share/Container/frp,然后点击应用即可。

图片

这时候不要着急完成容器的创建。先去把frpc客户端装好。去你上文中填写的frp文件夹,比如我的是/Container/frp,那我就去Container文件夹下建一个frp文件夹,打开一开始下载的frp_0.53.0_linux_amd64.tar.gz,不要解压文件夹,点进frp_0.53.0_linux_amd64文件夹后把里面的文件解压到/Container/frp文件夹下,这一步windows下操作就行。

图片

用win11的记事本打开frpc.toml,编辑frpc文件,编写规则如下。

serverAddr = 'XXX.XXX.XXX.XXX' #frps服务器地址

serverPort = XXXX #frps服务器端口

auth.token = 'XXXXXXXX' #frps验证码

transport.tcpMux = true #tcp流多路复用(优化传输,需一致)

[[proxies]]

name = 'qnap login' #项目名称,可以自定义

type = 'tcp' #传输协议,填写tcp

localIP = '192.168.XX.XXX' #qnap NAS在你家庭内网中的IP地址

localPort = XXXX #需要转发的端口

remotePort = XXXX #frps服务器转发的出的端口

这里要注意的是,转发的端口可以是多个,重复写[[proxies]]规则即可,一个端口一个规则,回车空一行分隔开即可,每个规则开头都要有[[proxies]]。比如我的写完之后就是这样的。serverAddr可以是frps服务器的IP地址,做了域名映射的话可以填写域名。填写完成后保存frpc.toml文件即可。

图片

然后我们就能完成容器的创建了。创建后容器自动会运行。这里要注意把你[[proxies]]中转发的端口添加到腾讯云服务器的防火墙规则里面。比如你把qnap的https登录的5001端口转为了1234,写法就是

localPort = 5001

remotePort = 1234

去腾讯云的防火墙里面把1234端口添加进规则即可。容器启动后可以在容器下面的日志查看当前连接的状态。

图片

这时候你就可以用服务器的公网IP+你转发的端口来访问路由器的后台了。假设你的公网IP是123.123.123.123,转发的qnap网页后台https登录端口是1234,那就输入https://123.123.123.123:1234来访问qnap的网页后台。这时候你可以在任意地方访问,不局限在你家的局域网里面。当然,如果你做了域名映射,可以把123.123.123.123换成你的域名。想使用域名访问除了要做映射以外,记得也要做好ICP备案才能正常访问。

图片

不过要注意,威联通的手机app比较弱智,群晖你转发成任意端口都没问题,手机app都能访问,因为可以指定端口号。而威联通的手机app不能指定端口号,只有当转发的端口和默认https端口一致的时候才能用手机app访问,也就是转发的端口也是5001才行。

域名映射的办法很简单,以腾讯云为例,在腾讯云控制台输入域名,找到云解析DNS,进入域名解析页面。

图片

找到你买的域名,点击解析。

图片

主机记录这里填写规则为,假设你的域名是yuanshen.online,你想直接访问yuanshen.online,那就填@,想访问www.yuanshen.online,那就填www,abc.yuanshen.online,那就填abc,以此类推。记录值就是你购买的服务器IP,腾讯云可以直接选你当前购买的产品,很方便。权重不用填,点击确认即可。

图片

最后是SSL证书问题。因为我们是为了安全才用https访问,所以SSL证书是必须的。群晖和威联通都可以强制http访问跳转到https,以威联通为例。点击控制台,常规设置,把强制使用安全连接打上勾,应用即可,群晖的方法也类似,两家默认端口号都是5001。

图片

设置完之后,去腾讯云或者阿里云申请你的域名相关的证书。这一步只有用域名访问的才需要,因为你用IP访问的话,证书是对不上的,可以备案通过之后再申请也来得及,一般几分钟就能发放。控制台搜索SSL,找到SSL证书-我的证书。

图片

选择申请免费证书,弹出的提示框再选一次。每个账号能申请最多50个免费证书,每张证书的有效期为1年。

图片

输入你想绑定证书的域名,比如前面我们申请的yuanshen.online,那就直接输入yuanshen.online,DNS验证选自动,勾上自动删除验证即可。邮箱填自己的就行,然后提交申请即可。

图片

一般20分钟左右就能发放证书。发放后点击下载 ,群晖和威联通都是用Nginx的格式,下这个就行。

图片

解压后有四个文件,威联通需要的是.crt和.key,我们用这俩就行。

图片

威联通网页后台点击控制台,安全选项卡,打到SSL证书和秘钥,点击取代当前证书。

图片

选择导入证书,出现的界面中,第一个上传.crt,第二个上传.key,第三个不用管,点击应用即可。应用后会自动重启网页后台应用证书。

图片

    好了,教程到这里大致就结束了,很久没写这么详细的教程了,写的头皮发麻,希望能帮到对此有需求的各位。群晖和unraid我都没有,所以这里就不写了,不过大致也都差不多。而且玩unraid的人应该比我更精通这些东西,上手门槛在那。

    这么干的好处显而易见,在外面也能访问自己家里的文件,就算是黑群晖也能享受这本该是白群才有的服务。代价就是一台年费不低的云服务器,不过我觉得值得,毕竟方便是多少钱都买不来的

    好了我们下期再见

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多