frp实现内网穿透
一、frp概述
如果你需要访问内网机器上部署的应用或者服务器,但是又是没有公网IP的内网用户怎么办呐?frp就是用内网穿透工具将内网的服务穿透到工网中,便于远程管理和外部访问,支持tcp、udp、http、https等协议类型,并且支持web服务器根据域名进行路由转发。
二、frp作用
- 利用处于内网或防火墙的后机器、对外网提供http或https服务。
- 对http、https服务支持基于域名的虚拟主机,支持自定义域名绑定,使用多个域名共用一个80端口。
- 利用处于内网或防火墙后的机制,对外网环境提供tcp和udp服务。例如在家通过SSH访问处于公司内网环境的主机。
三、配置前准备
- 公网服务器一台
- 内网服务器一台
- frp安装包:下载地址:https://github.com/fatedier/frp/releases(根据需要进行下载,这里我安装的是frp_0.31.1_linux_amd64.tar.gz)
四、安装frp
**说明:**frp分为客户端(frpc)和服务端(frps),下载的安装包包含了服务端(公网安装)和客户端(内网安装)。如果要安装服务端,就把客户端文件frpc.ini和frpc删掉,配置vi ./frps.ini
,然后启动服务端即可;如果要启动客户端,把服务端的对应文件frps和frps.ini删除,配置frpc.ini,然后启动客户端即可,配置如下。
- 服务端配置
#1.上传frp安装包
#2. 解压
tar -zxvf frp_0.13.0_linux_amd64.tar.gz
#3. 删除客户端文件
rm -rf frpc frpc.ini
#4. 配置frps.ini
[common]
bind_port = 7000 #与客户端绑定的进行通信的端口
vhost_http_port = 6081 #访问客户端web服务自定义的端口号
#5. 启动服务器端
./frps -c ./frps.ini #前台启动
nohup ./frps -c ./frps.ini & #后台启动
- 客户端配置
#1.上传frp安装包
#2. 解压
tar -zxvf frp_0.13.0_linux_amd64.tar.gz
#3. 删除服务端文件
rm -rf frps frps.ini
#4. 配置frpc.ini
[common]
server_addr = 120.56.37.48 #公网服务器ip,也就是你部署的frps地址
server_port = 7000 #与服务端bind_port一致,用于通信
#公网通过ssh访问内部服务器
[ssh]
type = tcp #连接协议
local_ip = 192.168.3.48 #内网服务器ip
local_port = 22 #ssh默认端口号
remote_port = 6000 #自定义的访问内部ssh端口号
#公网访问内部web服务器以http方式
[web]
type = http #访问协议
local_port = 8081 #内网web服务的端口号
custom_domains = repo.iwi.com #所绑定的公网服务器域名,一级、二级域名都可以,也可以是服务器ip
#5. 启动服务器端
./frpc -c ./frpc.ini #前台启动
nohup ./frpc -c ./frpc.ini & #后台启动
五、验证frp
浏览器输入repo.iwi.com:6081是否可以成功访问。
ip:120.56.37.48 port:6000 用户名:linux服务器的用户 密码:linux服务器的密码 或者
ip:120.56.37.48 port:22 用户名:linux服务器的用户 密码:linux服务器的密码 或者
ip:repo.iwi.com port:6000 用户名:linux服务器的用户 密码:linux服务器的密码 或者
ip:repo.iwi.com port:22 用户名:linux服务器的用户 密码:linux服务器的密码
六、参考链接
- https://blog.csdn.net/u013144287/article/details/78589643/
- https://blog.csdn.net/m0_37499059/article/details/79587771
- https://www.jianshu.com/p/00c79df1aaf0(推荐)