由于网络的普及,IPV4的数量越来越少,运营商没有足够的公网IPV4地址分配给用户,大部分用户使用的都是内网IP,由于博主有远程SS连接本地服务器的需求,故想到了frp. frp是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
准备工作
搭建一个frp
的服务链,我们需要以下条件.
1.一台具有公网IP的服务器,用于做frp
服务端.(简称frps
)
2.frp
的客户端,用于从内网映射出去的服务器.(简称frpc
)
3.frp
项目地址: https://github.com/fatedier/frp
安装frp
下载
目前可以在Github
的 Release 页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中。
部署
将刚下载的服务端及客户端二进制文件分别上传至服务端及客户端.并分别给与二进制文件执行权限.
#给予frp服务端程序frps运行权限
chmod u+x frps
#给予frp客户端程序frpc运行权限
chmod u+x frps
运行服务端及客户端
编写配置文件
分别修改服务端配置文件frps.ini
及客户端配置文件frpc.ini
#frps.ini修改如下
[common]
bind_port = 7000
#frpc.ini修改如下 其中 x.x.x.x为frps 所在服务器的公网 IP
[common]
server_addr = x.x.x.x
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
local_ip
和 local_port
配置为本地需要暴露到公网的服务地址和端口。remote_port
表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。
运行服务端
在服务端
执行以下命令:
#-c指定服务端配置文件
./frps -c ./frps.ini
在客户端
执行以下命令:
#-c指定客户端配置文件
./frpc -c ./frpc.ini
通过ssh连接内网机器
运行powershell
(或使用其他ssh
客户端)键入以下命令:
ssh -oPort=6000 root@x.x.x.x
frp
会将请求 x.x.x.x:6000
的流量转发到内网机器的22
端口。