自建FRP内网穿透,实现外网访问nas等设备

技术教程 · 2021-01-20

最近组了一台nas使用,但由于是黑群晖,外网是访问不了的(nas在家,人在外面),有时工作需要家里找文件就显得比较尴尬,所有外网访问家里的nas还是挺有必要的。

之前就有了解FRP,加上刚好续费了十年服务器,所以就尝试搭建FRP内网穿透,实现外网访问nas等设备。

顺便把过程记录下,可能以后重装系统重新搭建需要炒冷饭,也方便有同样需求的参考。

1.前期准备

一台云服务器(如阿里云服务器、腾讯云服务器等),并装有CentOS,我装的是CentOS 7.6 64位,Intel架构

2.服务端操作

找到需要的frp版本,获取下载链接

进入frp下载页面(https://github.com/fatedier/frp/releases) 找到需要下载的版本,右键复制下载链接。

譬如我服务器是64位的linux,cpu是intel的就选这个

2024-04-25T02:44:16.png
2024-04-25T02:44:59.png

然后ssh链接云服务器,可以使用putty来ssh(ssh意思可以简单理解为远程操作你的云服务器)

2024-04-25T02:45:19.png
2024-04-25T02:46:12.png

以root的身份登录,回车输入密码,注意的是这里输入密码不会显示也不会显示*,直接输入回车即可

2024-04-25T02:46:26.png

登录成功后输入 wget+下载链接,这里我们的命令是:

wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz

回车,稍等会就会下载完毕。

2024-04-25T02:46:51.png

解压下载的压缩文件

tar -zxvf frp_0.34.3_linux_amd64.tar.gz

输入后回车

2024-04-25T02:47:12.png

可以查看下是否解压成功

ls

2024-04-25T02:47:29.png

因为我服务器装了宝塔面板,同时对linux不太熟,所以直接登录宝塔面板继续操作了(宝塔面板在你购买服务器时有些服务商可以帮忙安装,不懂的登录官网跟教程走一遍也很简单,这里就不详述了):

在root文件夹下
2024-04-25T02:47:46.png

将frp_0.34.3_linux_amd64 重命名为 frp

进入到frp目录,找到 frps.ini ,点击编辑

2024-04-25T02:48:05.png

加入一个token行,我这里随机生成了一寸乱码,大家可以自行设置,这个是明文密码,建议不要设置为自己的常用密码。

2024-04-25T02:48:19.png

简单说下这个token的作用:云服务器跟nas进行数据交换时,通过token作为“暗号”,“暗号”对上了才进行数据交换,否则掰掰~

搞掂后保存关闭

然后我们回到putty,进入到frp目录,分别运行下面命令

cd frp
./frps -c frps.ini

注意:

如果提示“-bash: ./frps: cannot execute binary file”错误,很可能是你的系统架构和安装环境的系统架构不匹配。这个时候只要去下载安装对应的系统架构的frp进行安装就可以解决。

2024-04-25T02:49:40.png

有些服务器可能没有开放7000端口,这里可以单独开放一下,像我是用宝塔面板的,服务器和宝塔面板都需要开放

Ctrl + c 退出frps服务,然后输入以下命令

iptables -I INPUT -ptcp --dport 7000 -j ACCEPT

输入以下代码进行服务设置

vi /lib/systemd/system/frps.service

按 i 键进入编辑模式

黏贴下列命令

[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

2024-04-25T02:50:27.png

按 esc 键 输入 :wq 回车(注意:含wq前的冒号)

启动frp服务

systemctl start frps

设置自动启动

systemctl enable frps

2024-04-25T02:51:00.png

重启vps服务器看下frps服务是否可以开启自启

reboot

等待vps服务器开机,重新连接登录后输入:

ps auxw

查看后台运行的进程,可以找到frp已经运行了

2024-04-25T02:51:36.png

至此服务端设置完毕

3.群晖docker端设置

登录群晖,打开套件中心,下载安装“docker”

2024-04-25T02:52:10.png

打开安装后的docker

映像-新增 -(从url新增)输入这个地址 https://hub.docker.com/r/chenhw2/frp 点击新增

2024-04-25T02:52:31.png

在自己的电脑端新建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

2024-04-25T02:53:14.png

进入file station 在docker文件夹下新建frp文件夹 然后把编辑好的 frp.ini 上传上去

2024-04-25T02:53:28.png

等待docker映像下载完毕后双击进行设置

高级设置-环境,

2024-04-25T02:53:43.png
2024-04-25T02:54:00.png
2024-04-25T02:54:11.png

记得Args的值设为“frpc

设置卷,新增文件,找到刚才上传的 frpc.ini(docker-frp-frpc.ini)

2024-04-25T02:54:42.png
装载路径填:/frp/frpc.ini

网络选择与docker相同的网络

2024-04-25T02:55:03.png

这样就设置完毕了,点击应用,下一步,应用,可以看到已经启动了

2024-04-25T02:55:15.png

测试下外网是否可以打开:

浏览器输入 云服务器的公网ip:6001

可以看到已经可以正常打开我的dsm页面了,也就是说我们已经实现了外网的穿透。

2024-04-25T02:55:36.png

最后提醒下,记得云服务器那里要放行对应端口。

Theme Jasmine by Kent Liao