前言
现在公网ip资源紧缺,想要从电信手里要到一个公网ip难上加难,这种情况只能等到ipv6普及之后才能缓解,与其找电信要ip死缠烂打,倒不如自己动手丰衣足食,用内网穿透达到外网访问家庭网络目的。此次内网穿透使用工具为frp,设置简单方便,了解原理之后10分钟内就可以搭建完毕。这里给大家做一个详细教程,楼主之前搭建遇到的坑尽量都给大家讲明白。
内网穿透实现功能
楼主之前搭建了一台nas,系统基于win server2016,同时运行软路由lede。需要内网穿透主要有以下几个目的:
1.远程操控lede后台
2.远程连接win server桌面,这样在外看到pt站点上有优质免费资源时可以马上操作nas进行下载
3.搭建个人网盘
4.搭建个人git仓库,在外可把代码推送到个人服务器,回家git pull继续code
准备工作
实现内网穿透需要做以下准备:
1.一台vps,建议选用国外vps,使用国内云会被要求域名备案,楼主使用的是免费一年期谷歌云,除了搭建frp内网穿透,还可以搭一些不可告人的东西。
2.个人域名,这个的目的是方便我们外部访问多个内网终端,当然不用域名也可以,可以直接使用vps ip当作域名使用,但是这么做在做http服务的时候,只能访问内网一个终端了,exp:vps ip与内网lede后台对应,则内网其他设备就无域名可匹配访问了,而有个人域名的话,可以设置二级域名匹配多个终端,家里的群晖、esxi、路由等等设备都可以访问了
3.内网内部一台可以长期开机、运行frp客户端的设备。楼主今天的教程主要讲两个客户端:1.lede软路由。2.win server nas。(内网有任何其一就可以)
网上也有群晖开启root账户挂载脚本运行的方法,楼主手里没有群晖就不做演示了。
简单原理介绍
首先我们打开https://github.com/fatedier/frp/releases,下载frp_0.16.1_windows_amd64.zip 这个版本。
!!!注意:最新版frp已经不兼容低版本的客户端了,所以为了保证服务端客户端版本号匹配,楼主使用0.16.1这个版本搭建,最重要的原因是lede软路由酷软中心frpc版本是0.16.1,开始之前请大家务必确认版本号。
在windows下解压缩我们可以看到内容如下:
frp.JPG (49.57 KB, 下载次数: 1)
可以清晰的看到frp软件包当中包含客户端和服务端,我们需要做的是:
1.在vps上安装服务端部分,配置好自定义配置文件,并且设置好后台运行;
2.在客户端(内网任一设备:路由、nas等),配置好自定义配置文件,长期运行。
是不是很简单,我们要做的就是设置两个配置文件,分别运行在vps上和家庭内网一个设备上,frp就会帮我们把web内容转发到vps服务器上从而实现外网访问!
教程步骤
VPS服务器端
1.在谷歌云平台建立一个vm实例,系统选择centOS、debian都可以,防火墙勾选允许http、https流量,生成本地ssh密钥并上传,使用putty远程连接vps。
(这几步这里不过多讲解,网上搜搜就可以,关于怎么申请免费谷歌云、建立实例、使用ssh连接等等)
连接上以后如下图:
1.jpg (97.96 KB, 下载次数: 1)
2.获得root权限
sudo -i复制代码输入上述命令,回车。
3.下载frp到vps
wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_amd64.tar.gz复制代码下载完成后可以使用“ls”命令查看当前文件夹,如下图:
2.jpg (230.27 KB, 下载次数: 0)
其中frp_0.16.1_linux_amd64.tar.gz即为刚刚我们下载下来的程序包
4.使用tar命令解压缩程序包
tar -zxvf frp_0.16.1_linux_amd64.tar.gz复制代码输入上述命令回车,看到下图:
3.jpg (167.78 KB, 下载次数: 1)
可以看到解压缩完成,解压出来的文件是不是很眼熟,跟刚开始在windows下做演示的一模一样。
5.进入解压缩好的frp文件夹
cd frp_0.16.1_linux_amd64复制代码其中frps、frps.ini这个两个是服务端文件,frpc、frpc.ini这两个是客户端文件
6.设置配置文件
使用“vi”工具编辑frps.ini。
vi frps.ini复制代码输入上述命令进入frps.ini编辑页面。
在此页面输入字母 i
即可进入编辑模式,键入下列内容:
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
vhost_http_port = 10080
vhost_https_port = 10443
privilege_token = chiphell复制代码其中:bind_port为frp服务器端口,dashboard_port为后台控制页面端口,dashboard_user、dashboard_pwd为后台监控web页面账号密码。这些内容可随意设定。
vhost_http_port为外部访问http协议端口,可设置80,建议设置80以外端口,以后我们访问内网web页面,都是使用“域名domain”+“:”+“vhost_http_port”访问的。
同理vhsot_https_port可设置默认443,也可自定义,最后privilege_token任意设置几个字母或数字,客户端上要用。
上述参数都输入完成后,按“ESC”键退出编辑模式,输入
:wq复制代码退出并保存。至此我们的服务器端配置完成。
7.运行我们的frps
输入如下命令
./frps -c ./frps.ini复制代码如果看到如下图,那么恭喜,你已经运行了服务器端:
6.jpg (206.35 KB, 下载次数: 0)
此步为初步测试,做到这里还不够,因为这个命令只能前台运行,当我们把终端关闭以后程序就会自动停止运行。
按下Ctrl+C键终止服务。
输入如下命令:
nohup ./frps -c ./frps.ini &复制代码看到如下图所示:
7.jpg (194.73 KB, 下载次数: 2)
此时便可以关掉终端,程序会一直在后台运行。
!!!重要:如果需要更新配置文件,或者停止frps服务,我们可以使用如下命令:
ps -A复制代码找到frps进程,记下frps进程前面数字序号,输入kill ***(***为进程序号)即可终止进程,重新配置或升级安装。
8.访问frps web管理后台
在任意设备上输入“vps ip地址:7500”,7500即我们上面设置的dashboard_port。出现如下图所示:
8.JPG (74.31 KB, 下载次数: 0)
恭喜你,服务器端已经彻底搭建完成了。
客户端设置
一、Windows做客户端
windows做客户端非常简单,只需设置好frpc.ini,然后在cmd中打开frpc即可。注意:windows下打开frpc后不可以关闭,关闭后程序会被终止。
打开https://github.com/fatedier/frp/releases,下载frp_0.16.1_windows_amd64.zip 这个版本。
使用记事本打开frpc.ini。输入如下内容:
<div>[common]
server_addr = 12.12.12.12
server_port = 7000</div><div>privilege_token = chiphell
[Desktop]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389
[LEDE]
type = http
local_ip = 192.168.1.1
local_port = 80
remote_port = 10080
custom_domains = 12.12.12.12</div>复制代码这里讲解以下,frp支持http、https、tcp等协议的传输。
大家要设置http协议可以参考上面内容[LEDE]部分,这里演示的是穿透到lede路由管理界面,其中local_ip为在内网中lede的ip位置,local_port为lede管理页面自身默认端口为80,remote_port为服务器端设置的vhost_http_port,这里是10080,custom_domains填写我们申请的个人域名,可以设置多个二级域名,这样每个内网web都可以对应一个二级域名,我们就可以通过域名访问我们所有的内网设备了。由于楼主的域名刚刚申请还在实名认证,所以楼主使用了vps ip做域名,直接访问vps ip加端口号即可,缺点是没有二级域名我们只能绑定一个设备。
大家要设置tcp协议就参考[Desktop]部分,由于frp客户端直接挂载在nas本机上,我们设置ip可以直接些localhost地址:127.0.0.1,local_port设置3389,3389是远程桌面默认端口,remote_port我们可以随意设置不用拘泥于http连接那个端口,remote_port直接也设置3389方便我们在远程桌面操作时直接输入ip即可,可省去端口。
设置完成后保存,进入cmd,在cmd下运行frpc,power shell下需输入 ./frpc。结果如下图:
9.jpg (184.29 KB, 下载次数: 0)
显示success!至此我们已经成功搭建客户端。
外网访问我们的lede路由页面试试?输入vps ip+:+10080
10.jpg (139.8 KB, 下载次数: 0)
成功!
二、lede软路由挂载客户端
win下挂载客户端演示完了,我们还可以使用lede酷软里的frpc挂载,更方便
打开lede—酷软—frpc客户端,按照下图设置:
11.jpg (134.91 KB, 下载次数: 0)
1.填入服务器地址(VPS ip)
2.TCP多路复用修改为true
3.填入自定义的privilege_token码
4.HTTP穿透服务端口填入10080
5.HTTPS穿透服务端口填入10443
在frp穿透设置中,如下设置:
12.JPG (90.11 KB, 下载次数: 1)
总结
至此,frp搭建教程就暂告一段落。楼主的域名还在审核,等审核完成再搭建个人网盘等,到时候再做一个教程,搭建中主要遇到的问题就是版本号的问题。koolshare上有国内大神做好的一键脚本更傻瓜,但是一键脚本只能部署最新版frp,而lede上的frpc并不能完全跟得上更新,所以最稳妥的方法还是自己搭,原理也很容易明白。
大家有什么问题可以私信我,一定一一解答。
评论
好贴没人顶呢?
评论
写得很详细,收藏了。
评论
不错,收藏!
评论
战略性 Mark
评论
高手,学习下,准备搭建一个。谢谢分享
评论
好文章,先是收藏。
也想照着做,看了一点后。发现照着做都做不了。
收藏吧。
评论
MARK ,好帖收藏
评论
git本地服务器怎么搭建啊?公网IP电信好获取把?可能你没有合适的借口而已
评论
这种技术贴,先顶后看
评论
好帖好帖 收藏了
评论
好贴 可惜我只需要穿墙**
评论
我用的softether
评论
内网有个linux服务器就可以了,内网穿透跟远程桌面的设置类似,tcp协议穿透22端口。
我这里打算直接把git挂载lede软路由的后台,初步的想法,过些天试一试,成功了再发个帖子
评论
mark 一下
评论
看着好高级的感觉
评论
关注一下
评论
感谢楼主啊 写的很详细
评论
我是路由器开frpc;
ASUS刷的Merlin,Github下arm版的,丢到JFFS里面就好了。
评论
其实现在电信的做法是,基本将所有普通用户都纳入100.XX的内网里面,然后,对于要求公网的用户再调出来,因为会去主动要求有公网IP需求的用户,实在是少之又少。
这样,完美解决了公网地址问题,有需要的不会没得用,没需要的不会白白占着公网IP。
评论
欣赏楼主对于技术的分享
评论
mark,现在魔都电信还是公网ip
评论
收藏了 备用
评论
收藏收藏!强帖得顶!
评论
对于二级路由下的内网地址有用吗?一般的ddns是解决不了的
评论
首先得确定二级路由下的设备一级路由下能否访问的到,如果你有静态路由表能访问的话就完全没问题。
内网穿透和ddns有本质区别,ddns的前提是你有公网ip,公网ip会不停更新变化所以需要ddns服务器解析,而内网穿透是在外部有个独立服务器与你的内网建立连接,并且把所有你需要的信息从内网通过服务器转发出来,无论你有几级nat,只要能联网都能穿透
评论
多谢,frp还是要通过国外vps转发,这个效率不够啊
评论
这个我之前研究过 差不多楼主的用法总结很到位了
评论
是的,默认都是大局域网IP,如果有人需要自然会打电话
评论
还可以搭一些“人尽皆知”的不可告人的东西。mark一下,现在是公网ip,希望没机会用到
评论
已收藏~
评论
这种好东西马上收藏。
评论
确实带宽会有牺牲,大概有正常上传带宽的3/4左右
评论
详细,谢谢楼主,一会试试
评论
楼主写得很详细,依葫芦画瓢就完事儿了。
评论
其实,打10000号让电信开通外网连10分钟都不用。。。理由也不需要说太多,就说需要远程监控
评论
收藏 上手有点难度
评论
我这里的联通给我的是内网IP,我打电话去投诉了,后面客服说已经给我公网IP,但是这个要看联通公网IP分配,优先给我公网IP。半个多月过去了,就一次得到一个公网IP得了一天时间,其他都是内网IP,不管你重新拨号几次。
算了,现在路由器K2P已经刷了固件了,就用楼主的方法去frp内网穿透吧~
评论
支持,刚刚刷了LEDE,准备大干一场!
评论
收藏了
我路由刷的这个固件 名字好像
LEDE-R7.3.3-ar71xx-nand-wndr4300-ubi-factory.img
固件里面有端口转发 和楼主的有什么区别 请教
评论
端口转发只是单一的将内网服务端口映射到公网ip某个端口上,使用这个需要有公网ip
帖子上介绍的方式内网ip也可以用
评论
Mark下,准备开搞
评论
就是反向代理,所以速度取决于客户端——VPS——服务端之间的网速,必然是比直连慢了。
哎,现在自己用个东西真难,外界环境太艰难了,什么都不给,什么都封。
评论
很详细,谢谢分享!
评论
学习。移动宽带无公网ip
评论
完全的小白,按照楼主的方法,一步步实现了,把国外的vps换成了腾讯云服务器。
现在有个问题,我内网中有两台日常工作用的win和mac,终端中运行frpc.exe,如何让他常驻后台,总会不小心把终端窗口关闭了,远程桌面就实现不了。
评论
mark,回去之后再试!
评论
嗯嗯,建议楼主整个带frp的路由器,把客户端挂在路由上,24小时开机不用担心掉线了 电路 电子 维修 求创维42c08RD电路图 评论 电视的图纸很少见 评论 电视的图纸很少见 评论 创维的图纸你要说 版号,不然无能为力 评论 板号5800-p42ALM-0050 168P-P42CLM-01 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收
·日本中文新闻 唐田绘里香为新剧《极恶女王》剃光头 展现演员决心
·日本中文新闻 真子小室夫妇新居引发隐私担忧
·日本中文新闻 前AKB48成员柏木由纪与搞笑艺人交往曝光
·日本学校 {日本国际学校}梅田インターナショナルスクール
·日本学校 LINE:sm287 陳雨菲、20歳、台湾からの留学生、東京に来たばかり
·日本留学生活 出售平成22年走行48000km 代步小车
·日本华人网络交流 円相場 一時1ドル=140円台まで上昇?
·日本华人网络交流 问日本华人一个问题
·日本旅游代购 富山接机
·生活百科 英国转澳大利亚转换插头
·汽车 【求助】修车遇到困难怎么办?