FRP内网穿透实现多种功能及实用性测试

2018-10-11 17:00:00 27点赞 271收藏 81评论

在9月份,腾讯云上有一个拼团购买云服务器的活动,90多块钱就能买15个月的云服务器,虽然配置很低,1G内存+1核CPU+1M带宽,这个配置的话,操作系统选择CentOS就好,选择windows系统会很卡,但是这个配置自己搭图个wordpress做博客还是足够了的,新用户还有购买域名的优惠券cn域名可以做到35块钱两年。当时我云服务器和域名一块购买之后,第一件事情当然是备案了,因为快到国庆假期,备案的时间又被延长,但是服务器不能这样放着浪费了,就试着搭一个frp内网穿透服务器。

需要准备的软件:Putty

frp下载地址

一、服务器端配置

使用putty登陆服务器

FRP内网穿透实现多种功能及实用性测试

用户名root,密码是你自己设置的服务器的密码

FRP内网穿透实现多种功能及实用性测试

登录成功之后,下载服务器对应的frp,因为我的系统是CentOS 64位的,所以下载的是64位版本

下载:wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz

下载完成之后,用tar指令解压:tar -zxvf frp_0.21.0_linux_amd64.tar.gz

解压完成,进入frp目录文件夹:cd frp_0.21.0_linux_amd64

删除不需要客户端的文件:rm -f frpc frpc_full.ini frpc.ini

编辑frps.ini配置文件:vi frps.ini

键盘上的INSERT键进入编辑状态,写入下面的内容,括号及里面内容不要

[common]

bind_port = 7000(frp服务端口,可自定义)

vhost_http_port = 8080(http访问端口,可自定义,我这里使用8080)

dashboard_port = 7500(访问dashboard端口)

dashboard_user = aaaaa(这里写frp控制台的管理用户名,自定义的)

dashboard_pwd =123456 (这里写frp控制台的管理密码,自定义的)

max_pool_count = 10(最大连接池数量)

authentication_timeout = 900 (超时验证时间,单位是秒)

subdomain_host =XXXXXX.cn(我的域名)


[ssh]

listen_port = 6000(服务器ssh访问端口,可自定义)

auth_token =abcdefg(客户端与服务器端身份验证,可自定义)

frps.ini文件配置frps.ini文件配置


编辑好内容之后,按ESC键,然后输入“:wq”,按回车保存即可

启用frp服务:nohup ./frps -c ./frps.ini &

在浏览器中输入 你的域名:7500(如XXXXXX.cn:7500),如果弹出要求输入用户名和密码的界面,则表示frp服务器端配置成功,这时候输入frps.ini中设置的用户名和密码就可以登陆进去了,界面如下图所示

FRP内网穿透实现多种功能及实用性测试

二、frp客户端配置访问群晖NAS及路由器

首先,需要在群晖里面打开SSH,打开方式:控制面板-->终端机和SNMP-->终端机,将“启用SSH功能”勾上,点击应用

打开SSH打开SSH

使用putty登录群晖,IP地址就是群晖的IP地址,用户名和密码就是群晖的管理员用户和密码

登录成功之后,输入:sudo -i 切换到root用户,会要求再次输入密码

切换到root用户切换到root用户

下载frp客户端,因为我的群晖是DS218+,所以下载32位的版本

下载:wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_386.tar.gz

用tar指令解压:tar -zxvf frp_0.21.0_linux_386.tar.gz

解压完成,进入frp目录文件夹:cd frp_0.21.0_linux_386

删除不需要服务器端的文件:rm -f frps frps_full.ini frps.ini

编辑frpc.ini配置文件:vi frpc.ini

按键盘上的INSERT键进入编辑状态,写入下面的内容,括号及里面内容不要

[common]

server_addr = XXX.XXX.XXX.XXX(云服务器的IP地址)

server_port = 7000

auth_token=abcdefg(与服务器端的auth_token对应)

pool_count=1

[ssh1](别名,可自定义)

type = tcp (服务类型(tcp、http、https、udp))

local_ip = 127.0.0.1(内网IP地址,本机可以填写127.0.0.1)

local_port = 22

remote_port = 6001

[nas1](别名,可自定义)

type = http(服务类型(tcp、http、https、udp))

local_port = 5000(NAS端口,群晖默认是5000)

subdomain = nas(二级域名前缀,访问时用nas.XXXXXX.cn:8080就直接访问群晖了)

[web1](别名,可自定义)

type = http(服务类型(tcp、http、https、udp))

local_ip=192.168.2.1(内网IP地址,我这里是需要访问路由器,所以填写路由器的内网地址)

local_port = 80(端口号,一般是80端口)

subdomain = asus(二级域名前缀,访问时用asus.XXXXXX.cn:8080就直接访问路由器了)

