##配置frp实现内网穿透
###一、frp的作用
利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
###二、配置frp
1、实现功能
(1)外网通过ssh访问内网机器
(2)自定义绑定域名访问内网web服务
2、配置前准备
(1)公网服务器1台
(2)内网服务器1台(我这里演示的是linux环境,win10上面vmware安装的centos7)
(3)公网服务器绑定域名1个(实现二1中(1)功能不需要公网服务器绑定域名,二1中(2)功能需要公网服务器绑定域名)
(4)内网服务器部署一个web服务,可以用tomcat模拟,这里就不演示了
###三、安装frp
1、公网服务器与内网服务器都需要下载frp进行安装,公网服务器(服务端)配置关注步骤6,内网服务器(客户端)关注步骤7
2、下载地址是https://github.com/fatedier/frp/releases,下载linux版本frp_0.38.0_linux_amd64.tar.gz,个人感觉下载速度有点慢,可以在本站下载:frp_0.38.0_linux_amd64.tar,windows版本可能会报病毒,该软件确实会使用一些敏感权限,是正常的。
3、解压tar -zxvf frp_0.38.0_linux_amd64.tar.gz
4、进入解压目录cd frp_0.38.0_linux_amd64,这里主要关注4个文件,分别是frpc、frpc.ini和frps、frps.ini,前者两个文件是客户端所关注文件,后者两个文件是服务端所关注两个文件。
5、配置服务端(公网服务器),首先删掉frpc、frpc.ini两个文件,然后再进行配置。
vi ./frps.ini
[common] bind_port = 7000 #与客户端绑定的进行通信的端口 token = 52010 #服务端与客户端互相验证的一个口令,可以自己设置 vhost_http_port = 6081 #访问客户端web服务自定义的端口号 #后面的是可选配置 dashboard_port = 7500 #frp网页管理端口 dashboard_user = root dashboard_pwd = 123456 enable_prometheus = true #日志 log_file = /var/log/frps.log log_level = info log_max_days = 3
保存然后启动服务./frps -c ./frps.ini,这是前台启动,后台启动命令为nohup ./frps -c ./frps.ini &
6、把frps设置为系统进程,方便启动,关闭
mkdir -p /etc/frp cp frps.ini /etc/frp cp frps /usr/bin cp systemd/frps.service /usr/lib/systemd/system/ firewall-cmd --zone=public --add-port=7000 --permanent firewall-cmd --zone=public --add-port=6081 --permanent firewall-cmd --zone=public --add-port=7500 --permanent firewall-cmd --zone=public --add-port=6000/tcp --permanent systemctl enable frps systemctl start frps
7、配置客户端(内网服务器),首先删掉frps、frps.ini两个文件,然后再进行配置,
vi ./frpc.ini
[common] server_addr = 66.254.114.210 #公网服务器ip server_port = 7000 #与服务端bind_port一致 token = 52010 #公网通过ssh访问内部服务器 [ssh] type = tcp #连接协议 local_ip = 127.0.0.1 #内网服务器ip local_port = 22 #ssh默认端口号 remote_port = 6000 #自定义的访问内部ssh端口号 #公网访问内部web服务器以http方式 [web] type = http #访问协议 local_ip = 127.0.0.1 local_port = 80 #内网web服务的端口号 custom_domains = 你的域名 #所绑定的公网服务器域名,一级、二级域名都可以 保存然后执行./frpc -c ./frpc.ini启动,这是前台启动,后台启动命令为nohup ./frpc -c ./frpc.ini &
8、访问方式
(1)外网ssh访问内网服务器
#ssh
ssh 内网linux用户名@外网ip:remote_port
ssh root@66.254.114.210:6000
passwd:内网服务器的root用户的密码
(2)自定义绑定域名访问内网web服务
http://你的域名:6081
参考:https://blog.csdn.net/u013144287/article/details/78589643/
原文链接:https://blog.csdn.net/qq_43215327/article/details/121329081