使用场景
当有一台或多台主机在内网,它们只有私网IP,这时你已经掌握了它们中的一台带有公网IP的服务器,且想直接使用ssh命令行、远程桌面等方法控制只有私网IP的主机时,可以使用frp。
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
frp采用go语言开发,支持跨平台,仅需下载对应平台的二进制文件即可执行,无额外依赖。frp支持 TCP、UDP、HTTP、HTTPS 、socks等多种协议。
下载地址
https://github.com/fatedier/frp/releases
命令行输入命令arch查看系统版本,选择对应版本下载
x86_64,x64,AMD64都属于amd系列的
try it
frp下载文件如下
其中服务器端(直接能访问到的机器,IP为192.168.31.222)配置frps.ini一般如下(可以参考frps_full.ini中的配置):
[common]
bind_port = 7000
dashboard_user = 5wimming
dashboard_pwd = 5wimming
dashboard_addr = 127.0.0.1
dashboard_port = 7500
然后在带有公网IP的服务器中运行如下命令:
./frps -c ./frps.ini
服务端的控制台
客户端(需要通过服务端跳转才能访问到的区域,其中192.168.31.222为服务端ip)配置如下
[common]
server_addr = 192.168.31.222
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 5000
客户端运行命令
frpc -c frpc.ini
然后本地就可以通过服务端对内网机器进行远程连接了
ssh root@192.168.31.222:6000
参考:
https://www.freebuf.com/articles/network/271719.html