云南公司网站制作,建行网银登录,统码营销官网,佛山网站搜索优化文章目录 一、服务端设置二、客户端设置 frp #xff1a;A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet。是一个专注于内网穿透的高性能的反向代理应用#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议#xff0c;且… 文章目录 一、服务端设置二、客户端设置 frp A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet。是一个专注于内网穿透的高性能的反向代理应用支持 TCP、UDP、HTTP、HTTPS 等多种协议且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
背景从公网中访问自己的私有设备向来是一件难事儿。 自己的主力台式机、NAS等等设备它们可能处于路由器后或者运营商因为IP地址短缺不给你分配公网IP地址。如果我们想直接访问到这些设备远程桌面远程文件SSH等等一般来说要通过一些转发或者P2P组网软件的帮助。 我有一台计算机位于一个很复杂的局域网中我想要实现远程桌面和文件访问目前来看其所处的网络环境很难通过简单的端口映射将其暴露在公网之中有如下方法
TeamViewer、向日葵、ToDesk需要两端都有此软件不方便蒲公英VPN软件进行组网可用但免费版本网络速度极慢体验不佳几乎无法正常使用。花生壳软件进行DDNS解析可用但同第二点所述免费版本有带宽限制无法实际使用。搭建frp服务器进行内网穿透可用且推荐可以达到不错的速度且理论上可以开放任何想要的端口可以实现的功能远不止远程桌面或者文件共享。
准备工作搭建一个完整的frp服务链我们需要
VPS一台也可以是具有公网IP的实体机访问目标设备就是你最终要访问的设备
一、服务端设置
服务端设置如下
SSH连接到VPS之后运行arch命令查看处理器架构根据架构下载不同版本的frp
wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.22.0_linux_amd64.tar.gz # 根据架构不同选择相应版本并进行下载(如果是“X86_64“即可选择”amd64”)
tar -zxvf frp_0.22.0_linux_amd64.tar.gz #解压
cp -r frp_0.22.0_linux_amd64 frp # 文件夹改个名方便使用
cd frp # 把解压出来的文件夹复制到你想要的目录下为了方便我直接放在用户目录下了进入该目录
ls -a # 查看一下文件
我们只需要关注如下几个文件frps、frps.ini、frpc、frpc.ini
前两个文件s结尾代表server分别是服务端程序和服务端配置文件后两个文件c结尾代表client分别是客户端程序和客户端配置文件。
rm frpc frpc.ini # 因为我们正在配置服务端可以删除客户端的两个文件vim frps.ini # 然后修改frps.ini文件
# 端口均可使用默认值token、user和password项请自行设置
[common]
bind_port 7000 # 表示用于客户端和服务端连接的端口这个端口号我们之后在配置客户端的时候要用到
dashboard_port 7500 # 服务端仪表板的端口若使用7500端口在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 其中x.x.x.x为VPS的IP查看frp服务运行信息
token 12345678 # 客户端和服务端连接的口令请自行设置并记录稍后会用到
dashboard_user admin # 打开仪表板页面登录的用户名和密码自行设置即可
dashboard_pwd admin # 同上
vhost_http_port 10080 # 反向代理HTTP主机时使用本文不涉及HTTP协议因而照抄或者删除这两条均可。
vhost_https_port 10443 # 同上然后 nohup ./frps -c frps.ini 启动 frps 服务端如果看到屏幕输出这样一段内容即表示运行正常
2023/01/01 15:22:39 [I] [service.go:130] frps tcp listen on 0.0.0.0:7000
2023/01/01 15:22:39 [I] [service.go:172] http service listen on 0.0.0.0:10080
2023/01/01 15:22:39 [I] [service.go:193] https service listen on 0.0.0.0:10443
2023/01/01 15:22:39 [I] [service.go:216] Dashboard listen on 0.0.0.0:7500
2023/01/01 15:22:39 [I] [root.go:210] Start frps success此时访问 x.x.x.x:7500 并使用自己设置的用户名密码登录即可看到仪表板界面
二、客户端设置
frp的客户端就是我们想要真正进行访问的那台设备本文用Windows主机做例子Linux配置方法类似。
同样 wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.22.0_windows_amd64.zip 下载包删除其中的frps和frps.ini文件
vim frpc.ini 如下:[common] # common字段下的三项即为服务端的设置
server_addr x.x.x.x # 服务端IP地址填入即可
server_port 7000 # 服务器端口填入你设置的端口号即可如果未改变就是7000
token won517574356 # 在服务器上设置的连接口令原样填入即可# rdp、smb字段都是自己定义的规则自定义端口对应时格式如下
# “[xxx]”表示一个规则名称自己定义便于查询即可。
# “type”表示转发的协议类型有TCP和UDP等选项可以选择如有需要请自行查询frp手册。
# “local_port”是本地应用的端口号按照实际应用工作在本机的端口号填写即可。
# “remote_port”是该条规则在服务端开放的端口号自己填写并记录即可。
[rdp] # RDP即Remote Desktop 远程桌面Windows的RDP默认端口是3389协议为TCP建议使用frp远程连接前在局域网中测试好能够成功连接后再使用frp穿透连接。
type tcp
local_ip 127.0.0.1
local_port 3389
remote_port 7001
[smb] # SMB即Windows文件共享所使用的协议默认端口号445协议TCP本条规则可实现远程文件访问。
type tcp
local_ip 127.0.0.1
local_port 445
remote_port 7002实际使用时会按照端口号进行对应的转发原理如下图
配置完成frpc.ini后就可./frpc -c frpc.ini 启动frpc了windows 可用 bat 脚本在后台运行之后直接运行这个 .bat 文件即可启动frpc并隐藏窗口可在任务管理器中退出。至于开机启动把这个 .bat 文件直接扔进Windows的开机启动文件夹即可。bat 脚本如下
echo off
if %1 h goto begin
mshta vbscript:createobject(wscript.shell).run(%~nx0 h,0)(window.close)exit
:begin
REM
cd C:\frp # 将cd后的路径更改为你的frpc实际存放的目录
frpc -c frpc.ini
exit正常日志如下
2023/01/01 16:14:56 [I] [service.go:205] login to server success, get run id [2b65b4e58a5917ac], server udp port [0]
2023/01/01 16:14:56 [I] [proxy_manager.go:136] [2b65b4e58a5917ac] proxy added: [rdp smb]
2023/01/01 16:14:56 [I] [control.go:143] [smb] start proxy success
2023/01/01 16:14:56 [I] [control.go:143] [rdp] start proxy success强烈建议你在使用frp直接测试内网穿透前先在局域网内测试好相关功能的正常使用并配置好可能会影响的Windows防火墙等内容在内网调试通过后再使用frp进行内网穿透测试。
此时可以在局域网外用相应程序访问 x.x.x.x:xxxx IP为VPS的IP端口为自定义的remote_port即可访问到相应服务