最近组了一台nas使用,但由于是黑群晖,外网是访问不了的(nas在家,人在外面),有时工作需要家里找文件就显得比较尴尬,所有外网访问家里的nas还是挺有必要的。之前就有了解FRP,加上刚好续费了十年服务器,所以就尝试搭建FRP内网穿透,实现外网访问nas等设备。顺便把过程记录下,可能以后重装系统重新搭建需要炒冷饭,也方便有同样需求的参考。
1.前期准备:一台云服务器(如阿里云服务器、腾讯云服务器等),并装有CentOS,我装的是CentOS 7.6 64位,Intel架构
进入frp下载页面(https://github.com/fatedier/frp/releases) 找到需要下载的版本,右键复制下载链接。譬如我服务器是64位的linux,cpu是intel的就选这个然后ssh链接云服务器,可以使用putty来ssh(ssh意思可以简单理解为远程操作你的云服务器)以root的身份登录,回车输入密码,注意的是这里输入密码不会显示也不会显示*,直接输入回车即可登录成功后输入wget+下载链接,这里我们的命令是:wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
tar -zxvf rp_0.34.3_linux_amd64.tar.gz
因为我服务器装了宝塔面板,同时对linux不太熟,所以直接登录宝塔面板继续操作了(宝塔面板在你购买服务器时有些服务商可以帮忙安装,不懂的登录官网跟教程走一遍也很简单,这里就不详述了):将frp_0.34.3_linux_amd64 重命名为frp加入一个token行,我这里随机生成了一寸乱码,大家可以自行设置,这个是明文密码,建议不要设置为自己的常用密码。简单说下这个token的作用:云服务器跟nas进行数据交换时,通过token作为“暗号”,“暗号”对上了才进行数据交换,否则掰掰~
然后我们回到putty,进入到frp目录,分别运行下面命令如果提示“-bash: ./frps: cannot execute binary file”错误,很可能是你的系统架构和安装环境的系统架构不匹配。这个时候只要去下载安装对应的系统架构的frp进行安装就可以解决。
有些服务器可能没有开放7000端口,这里可以单独开放一下,像我是用宝塔面板的,服务器和宝塔面板都需要开放Ctrl + c 退出frps服务,然后输入以下命令iptables -I INPUT -ptcp --dport 7000 -j ACCEPT
vi /lib/systemd/system/frps.service
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/frp/frps -c /root/frp/frps.ini
[Install]
WantedBy=multi-user.target
按esc键 输入 :wq 回车(注意:含wq前的冒号)
映像-新增 -(从url新增)输入这个地址 https://hub.docker.com/r/chenhw2/frp 点击新增在自己的电脑端新建frpc配置文件(新建txt文档重命名为 frpc.ini)打开后输入以下命令:[common]
server_addr = 47.xxx.xx.xxx
server_port = 7000
token = BQmIBalJ0GG7Qsgb
[DSM]
type = tcp
local_ip = 127.0.0.1
local_port = 5000
remote_port = 6001
进入file station 在docker文件夹下新建frp文件夹 然后把编辑好的frp.ini上传上去设置卷,新增文件,找到刚才上传的frpc.ini(docker-frp-frpc.ini)这样就设置完毕了,点击应用,下一步,应用,可以看到已经启动了可以看到已经可以正常打开我的dsm页面了,也就是说我们已经实现了外网的穿透。