Frp内网穿透这个真的是折腾了很久很久,WD MYycloud板块的各种帖子、Frp的Github中文文档、Issue页问答、各种技术博主的笔记、域名的配置等等,看的我晕头转向,期间还不断的被误导。总之折腾了很久总算把Frp内网穿透搞明白了,也稍微窥见了Linux的好玩之处。刚开始本来成功在路由器上配置了Frpc,看到说明页上写着必须使用虚拟内存,而陪伴我多年的U盘很争气的在格式化后光荣退伍。于是想到把Frpc运行到WD Mycloud上,看了那是云网站WD Mycloud板块非常含糊的教程后照猫画虎始终无法成功。最后看Frp的Github issue问答的时候才发现我从论坛附件下载的客户端文件版本太旧了。下载新版Frpc后成功穿透,然后开心的各种域名配置……

服务端环境:CentOS7 + lnmp 1.4

客户端环境:WD Mycloud

顶级域名:需要有一个

一、Frps 服务端的安装

1、用Putty登陆到VPS,依次输入以下代码


 

2、安装过程中需要手动输入一些参数

Please input frps bind_port [1-65535](Default Server Port: 7000):
#输入frp提供服务的端口,用于服务器端和客户端通信
Please input frps dashboard_port [1-65535](Default dashboard_port: 7500):
#输入frp的控制台服务端口,用于查看frp工作状态
Please input frps vhost_http_port [1-65535](Default vhost_http_port: 80):
#输入frp进行http穿透的http服务端口
Please input frps vhost_https_port [1-65535](Default vhost_https_port: 443):
#输入frp进行https穿透的https服务端口
Please input privilege_token (Default: NZKY0cB4H7q6p0hmubOPrpfGF3qIHnWP):
#输入frp服务器和客户端通信的密码,默认是随机生成的,可以自定义写成短句,如:TonightIsTheNight等
Please input frps max_pool_count [1-200](Default max_pool_count: 50):
#设置每个代理可以创建的连接池上限,默认50
Enter your choice (1, 2, 3, 4 or exit. default [1]):
#设置日志等级,4个选项,默认是info,建议改成debug级别的日志,好排查错误
Please input frps log_max_days [1-30]
(Default log_max_days: 3 day):
#设置日志保留天数,范围是1到30天,默认保留3天。
Enter your choice (1, 2 or exit. default [1]):
#设置是否开启日志记录,默认开启,开启后日志等级及保留天数生效,否则等级和保留天数无效

安装完成后记住自己填写的各种端口,将通过 http://域名.com:7500 来访问Frps Dashboard. 以下是Frps的管理命令:


 

 

Frps 界面,服务启动成功

 

二、Frpc客户端安装到WD Mycloud

提示:Frps为服务端,Frpc为客户端

1、从Frp的Github Releases页面手动下载最新linux_arm.tar.gz 并解压获得frpc文件。

2、用WinSCP登陆WD Mycloud 并进入/mnt/HD/HD_a2/Nas_Prog/文件夹,新建一个文件夹frpc

3、把frpc和frpc.ini拖到frpc目录,并双击frpc.ini进行配置。

在此处填写相应的设置可以将局域网内的任何设备暴露给公网。

4、保存好后,用Putty连接WD Mycloud输入


 

在进入Frps的dashboard,应该就能看到客户端已经连上了服务端。试试yourdomain.com:81(之前配置的端口)进入WD Mycloud的管理界面。

 

三、设置Frpc在WD Mycloud里用寄生方式自动启动

1、用WinSCP进入WD Mycloud的 /mnt/HD/HD_a2/Nas_Prog/ 目录里随便进入一个能够自动运行的应用的目录(例如Aria2),编辑start.sh文件,在最下面加入命令


 

2、然后进入WD Mycloud的管理界面重新启动,frpc寄生自动启动如果成功了,dashboard里会看到映射列表显示为online。用putty登陆WD Mycloud用top命令可看到 ./frpc -c ./frpc.ini 进程在列表内。

top

Ctrl+C 退出实时监控

提示:如反复运行 ./frpc -c ./frpc.ini 的话进程内会产生多条该进程。需要用kill [pid]杀死多余的进程哦。

这次折腾主要是那是云论坛WD板块里的那个人说frpc是go语言写的,需要编译一个arm版的才能用。我被这句话影响到了,以至于不敢下载官方Release里最新的arm版,折腾了很久很久……

参考:

WD Mycloud + Frp 内网穿透

https://github.com/fatedier/frp/blob/master/README_zh.md