frp内网穿透

FRP 项目地址:https://github.com/fatedier/frp

frp是一种快速反向代理,可帮助您将NAT或防火墙后面的本地服务器公开到Internet。到目前为止,它支持TCP和UDP以及HTTP和HTTPS协议,在这些协议中,请求可以通过域名转发到内部服务。

1、下载frp资源

FRP下载地址

image.png

2、目录简介

以CentOS系统为例,创建一个文件夹将下载好的压缩包(frp_0.33.0_linux_amd64.tar.gz)解压得到目录中以下文件。

-rwxrwxr-x 1 1000 mysql 10629120 Apr 27 16:59 frpc #客户端启动
-rw-rw-r-- 1 1000 mysql     7575 Apr 27 17:06 frpc_full.ini
-rw-rw-r-- 1 1000 mysql      126 Apr 27 17:06 frpc.ini #客户端配置文件
-rwxrwxr-x 1 1000 mysql 12976128 Apr 27 16:59 frps #服务端启动
-rw-rw-r-- 1 1000 mysql     4639 Apr 27 17:06 frps_full.ini
-rw-rw-r-- 1 1000 mysql       49 Jul  8 10:43 frps.ini #服务端启动
-rw-rw-r-- 1 1000 mysql    11358 Apr 27 17:06 LICENSE
drwxrwxr-x 2 1000 mysql     4096 Apr 27 17:06 systemd

3、案例一:通过SSH访问LAN中的计算机

1.配置服务器端

修改服务器上的frps.ini文件,并设置bind_port

[common] 
bind_port = 7000

启动服务器端

./frps -c ./frps.ini
2.配置客户端

修改服务器上的frps.ini文件,并设置bind_port

  • server_addr:服务器端地址
  • server_port:服务器端端口号
  • local_ip:本地地址
  • local_port:本地ssh连接端口号
  • remote_port:服务器端映射端口号,需要在服务器端开启
[common] 
server_addr = 23.23.23.23 
server_port = 7000 

[ssh] 
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7001

启动客户端

./frpc -c ./frpc.ini
3.测试

从服务器端服务器通过SSH到客户端服务器,如下所示:
x.x.x.x :服务器端ip

ssh -oPort=7001 [email protected]

3、案例二:通过穿透外网访问内网中的tomcat项目

1.配置服务器端

修改服务器上的frps.ini文件,并设置bind_port

[common] 
bind_port = 7000
vhost_http_port = 8080

启动服务器端

./frps -c ./frps.ini
2.配置客户端

修改服务器上的frps.ini文件,并设置bind_port

  • server_addr:服务器端地址
  • server_port:服务器端端口号
  • local_ip:本地地址
  • local_port:本地ssh连接端口号
  • remote_port:服务器端映射端口号,需要在服务器端开启
[common]
server_addr = 服务器端ip
server_port = 7000

[web]
type = http
local_port = 8080
custom_domains = 可以是服务器端ip也可以是服务器端ip解析的域名

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7001

启动客户端

./frpc -c ./frpc.ini
3.测试

访问内网tomcat,如下所示:

ip/域名:8080

4、案例三:frp的其它好用功能

1.访问加密

由于每一个客户端都使用frps的端口,只要别人知道你的域名或者url都能访问你的服务,但是某些服务是私密的或者只想让限定的用户访问。
frp 通过 HTTP Basic Auth 来保护我们的 web 服务,用户可以通过用户名和密码才能访问到服务。
该功能目前仅限于 http 类型的代理,需要在 frpc 的代理配置中添加用户名和密码的设置。

[web]
type = http
local_port = 8080
custom_domains = 可以是服务器端ip也可以是服务器端ip解析的域名
http_user = admin 
http_pwd = admin

5、案例四:Admin UI

Admin UI 可以帮助用户通过浏览器来查询和管理客户端的 proxy 状态和配置。
需要在 frpc.ini 中指定 admin 服务使用的端口,即可开启此功能:

[common]
admin_addr = 内网机器ip
admin_port = 7400
admin_user = admin
admin_pwd = admin

打开浏览器通过 http://ip:7400 访问 Admin UI,用户名密码默认为 admin。
如果想要在外网环境访问 Admin UI,将 7400 端口映射出去即可。

你可能感兴趣的:(frp内网穿透)