frpc.ini配置frpc.ini配置

配置完成之后,启动frp服务:nohup ./frpc -c ./frpc.ini &

然后在frp控制台界面可以看到刚才我们设置的这些内容

FRP内网穿透实现多种功能及实用性测试

FRP内网穿透实现多种功能及实用性测试

显示这样,就表示已经配置成功了,但是如果要访问,还需要在腾讯云里面进行域名解析

FRP内网穿透实现多种功能及实用性测试

设置了域名解析之后,我们就可以访问frp里面设置内网穿透的页面了

访问路由器访问路由器

访问群晖NAS访问群晖NAS

三、设置群晖frp开机启动

putty登录群晖,输入:sudo -i,切换到root用户

新建脚本文件:vi /usr/syno/etc.defaults/rc.sysv/S99frp.sh

编辑脚本文件,按INSERT键进入编辑状态,输入下面内容

#/bin/bash

cd /root/frp_0.21.0_linux_386

nohup ./frpc -c ./frpc.ini &

按ESC键,输入“:wq”按回车保存退出

输入:cd /usr/syno/etc.defaults/rc.sysv ,进入文件目录

设置权限:chmod +x S99frp.sh

在群晖中设置开机自动启动,在群晖中打开 控制面板-->任务计划-->新增-->触发的任务-->用户定义的脚本

FRP内网穿透实现多种功能及实用性测试

在常规中,输入任务名称,用户账号:root,事件:开机,将已启动勾选上

FRP内网穿透实现多种功能及实用性测试

在任务设置中用户定义的脚本填上:/usr/syno/etc.defaults/rc.sysv/S99frp.sh,点击确定就完成了

FRP内网穿透实现多种功能及实用性测试

四、windows下frp配置及实现windows桌面远程

根据windows版本下载对应的frp,我的电脑是windows server 2016操作系统,所以下载的是64位的版本

下载地址:https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_windows_amd64.zip

下载完成后,解压,然后配置frpc.ini,写入下面的内容,括号及里面内容不要,写好之后保存即可

[common]

server_addr = XXX.XXX.XXX.XXX(云服务器的IP地址)

server_port = 7000

auth_token=abcdefg(与服务器端的auth_token对应)

pool_count=1

[rdp](别名,可自定义)

type = tcp (服务类型(tcp、http、https、udp))

local_ip = 127.0.0.1(内网ip地址,本机可填写127.0.0.1)

local_port = 3389(内网远程桌面所需要的端口号,默认是3389)

remote_port = 33890(远程端口号,可以自定义)

设置windows开机自动启动

打开 控制面板-->所有控制面板项-->管理工具,找到任务计划程序,打开

FRP内网穿透实现多种功能及实用性测试

FRP内网穿透实现多种功能及实用性测试

在任务计划中点击创建任务,设置如下图,隐藏选项必须勾选,不然任务在运行时会弹出一个窗口,如果关闭窗口则frp服务就会关闭

FRP内网穿透实现多种功能及实用性测试

FRP内网穿透实现多种功能及实用性测试

在操作选项卡下面选择新建程序或脚本选择frp目录下的frpc.exe程序

添加参数那里输入:-c D:frp_0.21.0_windows_amd64frpc.ini

输入内容需要根据frp文件所在的路径填写

FRP内网穿透实现多种功能及实用性测试

设置完成之后,直接右键-->运行即可

FRP内网穿透实现多种功能及实用性测试

这时候,我们可以在frp控制台上看到刚才设置的这个远程

FRP内网穿透实现多种功能及实用性测试

打开远程桌面连接,输入域名加端口号,如(XXXXX.cn:33890),就可以实现远程桌面连接了

远程桌面远程桌面

五、性能测试

1、NAS传输

NAS上传NAS上传

受限于云服务器的带宽只有1M,上传速度及下载速度只能达到130kb/s左右的速度,如果是群晖的话,建议使用自带的quickconnect,但是如果不能使用quickconnect功能(黑群晖),使用frp来操作上面的小文件及文档也是不错的选择。

2、web网页访问

首次访问加载速度较慢,但是加载完成之后操作页面内容还是比较流畅的。

3、远程桌面连接

远程桌面连接没有明显卡顿现象,操作很流畅,比较适合在家里远程单位电脑。

总结

写到这,大家是不是发现了,为什么只有客户端设置开机启动的教程,没有服务器端开机启动的教程,因为我在网上找了一个服务器端开机启动的教程,设置了一下,没报错,但是启动不成功,所以暂时没有写进来,而且以后服务器要用作web服务器使用,重启的机会很少,就懒得继续折腾了FRP内网穿透实现多种功能及实用性测试

