您的位置:首页 >> 电脑技术 >> FRP内网穿透实现NAS远程桌面 — 无需公网IP的开源解决方案

FRP内网穿透实现NAS远程桌面 — 无需公网IP的开源解决方案

[ 孤狼 | 2019-08-20 05:52:42 | 电脑技术 | 7947°C | 0条评论 ]

        之前买了一台二手的蜗牛星际NAS,回来之后为了全功能刷了windows10系统,毕竟电脑系统比NAS系统要方便的多,很多软件比如迅雷,百度网盘等等都可以运行,还能挂一下游戏在线等等。但是基于目前国内的网络环境基本都是大局域网套小局域网,没有那么多的公网IP分配给自己家。所以没法实现远程操控。只能考虑内网穿透,看了几种目前流行的方案,花生壳等等,都是需要一定费用支持的。找了许久后终于找到一个可以符合我自己的方案-FRP反向代理。


前提条件


1.如果用FRP方案,那么就必须有一台公网IP的服务器,正好我自己的服务器可以使用。

2.非windows家庭版,家庭版没有远程桌面。


工作原理


        我们想要访问内网的一台设备,就要定位到内网设备,但是现在由于没有公网IP,所以无法实现。但我们借助于可访问的公网服务器来做代理,访问机和NAS机都连接公网服务器,通过服务器来连接两端设备。


准备步骤


1.下载FRP源码,服务器系统版本和NAS系统版本都要下载 https://github.com/fatedier/frp


开始搭建


服务器搭建(以Centos7为例)

1.服务器上先创建一个文件夹来放FRP源码

mkdir /usr/local/frp

2.拷贝FRP对应系统版本的文件到服务器的文件夹内,这里注意,我们下载的源码都是同时含有客户端和服务端的。在这里我们删除客户端的代码(frpc开头),保留服务端代码(frps开头)

需要拷贝的文件如下

1.jpg


3.配置文件一共有2个frps.inifrps_full.ini,其中frps_full.ini为全部配置案例,你可以复制你想要配置的到frps.ini里,当然你也可以直接使用frps.ini。我们打开frps.ini文件可以看到如下内容

[common]
bind_port = 6000

其中 bind_port 指定的就是服务器的代理端口你可以随意换一个不一样的,但不要和已知服务重复,比如网页端口80,8080等等都不要占用避免影响其他服务。这里建议设置5000+但是小于65535的端口号,基本不会和其他业务重复.

题外话:为什么要小于65535。因为阿里云服务器最大支持到65535。  


4.改好了端口服务器基本就算配置完毕了,这里需要提前注意的是,你需要想一个NAS机的端口号。建议和服务器接近端口,比如6001。确定了2个端口之后,我们把60006001都加入到服务器的防火墙白名单,不然后面会连不通。其中阿里云防火墙需要配置2处,一个是服务器系统自带的iptables(如果开启的话),还有一处是阿里云管理后台的服务器安全组。


5.添加好白名单之后,我们的端口就通了,那么就来启动一下看看。

输入命令 

/usr/local/frp/frps -c /usr/local/frp/frps.ini

当我们看到下图的时候,就说明已经启动了。

2.jpg


如果运行不了,请检查服务器是否安装了Go语言环境。



NAS机搭建(WIN10为例)

1.把源文件复制到NAS机上

2.删除服务器配置文件(frps开头)剩余客户端文件如下

3.jpg

3.配置文件一共有2个frpc.inifrpc_full.ini,其中frpc_full.ini为全部配置案例。我们打开frpc.ini文件清空里面的默认内容。因为我们要配置的是远程桌面。所以要单独写。

代码如下:

[common]
server_addr = 服务器公网IP
server_port = 服务器配置的端口如6000

[RDP]
type = tcp
local_ip = 0.0.0.0
local_port = 3389
remote_port = 留给NAS机的端口如6001


上面代码里只需要修改server_addrserver_portremote_port三项为你的真实数据即可。


4.写个bat文件来简化启动过程。在同级目下新建一个run.bat文件,编辑内容如下。

@echo off
frpc -c frpc.ini
exit

这样写可以再退出的时候自动重启服务


5.双击run.bat文件,就会启动NAS机上的服务,他会自动连接服务器。效果如下:

4.jpg

我们可以看到提示了 login to server success 说明连接服务器成功

此时如果你查看服务器上的状态会发现服务器也提示了连接状态

5.jpg

服务器显示有一个连接已经成功了。


6.启动你的电脑,打开远程桌面。然后输入你的服务器IP地址NAS机的端口号。这里注意,一定是NAS机配置的端口号不是服务器的端口号。输入 服务器IP:NAS端口号 登录

6.jpg

7.点击连接,就能连接成功了。我们输入NAS机上的账户和密码登录。这里注意,服务器上和NAS机上的命令界面都不能关闭,关闭就算关闭服务,就会连接失败

7_副本.jpg

[注意:远程桌面只能支持一路信号,如果你其他设备正在进行远程连接,则第二路连接就会失败。  


优化处理

我们现在已经可以进行利用服务器远程桌面了,但是服务器不能一直停在命令界面,NAS也不能一直开着命令行。我们让他们自动化。


服务器优化


我们已经知道怎么启动服务了,那么就把启动命令写到启动脚本里去。让服务器启动就自动运行。

1.创建启动脚本

vim /usr/lib/systemd/system/frps.service


2.输入启动代码

[Unit]
Description=frps server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit

[Install]
WantedBy=multi-user.target


3.保存之后输入

systemctl daemon-reload
systemctl enable frps


4.启动服务

service frps start


到这里,服务器端的优化设置就结束了。



NAS机优化


NAS上我们是Windows系统,那么就简单多了。

1.启动任务管理计划,按下Ctrl+R键启动运行,输入taskschd.msc 回车


2.点击右边创建任务

8.jpg


输入任务名称和描述,勾选“不管用户是否登录都要运行”,不要勾选不存储密码,不然权限不足,然后勾选上“使用最高权限运行”,最后再勾选上“隐藏”,这样就不会显示命令框了。

9.jpg


3.切换到触发器页面,点击下方的“新建”,开始任务选择“启动时

10.jpg


4.切换到操作页面,点击下方的“新建”,选择程序过脚本的路径,同时在“起始于”栏里输入脚本的所在目录,否则命令无法判断目录。

11.jpg


5.切换到设置页面,选中“如果任务失败,按以下频率重新启动”,设置如图

13.jpg


6.点击确定会弹出密码框,输入用户密码用于自动登录。

14.jpg


到此,FRP设置就全部结束了。


   PS:远程桌面可以保存为一个快捷方式,然后可以拷贝到任何机器上直接运行连接。  


转载请注明出处:http://gl.paea.cn/n.php?n=122
 
如您看得高兴,欢迎随意投喂,让我们坚持创作!
赞赏一个鸡腿
还没有人留下遗迹
综合 · 搜索