frp实现内网穿透 最简配置
内网环境现在可以说非常的普遍,如果连接控制的内网环境设备的话,就变得非常不方便,像端口映射,dmz主机已经不能满足我们的要。不过好在现在实现内网穿透的工具也很多,在这里就记录下一这款配置简单,功能强大的内网穿透工具FRP的配置实战。
环境
公网服务器:Ubuntu系统16.04(阿里云ECS,学生优惠你懂的,SSH 1M带宽够用了)
内网受控设备:Ubuntu系统16.04
主动访问设备:Windows10
FRP版本0.28.0因为FRP有中文文档,所以配置起来非常友好。
服务器配置
远程配置阿里云ECS,全程用命令行就可以搞定。
查看架构(仅适用于linux):
1 | arch |
x86_64对应的是linux_amd64,下载frp时选择
1、跳转到根目录
1 | cd /root |
2、从地址下载
从链接中我们可以看出版本号,获得更新的版本以此类推,修改连接中的两组数字就好了,可以从作者的release中获得
1 | wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.28.0/frp_0.28.0_linux_amd64.tar.gz |
3、解压文件夹
1 | tar -xzvf frp_0.28.0_linux_amd64.tar.gz |
tar解压命令
必选且仅能一个的参数有
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
可选参数有:
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
-f: 使用档案名字,最后一个参数且是必选
4、重命名减小名字长度
1 | mv frp_0.28.0_linux_amd64 frp |
mv 命令其实就是移动
第一个参数时要移动的文件或文件夹的路径,缩略不写则为当前路径。
第二个参数时目标路径,并以后者名字保存
cp是复制命令
5、跳转到文件夹frp
1 | cd frp |
6、 修改权限
为了保证我们要执行的程序frps拥有足够的权限所以执行
1 | chmod +x frps |
7、尝试启动
1 | ./frps --help |
1 | ./ |
表示的是当前路径
1 | ../ |
表示的是当前路径的上级目录
8、修改配置文件
1 | vim ./frps.ini |
*如果显示commond not found的话,可以考虑 sudo apt-get install vim,安装一下
或者使用vi ./frps.ini
frpc.ini 是客户端(client)的配置文件
frpc_full.ini 存放了所有客户端可以选择的配置选项
frps.ini 是服务端(service)的配置文件
frps_full.ini 存放了所以服务端可以选择的配置选项
而且官方还提供了完整的中文说明
*对于vim常用指令在度娘上也有很多,简单易上手。
常用的有(注意区分大小写)
ESC 回到命令模式
i 插入模式
dd 删除当前行
保存退出的方法:ESC → 输入wq
对于Xshell中vim小键盘输入会出现字母的情况可以更改 属性→终端→终端配置来解决
以下是我使用的配置
1 | #[common]为必填项 |
实操如图:
DAMN IT!忘记保存了······再来
ATOM不会自动保存···菜啊
9.1 运行
1 | ./frps -c ./frps.ini |
如图开启成功:
但是这种方法需要保持SSH连接,才能正常运行
9.2 后台运行
1 | nohup ./frps -c ./frps.ini 2>&1 ./nohup.out & |
nohup: 程序不会挂起
2>&1 nohup.out: 将日志输出到当前目录下nohup.out文件中
最后一个 & :后台运行
这样就可以保证frp后台运行,即使关闭SSH连接也不受影响
9.3 结束运行
方法一:使用pkill [程序名] 直接结束程序
1 | pkill frps |
方法二:使用ps -ef|grep “frps”查询进程号再用kill [进程号结束]
1 | ps -ef|grep "frps" |
配置受控端
受控端的frp下载方法和服务器的步骤一样,所以参照1到5就好了,权限的话,可以不用配置
10 修改配置文件
1 | vim frpc.ini |
1 | [common] |
11 运行
1 | nohup ./frps -c ./frps.ini 2>&1 ./nohup.out & |
至此服务和受控端都配置完成了!
XShell连接
在Windows10使用XShell,secureCRT,Putty之类的软件就可以对内网的Ubuntu进行远程连接了