现在家用带宽基本都是200M以上的下行带宽,20M以上的上行带宽,所以frp内网穿透的速度取决与云服务器的带宽,所以使用frp来使用群晖NAS在外网进行上传下载就不太现实,速度可以让你回到10多年前,但是操作几兆的小文件还是可以的。

如果经常需要在家里远程单位的电脑,使用frp进行桌面远程,比使用teamviewer这种远程工具更好用,而且teamviewer远程工具使用太频繁,就会认为你是商业用途,需要付费才能使用了。

最后,搭建frp的教程我也是参考网友写的教程来一步一步操作的,这里放上原文地址

展开 收起

Microsoft 微软 在线发码 正版多年office365家庭microsoft365 Microsoft365 -

Microsoft 微软 在线发码 正版多年office365家庭microsoft365 Microsoft365 -

289元起

卡巴斯基(kaspersky)网络解决方案中小企业版杀毒软件1服务器10台PC三年升级

卡巴斯基(kaspersky)网络解决方案中小企业版杀毒软件1服务器10台PC三年升级

3990元起

华三(H3C) SecPath F100-BAS AV 防病毒 License,3年

华三(H3C) SecPath F100-BAS AV 防病毒 License,3年

6904元起

华三(H3C) SecPath F100-BAS URL特征库升级服务授权函,3年

华三(H3C) SecPath F100-BAS URL特征库升级服务授权函,3年

2701元起

Microsoft 微软 OfficePLUS 订阅会员

Microsoft 微软 OfficePLUS 订阅会员

暂无报价

微软Office 365 15个月家庭版 职场利器 智能功能 电脑必备1年6人同享

微软Office 365 15个月家庭版 职场利器 智能功能 电脑必备1年6人同享

628元起

微软(Microsoft)365/Office 个人版 文档自动保存 各设备通用 1年盒装 5设备同享

微软(Microsoft)365/Office 个人版 文档自动保存 各设备通用 1年盒装 5设备同享

暂无报价

360企业级终端防病毒系统(涉密计算机平台)单机版

360企业级终端防病毒系统(涉密计算机平台)单机版

暂无报价

微软支持重装绑 office2021永久激活码2019终身版macoffice软件 Office2021小型企业版for Mac

微软支持重装绑 office2021永久激活码2019终身版macoffice软件 Office2021小型企业版for Mac

389元起

Microsoft 微软 Office 365 个人版

Microsoft 微软 Office 365 个人版

106元起

《Nebo》触屏笔记类软件 Windows版

《Nebo》触屏笔记类软件 Windows版

暂无报价

Nintendo 任天堂 Switch游戏卡带《大航海时代4 威力加强版 HD》 中文

Nintendo 任天堂 Switch游戏卡带《大航海时代4 威力加强版 HD》 中文

196元起

任天堂Switch游戏 NS塞尔达传说 荒野之息 旷野之息 中文现货

任天堂Switch游戏 NS塞尔达传说 荒野之息 旷野之息 中文现货

310元起

非接触式AI智能心理监护系统

非接触式AI智能心理监护系统

488000元起

Microsoft 微软 365家庭版个人版正版密钥Office365永久激活2021Mac

Microsoft 微软 365家庭版个人版正版密钥Office365永久激活2021Mac

129元起

自助挂号应用服务

自助挂号应用服务

