frp 云服务器安装
背景
内网穿透本质上的一个前提就是你得有一个公网 IP,而公网 IP 的获取方式有很多种。
这里直接买了一年阿里云的轻量级云服务器,然后也因此获得了一个公网 IP。
云服务器配置
- 发行版本 : ubuntu
- 内核版本 : 5.4.0-47-generic
- ubuntu 版本 : Ubuntu 20.04.1 LTS
- 体系架构 : x86_64
可以看到这个配置是跟我宿主机的环境是一样的,所以也不用考虑自己安装了,直接把宿主机上编译好的 frp 拷贝过去就可以。
云服务器开启 NFS
创建共享文件夹
mkdir share
chmod 0777 share
记录下这个文件夹的路径
安装 NFS
apt install nfs-kernel-server rpcbind
配置共享文件夹
# 按照下图自己修改
echo "/root/share *(insecure,rw,sync,no_root_squash,no_all_squash)" >> /etc/exports
启动 NFS
/etc/init.d/nfs-kernel-server restart
关闭阿里云防火墙
本地主机挂载 NFS
要注意这里不要去挂载 ifconfig
看到的 ip 地址,要挂载公网的 ip 地址,也就是 NAS 转换过去的地址。
检查一下,可以达到这样的效果就是正常的了:
左边的是阿里云的轻量级服务器,我用 ssh 登录过去的;右边则是我的宿主机,也就是我的笔记本上的虚拟机。
云服务器拷贝 frp
不嫌麻烦地可以重新在云服务器上搭建一次环境,我是打算直接用宿主机上的环境安装 frp 了,这样的好处是目标机以及云服务上的 frp 是同一个 go 编译出来的,比较稳定。
宿主机编译 frp
# 在 frp 的仓库下
# pwd : /home/haorui/package/frp
make -f Makefile
# 拷贝可执行程序到共享目录下
cp -rf ./bin ~/share
云服务器测试 frp
总结
自此,在云服务器上和目标机(嵌入式设备上),已经把 frp 给搭建好了,怎么使用还有待探索;这里对我来说比较大的挑战还是在于在嵌入式设备上移植 go 的应用程序,这是之前从来没有遇过了,而且由于没有这方面技术栈(GO)的人,所以 frp 的维护也会成为一个问题,使用 frp 作为内网穿透的方案还是需要谨慎考虑的。