内网穿透frp

内网穿透用途列举:

1、你想在家里办公,但需要上公司内网服务器(内网服务器能访问公网,但没有固定公网IP)。

2、公司项目一般上线前都要在内网环境测试,但部分功能需要外网才能完成测试,比如某些接口测试。

用frp工具完成内网穿透有如下要求:

1、需要有个公网服务器,将会在公网服务器上部署frp服务端,搭建完成后你访问的公网地址和端口就是这台服务器的。

2、内网服务器必须具备访问公网的能力,因为它作为frp的客户端,需要与frp服务端进行通信。

 

内网穿透分为多种,主要包括 TCP,HTTP,UDP。

其中TCP主要用来映射SSH端口,Socks通信端口,没有域名的HTTP服务器端口等。

HTTP主要用来映射有域名的HTTP服务器

UDP主要用来映射DNS查询端口等。

开始操作。。。

服务端部署:

1、下载frp安装包

地址:https://github.com/fatedier/frp/releases

2、安装

mkdir -p /usr/local/frp

cd /usr/local/frp

wget  https://github.com/fatedier/frp/releases

tar  -xzf  frp_0.21.0_linux_amd64.tar.gz

cd  frp_0.21.0_linux_amd64

#进入后查看到如下内容,由于是服务端,所以必须将客户端的程序和配置文件删除,不然无法正常使用

 

rm  -rf  frpc  frpc.ini

客户端部署:

同服务端操作基本一致,只不过作为客户端需要将服务端的启动程序和配置文件删除,不然无法正常使用

rm  -rf  frps  frps.ini

-------------------------------------------------------------------------------------------------------------------------

服务端(配置一

[common]
#服务端本地地址,如果有多个网卡,最好指定一个,若只有一个,如下即可
bind_addr = 0.0.0.0
#服务端和客户端通信端口
bind_port = 7000
#服务器端开放6080端口供外部http方式访问,对应客户端(配置一)
vhost_http_port = 6080
#frp后台监控设置(可选)
dashboard_port = 7500
#dashboard 用户名密码可选,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin

前台启动方式命令:./frps -c ./frps.ini

后台启动方式命令:nohup ./frps -c ./frps.ini &

 

 特殊说明:上面配置中vhost_http_port配置项,对应客户端设置域名的web服务(意思是指我们想访问内网服务器的web服务时必须是通过服务端域名www.xxx.com:6080的方式访问,即访问到下面客户端http通信方式的web)

客户端(配置一

[common]
#服务端公网地址
server_addr = 321.123.369.963
#服务器端通信端口
server_port = 7000
#服务命名,不限制命名
[ssh]
#指定通信方式
type = tcp
#客户端服务器本地地址
local_ip = 127.0.0.1
#指定ssh服务的端口
local_port = 22
#作用是:ssh登陆时用服务端公网地址加6000端口即可访问到客户端服务器
remote_port = 6000
[web]
type = http
local_port = 80
#http通信方式必须指定服务端的域名,访问方式即:www.xxx.com:6080 就可以访问到客户端的80端口
custom_domains = www.xxx.com
[eureka]
type = tcp
local_ip = 127.0.0.1
#8761是客户端eureka监听端口,访问服务端321.123.369.963加7001端口即可访问到客户端的8761 local_port = 8761 remote_port = 7001

 

前台启动方式命令:./frpc -c ./frpc.ini

后台启动方式命令:nohup ./frpc -c ./frpc.ini &

-------------------------------------------------------------------------------------------------------------------------------

服务端(配置二

[common]
#服务端本地地址,如果有多个网卡,最好指定一个,若只有一个,如下即可
bind_addr = 0.0.0.0
#服务端和客户端通信端口
bind_port = 7000
#frp后台监控设置(可选)
dashboard_port = 7500
#dashboard 用户名密码可选,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin

前台启动方式命令:./frps -c ./frps.ini

后台启动方式命令:nohup ./frps -c ./frps.ini &

客户端(配置二

[common]
server_addr = 321.123.369.963
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[web]
#与配置一不同的地方的是此处使用了tcp方式来访问web,主要是针对没有公网域名的方式时。
type = tcp
local_port = 80
local_ip = 127.0.0.1
remote_port = 6080
[eureka]
type = tcp
local_ip = 127.0.0.1
local_port = 8761

前台启动方式命令:./frpc -c ./frpc.ini

后台启动方式命令:nohup ./frpc -c ./frpc.ini &

 

回头再看,配置一配置二差异:

相同处:TCP通信方式的穿透设置都一样

不同处:

    配置一:此配置访问web服务时,主要针对公网有可用域名,服务端配置了vhost_http_port = 6080这一项,

        访问web时需要www.xxx.com(一、二级域名都可);

    配置二:此配置访问web服务时,主要针对公网无可用域名,服务端配置少了vhost_http_port =这一项(其实

        有也会被无视掉,但不影响使用),客户端配置是将web作为tcp方式请求。

 再一个特殊说明:

所有需要对外提供访问的服务端口都记得开放防火墙或安全组(客户端不用说和服务端一定要记得)

posted @ 2018-12-07 19:26  云深知处  阅读(524)  评论(0编辑  收藏  举报