15000元起
81评论

  • 精彩
  • 最新
  • ***搬瓦工19.99美元一年,每个月只要十来块人民币,比这个不知强多少倍

    校验提示文案

    提交
    同搬瓦工19.9,frp连家里群晖,下载速度至少能稳定在300、400,网好的时候1m多点吧 [阴脸]

    校验提示文案

    提交
    搞活动的时候以为很难得,360买了3年1核1m的装了win用来挖矿和ftp [狂汗]

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 花生壳就挺好用

    校验提示文案

    提交
    并不,数据经过了他们的服务器,并不私人云 [邪恶]

    校验提示文案

    提交
    还限流吧 zsbd

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 经常遇到一个问题,多次关闭服务端或客户端,重连后,容易出现明明客户端显示已连接,代理创建成功,但是外网访问不了,服务端那边log里也没有请求,楼主遇到过没

    校验提示文案

    提交
    没有遇到过

    校验提示文案

    提交
    收起所有回复
  • 1m带宽有点鸡肋

    校验提示文案

    提交
    搭个WordPress还是可以的,其他的属于瞎折腾

    校验提示文案

    提交
    收起所有回复
  • 凡是无法自启的用一律用screen肯定没问题

    校验提示文案

    提交
    求详细步骤 [脸红]

    校验提示文案

    提交
    touch start.sh; chmod 0755 start.sh; echo "screen_name=\"my_screen\"" >> start.sh; echo "screen -dmS \$screen_name" >> start.sh; echo "cmd=\$\"./frps -c ./frps.ini\"" >> start.sh; echo "screen -x -S \$screen_name -p 0 -X stuff \"\$cmd\"" >> start.sh; echo "screen -x -S \$screen_name -p 0 -X stuff \$'\n'"; 然后在开机启动脚本里边加一句sh start.sh就可以了

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 外网1mb还不如花生壳。。。
    就是受不了1mb我才用的frp(挂在千兆鸡上)

    校验提示文案

    提交
    千兆鸡是什么

    校验提示文案

    提交
    千兆服务器

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 作者你好,我申请了阿里云的域名xxxxx.xyz这样的域名,添加了*和@的A型解析,买了阿里云的云主机。
    我按照你的教程进行到这一步打不开frp的界面,能帮我看看是什么原因吗?

    校验提示文案

    提交
    就是用我的域名XXXX.xyz:7500打不开frp的控制台,能帮我看看是什么问题吗?

    校验提示文案

    提交
    你做域名解析了没有

    校验提示文案

    提交
    还有14条回复
    收起所有回复
  • 服务端上docker啊,全方位的超越自己部署

    校验提示文案

    提交
    我没弄那个,就一个frp,一个MySQL加PHP搭WordPress

    校验提示文案

    提交
    收起所有回复
  • 内网穿透后,看nas的视频好卡,有什么好办法吗?

    校验提示文案

    提交
    这个得看主机多大带宽啊

    校验提示文案

    提交
    测试了一下,是这样的。但是手机4G的速度真的是慢,貌似无解!

    校验提示文案

    提交
    收起所有回复
  • frpc端的ssh remote_port = 6001 和frps端的ssh listen_port 这两个要一样么?

    校验提示文案

    提交
    不需要,根据实际情况设置

    校验提示文案

    提交
    收起所有回复
  • 输入完最后一个命令后提示错误这个怎么办

    校验提示文案

    提交
    我不知道你说的最后一个命令是哪一个呢

    校验提示文案

    提交
    收起所有回复
  • 运营商把端口封了的话,是不是就不能用了。这个

    校验提示文案

    提交
    可以用,没问题

    校验提示文案

    提交
    但是我这里一直提示:
    The page you visit not found.
    Sorry, the page you are looking for is currently unavailable.
    Please try again later.

    The server is powered by frp.

    Faithfully yours, frp.
    放在NAS里和路由器里,都是这样的。

    校验提示文案

    提交
    收起所有回复
  • 内网穿透最先用的是ngrok,后来也用过frp,再后来一直在用nat123

    校验提示文案

    提交
    nat123如果不花钱,网速还是慢了点

    校验提示文案

    提交
    收起所有回复
  • frp现在有xtcp模式,就是p2p经过服务器介绍两个主机认识之后,不再经过服务器传递数据,而是两个主机直连。俗称udp打洞。这种连接方式的范例,在frp的github首页中有介绍。

    校验提示文案

    提交
    什么版本之后有的功能,我去了解一下

    校验提示文案

    提交
    新的0.33 4月份发的版本就有 虽然没有使用但是看别人的就是在原有基础上额外再加一个xtcp的配置即可

    校验提示文案

    提交
    收起所有回复
  • 10美元,vutrl买一个,我在搭建,刚做好了ssr,爽歪歪

    校验提示文案

    提交
  • 这个还需要在腾讯云安全组里面打开端口,希望楼主加上去 适合新手

    校验提示文案

    提交
    卡在这步卡住了好久

    校验提示文案

    提交
    收起所有回复
  • 感觉好有用

    校验提示文案

    提交
  • 服务端的开机启动现在好像要写.service放到systemd文件夹然后systemctl enable xxxx,反正我centos和ubuntu是成功了,不知道其他版本linux行不行 [惊喜] win玩家对linux命令行系统真是操作无能,都是按着ss的教程搞的 [狂汗]

    校验提示文案

    提交
    试过你的方法,没有成功 [哭泣]

    校验提示文案

    提交
    收起所有回复
  • 请教下,在没有个人顶级域名的情况下,怎么设置内网穿透实现访问http/https/ftp/ssh?

    单位内网的机器有时候需要从外网访问,但是没有域名不知道怎么折腾,如果您知道的话希望能不吝赐教

    校验提示文案

    提交
    我尝试过用ZeroTier,实现办公室和家里电脑互访。而且这个只在握手阶段走zerotier,之后就是双方直连了,非常方便。

    校验提示文案

    提交
    没公网真的能直连?物理通道都没打通,还是经过了中转吧

    校验提示文案

    提交
    还有6条回复
    收起所有回复
  • 内网穿透应该需要一个带独立IP的服务器吧,如果只是偶尔访问,花生壳也是可以的

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
271
扫一下,分享更方便,购买更轻松