linux,使用frp工具实现内网穿透连接

一、frp简述

frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。


二、frp说明

一个frp文件包里面包括frpc、frps以及相应的配置文件。内部的配置文件,如下图所示:在这里插入图片描述
frpc:是指 frp客户端(client)
frpc.ini:客户端配置文件
frps:是指 frp服务端(server)
frps.ini:服务端配置文件


三、frp安装

1、工具

一台有公网IP的服务器(下文称外网主机)
一台需要实现内网穿透的机器(下文称内网主机)
一个SSH工具(xshell、Mobaxterm或putty)
一个域名(如果只是建立SSH反向代理则不需要域名)。

2、获取

windows环境中,推荐下载 frp_0.20.0_windows_amd64.zip
linux环境中,推荐下载 frp_0.20.0_linux_amd64.tar.gz
具体还是看情况而定,可以自己选取版本、看操作系统选择32位或64位的。
下载地址传送门: https://github.com/fatedier/frp/releases


3、安装

3.1 服务端安装

外网主机(带有公网ip的服务器)需要安装服务端的frp

(1)解压
使用tar指令解压tar.gz文件

tar -zxvf frp_0.20.0_linux_amd64.tar.gz

(2)删除多余文件
外网主机作为服务端,可以删掉不必要的客户端文件。使用cd指令进入解压出来的文件夹,使用rm指令删除文件。

cd frp_0.20.0_linux_amd64/
rm -f frpc
rm -f frpc.ini

(3)修改配置文件
修改服务器配置文件,frps.ini文件。使用vi指令对目标文件进行编辑。

vi frps.ini

添加以下内容:

[common]
bind_port = 7000         #frp服务端端口
vhost_http_port = 8080   #http访问端口

[common]部分是必须有的配置,其中bind_port是自己设定的frp服务端端口,vhost_http_port是自己设定的http访问端口。

保存配置!

(4)启动
启动frp服务端,命令如下:

./frps -c ./frps.ini

服务端配置完成!

3.2客户端安装

(1)解压
使用tar指令解压tar.gz文件

tar -zxvf frp_0.20.0_linux_amd64.tar.gz

(2)删除多余文件
外网主机作为服务端,可以删掉不必要的服务端文件。使用cd指令进入解压出来的文件夹,使用rm指令删除文件。

cd frp_0.20.0_linux_amd64/
rm -f frps
rm -f frps.ini

(3)修改配置文件
使用vi命令,修改frpc.ini

vi frp.ini

客户端的配置如下:

[common]中的server_addr填frp服务端的ip(也就是外网主机的IP),server_port填frp服务端的bind_prot。

[common]
server_addr = 123.5.57.118 #服务端ip(外网ip)
server_port = 7000         #服务端设定的端口

[ssh]中的local_port填本机开放的ssh端口,一般ssh端口默认为22。

#通过tcp来连接SSH
[ssh]
type = tcp
local_ip = 127.0.0.1  #本机ip
local_port = 22       #本机ssh端口
remote_port = 6000    #外网服务器请求过来的端口

[mysql]中的 type对应服务端配置,local_port填服务端mysql端口。

#通过tcp来连接mysql
[mysql]
type = tcp
local_port = 3306
remote_port = 3306
#use_encryption = true
#use_compression = true

[tomcat]中的 type对应服务端配置,local_port填服务端toncat端口。

[tomcat]
type = http
local_port = 8083
#custom_domains = tomcat.xxxx1.com
#remote_port =8083

[web]中的type对应服务端配置。local_port填f服务器的web端口。

[web]
type = http
local_port = 80
custom_domains = www.xxx.com

以上的配置和服务端是对应的。
可以选择自己需要的进行配置,其中[common]是必不可少的配置,其余按需配置。

保存配置!!!

(4)运行
运行frp客户端,命令如下:

./frpc -c ./frpc.ini

(若要在后台运行,需要使用其他命令,后面详述)
若在服务端会看到"start proxy sucess"字样,即连接成功。


四、使用

SSH连接:
通过客户端IP:6000和服务器端建立SSH连接。

ssh 120.79.17.158 -p 6000

五、后台运行

现阶段只是让frp暂时运行,功能也已经实现,但是只要关闭ssh连接,frp也会自动停止。若想要frp一直保持运行状态怎么办???

两个办法

一个是screen命令,
一个是nohup命令。

1、screen命令

先使用screen命令创建一个会话。

screen -dmS frp

然后进入这个会话。

screen -r frp

最后使用运行frp的指令,在后面加上" &" (一定是要在frp目录下使用该命令)

./frps -c ./frps.ini &

这样就让frp在后台运行了。

2、nohup命令

nohup指令的使用方法相对简单,只需要在nohup后面加上frp的运行指令即可。下面示范的指令是运行frp客户端。(同样,如果之前断开了SSH连接,记得用cd指令进入frp的目录先。)

nohup ./frpc -c ./frpc.ini &

这样就成功让frp在后台运行了。

3、关闭

有了后台启动,自然就有相应的关闭之法。关闭frp,直接杀进程就可以啦!!!

ps -aux|grep frp| grep -v grep

kill -9 进程号

例如:

[web1~]#ps -aux|grep frp| grep -v grep
[web1~]#root  3600  0.1  0.1 110188  9484 pts/0  Sl  15:04  0:00 ./frpc -c ./frpc.ini
[web1~]#kill -9 3600

传送门
frp下载地址:https://github.com/fatedier/frp/releases
frp中文说明:https://github.com/fatedier/frp/blob/master/README_zh.md

  • 4
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值