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/

导航为初版,希望得到您的邮箱反馈,也希望对您有所帮助,也可以通过邮箱提供站点内容,丰富站点

 

posted @ 2023-06-12 09:10  行走的ID  阅读(63)  评论(0编辑  收藏  举报