Frp 内网穿透
一、 Frp
FRP是Fast Reverse Proxy的缩写,它是一款开源、高性能、跨平台的内网穿透工具。FRP允许您通过安全地穿透NAT和防火墙来访问您的本地服务器,以便您可以从任何地方访问您的应用程序和服务。它的工作方式是将来自互联网的请求转发给本地网络中的应用程序,从而使应用程序看起来好像直接在互联网上运行。
二、基本环境
1 可以有公网IP的实体机(比如vps等)
2 目标设备(就是你内网中的机器)
三、服务端部署
1 下载frp安装包 登录公网服务(vps) 查看相应的架构型号,按照不同型号下载不同版本
下载地址: https://github.com/fatedier/frp/releases/
源码链接: https://sspai.com/post/52523
arch
如果是“X86_64“即可选择”amd64” 可以通过命令直接下载,也可以下载压缩包再上传到服务器,这里我用的是0.22版本你可以选择最新版本
解压 tar -zxvf frp_0.22.0_linux_amd64.tar.gz
2 修改配置 将解压后的文件目录frp_0.22.0_linux_amd64 改名为 frp cd 进入frp, ls 查看会出现下图中的文件
关注下面几个文件
- frps
- frps.ini
- frpc
- frpc.ini
前两文件,s结尾代表server,分别是服务端程序和服务端配置文件后两个文件,c结尾代表client。分别是客户端程序和客户端配置文件。
我们当前操作的是服务端(也就说,公网服务作为部署frp的服务端)
编辑 服务端配置文件frps.ini,(按照下面配置修改)
[common] bind_port = 7000 #客户端和服务端连接的端口 authentication_timeout = 0 dashboard_port = 7500 #服务端web页面的端口,如7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为公网服务的IP)查看frp服务运行信息 token = 12121212 # 服务端加了 客户端必须添加,也可以都不设置 dashboard_user = admin dashboard_pwd = admin_1122 vhost_http_port = 10080 #代理HTTP主机 vhost_https_port = 10443 #代理HTTPs主机 #subdomain_host = frp.com # 子域名 #custom_404_page = /frp/404.html # 自定义404 页面,绝对路径
保存退出 ,启动服务端命令
./frps -c frps.ini
登录服务web页面(用户名dashboard_user, 密码dashboard_pwd)
可以借助screen ,nohup 等进行后台运行
后台启动 nohup ./frps -c frps.ini > log 2>&1 & 查看任务 jobs -l
frp服务端启动成功打印
自此服务端配置完成
四、客户端部署
客户端是目标设备 (也就是你本地内网的机器)
1下载frp安装包
与服务操作是相同,就是修改frp客户端文件(frpc.ini文件),下载安装版上传到本地服务,解压等步骤不再过多描述
2 修改配置 我们当前操作的是客户端(也就说,内网服务作为部署frp的客户端)
编辑服务端配置文件frpc.ini
下列配置是代理http/https 协议的配置demo
1 #没有域名情况下 [common] server_addr = #公网ip地址,vps server_port = 7000 服务的bind_port token = 12121212 [httpname] type = tcp # 没有域名情况下使用 tcp local_ip = 127.0.0.1 local_port = 8000 #本地服务端口 remote_port = 8080 # 远程访问端口,x.x.x.x:8080 x.x.x.x(vps等公网ip) 2 #有域名配置 [httpname] type = http local_port = 80 local_ip = 127.0.0.1 custom_domains = www.demo1.com [httpsname] type = https local_port = 443 local_ip = 127.0.0.1 custom_domains = www.demo2.com
配置完成启动
./frpc -c frpc.ini
自此客户端配置完成 可以借助screen ,nohup 等进行后台运行
五、效果
在客户端可以检测代理端口的情况可以看到已经成功代理一个 访问端口为8080
访问x.x.x.x:8080 效果 x.x.x.x为vps等公网ip
六、拓展
其他协议配置代理案列更多的配置请自行在网络上搜索
[common] server_addr = x.x.x.x server_port = 7000 token = 8** [rdp] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 8081 [smb] type = tcp local_ip = 127.0.0.1 local_port = 445 remote_port = 8082
几个重要的参数
“[xxx]” 表示一个规则名称,自定义,见名知意。
“type” 表示转发的协议类型,有TCP和UDP等选项可以选择,如有需要请自行查询frp手册。
“local_port” 是本地应用的端口号,按照实际应用工作在本机的端口号填写即可。
“remote_port” 是该条规则在服务端开放的端口号,用于远程访问。
七、可能出现的问题
1 防火墙端口开放状态
2 web代理占用比如nginx
八、一站式导航初版
网站导航链接:https://www.51istudy.top/
导航为初版,希望得到您的邮箱反馈,也希望对您有所帮助,也可以通过邮箱提供站点内容,丰富站点