Frp工具下载地址: https://github.com/fatedier/frp/releases
Frp可将处于防火墙或内网后的主机对外网提供http、https、tcp或udp等服务, 例如在虚拟机做个frp内网穿透, 在其他主机访问其映射的vps就能访问到此虚拟机
Frp工具是由go语言写的, 可跨平台使用, 像常见的windows和linux都可使用
首先准备一台云服务器vps用于配置Frp服务端, Frp库下载地址: https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz, Frp下载好后上传至云服务器并解压
tar -zxvf frp_0.45.0_linux_amd64.tar.gz
进入Frp文件目录, 修改服务端配置文件frps.ini
为如下内容: vim.tiny frps.ini
bind_port = 7000 #服务端与客户端连接的端口
token = henry666 #授权码,在客户端连接的时候会用到
dashboard_port = 7777 #frp后台端口
dashboard_user = admin #管理frp后台的用户账号
dashboard_pwd = admin #管理frp后台的用户密码
服务端启动frp服务: ./frps -c ./frps.ini
首先输入arch
命令判断客户端主机是什么系统的,我这里演示的kali主机是32位系统, 因此需下载的frp版本为linux_386.tar.gz
将下载的frp文件解压至客户端主机, 进入frp文件夹, 然后修改frpc.ini
配置文件为如下内容, 意思是将本机的22端口映射至外网vps的6000端口
[common]
server_addr = 180.76.55.245
server_port = 7000
token = henry666
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22 #本地监听的端口
remote_port = 6000 #外网映射端口
客户端启动frp服务: ./frpc -c ./frpc.ini
打开Xshell连接180.76.55.245:6000
端口即可访问到客户端主机22端口的ssh服务
在上述frps.ini内容基础上添加一行vhost_http_port
来定义外网映射http服务的端口, 随后输入./frps -c frps.ini
启动frp服务
bind_port = 7000 #服务端与客户端连接的端口
vhost_http_port = 8080
token = henry666
dashboard_port = 7777 #frp后台端口
dashboard_user = admin #管理frp后台的用户账号
dashboard_pwd = admin #管理frp后台的用户密码
若客户端主机为windows64位系统则需选择frp的版本为windows_amd64.zip
将frp文件解压至客户端主机, 修改frpc.ini文件为如下内容
[common]
server_addr = 180.76.55.245
server_port = 7000
token = henry666
[web]
type = http
local_ip = 127.0.0.1
local_port = 80 #本地监听的端口
custom_domains = 180.76.55.245 #填写IP或者域名
在frp文件夹打开终端执行命令:frpc.exe -c frpc.ini
访问180.76.55.245的8080端口即可访问到内网主机80端口的http服务
frps.ini的配置如下所示:
[common]
bind_port = 7000
[socks5]
type = tcp
auth_method = noauth #表示这个代理不需要验证。如果你需要验证,可以设置为 userpass 并提供 username 和 password
bind_addr = 0.0.0.0
listen_port = 1080
启动frp服务端:./frps -c ./frps.ini
frpc.ini的配置如下
[common]
server_addr = 192.168.47.155
server_port = 7000
[socks5]
type = tcp
remote_port = 1080
plugin = socks5 #用SOCKS5代理插件