最近公司搞了一套erp系统,需要远程访问,但是园区的宽带没有公网ip,一开始想用花生壳,但是免费版只有1g的流量,网上搜索一番,发现了frp这款软件,试了一下还可以。
内网穿透工具有很多,其中 Frp (Fast Reverse Proxy) 是比较流行的一款。FRP 是一个免费开源的用于内网穿透的反向代理应用,它支持 TCP、UDP 协议, 也为 http 和 https 协议提供了额外的支持。你可以粗略理解它是一个中转站,帮你实现 公网 ←→ FRP(服务器) ←→ 家庭内网 的连接,让内网里的设备也可以被公网访问到。
1、实现功能
(1)外网通过远程桌面访问内网机器
(2)外网通过ip+端口号访问内网web服务
2、配置前准备
(1)公网服务器1台(我这里演示的是windows2008)
(2)内网服务器1台(我这里演示的是windows10)
(3)公网服务器绑定域名1个
首先需要一台 VPS 服务器用于内网穿透。我这里用的是公司部署网站的阿里云服务器,windows 64位的系统
下载最新frp 官方地址:https://github.com/fatedier/frp/releases/ 我们是64位的所以下载 frp_0.33.0_darwin_amd64.tar.gz 这个。
下载完解压把 frps.exe 和 frps.ini 两个文件上传到 服务器C盘的 frp 文件夹,接着打开 frps.ini 文件来配置服务端
[common]
# 服务器端端口,客户连接时要输入,根据情况自己填
bind_port = 7000
# 客户端连接凭证,客户连接时要输入,根据情况自己填
privilege_token = 12345566
# 最大连接数
max_pool_count = 5
# 客户端映射的端口,远程访问内部web要加的端口号
vhost_http_port = 8080
# 服务器看板的访问端口
dashboard_port = 7500
# 服务器看板账户
dashboard_user = admin
dashboard_pwd = admin
设置完以上配置,保存退出,然后启动服务器
以管理元身份打开运行输入CMD,然后输入 c:\frp\frps.exe -c c:\frp\frps.ini 在任务管理器能看到frps.exe的进程就说明已经运行成功了。
如果是阿里云的话需要在控制面板安全策略里把上面 bind_port = 7000和vhost_http_port = 8080 这两个对应的7000端口和8080端口的tcp端口放行
把上面解压完的文件打开找到 frpc.exe 和 frpc.ini 两个文件 复制到内网需要远程访问的电脑C盘的 frp 文件夹,接着打开 frpc.ini 文件来配置客户端
[common]
# 服务器的ip地址
server_addr = 101.x.x.x
# 服务端设置的端口号
server_port = 7000
# 服务端设置的连接凭证
token = 12345566
[web]
type = http
# 本地web服务的端口号
local_port = 81
local_ip = 127.0.0.1
# 如需远程桌面访问本地电脑添加下面内容
[yumianfeilong]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
# 远程桌面访问时需要添加的端口号(注意在阿里云安全策略放行该端口)
remote_port = 7788
以管理员身份打开运行输入CMD,然后输入 c:\frp\frpc.exe -c c:\frp\frpc.ini 在任务管理器能看到frpc.exe的进程就说明已经运行成功了。
然后服务器ip+8080 试试能不能远程访问内部的web服务, 服务器ip+7788 试试能不能远程桌面连接内网的电脑(内网电脑要打开远程访问才可以,怎么打开自己百度吧)
最后说一下怎么把frp添加到系统服务开机启动,可以通过 winsw 来实现,下面以客户端为例
下载winsw程序,选择对应版本。(win10可以用WinSW.NET4.exe)下载地址:https://github.com/winsw/winsw/releases
安装.NET Framework。(win10默认自带)
将WinSW.NET4.exe复制c盘frp文件夹,并重命名为winsw.exe
同目录下创建winsw.xml。特别注意,xml和exe必须同名,xml内容如下
<service>
<id>frpc</id>
<name>frpc</name>
<description>frpc service</description>
<executable>frpc</executable>
<arguments>-c frpc.ini</arguments>
<onfailure action="restart" delay="60 sec"/>
<onfailure action="restart" delay="120 sec"/>
<logmode>reset</logmode>
</service>
用管理员权限打开CMD,输入cd.. 到C盘根目录 然后输入 cd frp 到 winsw.exe 所在目录,输入 winsw.exe install,安装 winsw.exe, 输入 winsw.exe start 运行 winsw.exe
在系统服务里能看到frpc这个服务同时任务管理器里也能看到 frpc.exe 这个进程就说明已经成功了
补充:
Windows Servcie Wrapper的命令格式如下:
# 安装服务
winsw.exe install
# 卸载服务
winsw.exe uninstall
# 启动服务
winsw.exe start
# 停止服务
winsw.exe stop
评论列表: