15
2020
09

用frp实现无公网ip的内网穿透

最近公司搞了一套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 来实现,下面以客户端为例


  1. 下载winsw程序,选择对应版本。(win10可以用WinSW.NET4.exe)下载地址:https://github.com/winsw/winsw/releases

  2. 安装.NET Framework。(win10默认自带)

  3. WinSW.NET4.exe复制c盘frp文件夹,并重命名为winsw.exe

  4. 同目录下创建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>


  5. 用管理员权限打开CMD,输入cd.. 到C盘根目录 然后输入 cd frp 到 winsw.exe 所在目录,输入 winsw.exe install,安装 winsw.exe, 输入 winsw.exe start 运行 winsw.exe

    在系统服务里能看到frpc这个服务同时任务管理器里也能看到 frpc.exe 这个进程就说明已经成功了

    QQ截图20200918173321.png

    QQ截图20200918173805.png

补充:

Windows Servcie Wrapper的命令格式如下:

# 安装服务

winsw.exe install

# 卸载服务

winsw.exe uninstall

# 启动服务

winsw.exe start

# 停止服务

winsw.exe stop


« 上一篇下一篇 »

相关文章:

评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。