0x01 简介
为什么需要内网穿透?
很多时候从公网访问自己内网的设备是困难的,毕竟自己没有一个独立的IP地址。
Frp 服务器进行内网穿透,速度快还十分简单。可以实现很多功能,包括不限于远程桌面,文件共享等。
什么是内网穿透
使内网的服务器,或者防火墙内的机器,对外提供服务。
原理图,来自参考文章
0x02 环境及安装
centos7 (本地) 192.168.30.100
kali 服务器端(自己的vps)192.168.30.128
本机 ubuntu 18.10
2.0 下载
下载程序
arch 如果输出是x86_64 则下载linux_amd64那个压缩包
本文是x86_64(绝大多数人都是这个)。
mkdir frp &cd frp
wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz
tar -zxvf frp_0.29.0_linux_amd64.tar.gz
# 更改下文件名
mv frp_0.29.0_linux_amd64 frp
cd frp
# 确保frp具有可执行权限
chmod +x frps
运行 ./frps --help
没问题即可开始配置服务端
若提示-bash: ./frps: cannot execute binary file: Exec format error就说明下错版本了
2.1 服务端设置
参考官方配置文档写frps.ini
# 表示配置的开始
[common]
#frp服务端端口 bind_port = 7000 # 仪表盘端口
dashboard_port = 7500
# frp服务端密码
token = frptoken1
# 仪表盘默认账号密码
dashboard_user = admin
dashboard_pwd = admin
启动frps
# 使用 -c 参数指定配置文件
./frps -c frps.ini
没有报错出现success。
服务端后台运行
直接使用启动命令,关闭ssh会话,就会停止运行,因此要使用nohup 使其后台运行。
nohup ./frps -c frps.ini &
# 所有的输出日志写入nohup.out文件中
访问仪表盘7500是可以看见frp的状态的
2.2 客户端设置
可以参考frps_full.ini说明,下面是转发ssh为例:
frpc.ini
[common] server_addr = 192.168.30.128 server_port = 7000 # 与vps保持一致 token = frptoken1 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 use_encryption = true use_compression = true # [web] # type = http # local_port = 80 # subdomian = web # use_encryption = true # use_compression = true
2.3 frp客户端执行
./frpc -c frpc.ini
出现success即可
现在可以在我本机 ubuntu18 上ssh
ssh -oPort=6000 root@vpsip
对于Windows客户端一样的可以参考后面文章
参考