目录
背景
第一部分 环境准备
第二部分 FRP介绍
第三部分 实现步骤
参考文献及资料
背景
对于目前家庭网络,有下面两个迫切需求:
- 需要远程(比如在单位、路途等)SSH访问家里PC服务器、后续实现远程唤醒服务器。
- 后续部署自制家庭监控,需要远程访问监控web界面。
鉴于上面的需求,技术上需要实现外网访问内网(即内网穿透)。下面详细介绍具体实现步骤。
第一部分 环境准备
一台树莓派主机。由于耗电较少,适合长期开机,作为中转服务器。
一个公网IP。由于电信宽带不提供公网IP,只能自己想办法。正好有一台外网VPS服务器(独有公网IP)
另外顺便打个不收钱的广告:VPS可以使用vultr的虚机,支持支付宝,非常方便。
第二部分 FRP介绍
实现内网穿透有很多方法:frp软件、ngrok软件、还有花生壳。关于frp有详细的官方介绍文档 ,不再赘述。
第三部分 实现步骤
第一步:配置VPS服务器
VPS操作系统为Ubuntu,下载linux_amd64版本:
1 | root@vultr:~# wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_amd64.tar.gz |
解压缩:
1 | root@vultr:~# tar -zxvf frp_0.16.1_linux_amd64.tar.gz |
对于VPS服务端只有两个文件是需要的:frps
(服务)和frps.ini
(配置文件)是需要的,我们拷贝到/bin
目录下面(这一步主要是集中放在bin目录便于管理)。
frpc
和frpc.ini
是客户端服务和配置文件,后面介绍。
1 | root@vultr:~/frp_0.16.1_linux_amd64# cp frps /bin/frps |
然后对配置文件进行修改:
1 | root@vultr:/bin# vi frps.ini |
保存修改后的配置文件,后台启服务端进程,下面是命令格式:
1 | root@vultr:/bin# nohup ./frps -c ./frps.ini & |
以上完成服务端配置。
第二步:配置树莓派客户端
注意:树莓派的CPU处理器是ARM的,所以注意下载的版本包。
1 | root@raspberrypi:~# wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_arm.tar.gz |
解压缩下载的包:
1 | root@raspberrypi:~# tar -zxvf frp_0.16.1_linux_arm.tar.gz |
类似服务端操作将frpc
和frpc.ini
拷贝到/bin
目录下面。
1 | root@raspberrypi:~/frp_0.16.1_linux_arm# cp frpc /bin/frpc |
修改配置文件:
1 | root@raspberrypi:/bin# vi frpc.ini |
保存修改,后台启客户端进程:
1 | root@raspberrypi:/bin# nohup ./frpc -c ./frpc.ini & |
第三步:验证
显示两个端口映射都是online可用的:
下面是整体视图:
我们已经将本地访问ssh的服务端口(192.168.1.2:22)映射到外网端口(10.66.2.137:6000)。
例如使用putty工具,IP地址填写:10.66.2.137,端口:6000。
连接后使用树莓派本地ssh用户和密码即可登录。
参考文献及资料
[1] FRP官方网站 https://github.com/fatedier/frp