当前位置:
文章详情

内网穿透(Frp)-拯救没有公网IP的你

2017-06-01 22:00:00 820点赞 6578收藏 503评论

一、概述

本文是一个偏技术类的文章,针对的人群未接触过该领域的小白。虽然说是技术类文章,但难度并不高,我也是一个管理专业出身现学现卖的。看看张大妈这里这类的文章还真的不多,因此抛砖引玉。

文章是一个系列教程,由于脑子里构思的内容太多,一次性实在没有动力写完,所以做成了系列。

什么是VPS?

VPS(Virtual Private Server 虚拟专用服务器),可以理解为一个小服务器或者虚拟机,但是它一般是有公网IP的,有强悍共享CPU和网络宽带的,一般是Linux系统,硬件集中维护管理的(有人给你维护硬件),最关键的系统完全属于你,想怎么折腾怎么折腾。VPS(Wikipedia解释),其他知识拓展:VPS和虚拟主机的区别

可以理解为VPS只是一台放在互联网上的服务器,但可以实现很多功能。

我打算用它来做什么?系列文章打算写什么?

1.内网穿透-拯救没有公网IP的小伙伴(篇一)
2.网盘私有化-应对公共网盘危机
3.个人博客-博客数据私有化,讲述Wordpress的应用
4.VPS的选购和自建VPS-选购攻略和利用NAS自建VPS

感觉上面的坑挖的有点大,一点一点慢慢写吧。

二、内网穿透(Frp)-拯救没有公网IP的你

目前来说,各大运营商都在减少对个人用户提供公网IP,这已经是一个趋势,估计在IPv6普及前不会有好转。虽然可以通过客服要回公网ip,但是难度太大了,就算能要到运营商也得恶心恶心你,所以目前外网访问家里路由器、NAS、智能家居等成了问题。

对于没有公网IP的解决办法也有很多:群晖的Anyconnect、花生壳、Ngrok、Frp等。由于手中只有黑群晖没法使用Anyconnect外,其他几个都用过,从效果来看Frp效果最好,所以本文重点写这个教程。

(一)准备工作:一台VPS、一台路由器(梅林固件)、一个域名、一个Putty软件

1、选购VPS:一般分国内、国外两种,国内的延迟低但价格略高,有时还需要备案;国外的延迟高,相对便宜。国内推荐阿里云、腾讯云等,国外的推荐Amazon、Vultr(推荐)、Digitalocean、Linode等。当然还有一些更便宜的一年十几刀也是可以淘一淘的。

目前我长期稳定使用使用的是Vultr的日本节点,5刀/月:购买链接(这是个我的推广链接,不喜欢可以自行百度官网)。另外对阿里云印象比较好,近期也是降价降的很猛,一个月也就是30块左右。

下面用Vultr作例子,进入官网之后进行注册,注册之后可以用信用卡或者Palpay付款,不绑定信用卡或者不付款是没法用的。进入主页之后可以看到:

内网穿透(Frp)-拯救没有公网IP的你

新建一个VPS

内网穿透(Frp)-拯救没有公网IP的你

选择地点,一般来说亚洲速度好,但是也看运营商情况,建议自己测试,我这里山东移动对日本节点非常友好。

内网穿透(Frp)-拯救没有公网IP的你

选择操作系统,一般CentOS和Ubuntu,我平时ubuntu习惯了,注意不同操作系统下命令略有差别。

内网穿透(Frp)-拯救没有公网IP的你

内网穿透(Frp)-拯救没有公网IP的你

内存一般看挂在多少应用,如果光考虑frp的话512的基本够用,但是也看到了,东京节点2.5美元的基本Sold Out。

内网穿透(Frp)-拯救没有公网IP的你

建建好之后可以看到具体的信息,一般需要记住三个数据:IP地址、用户名、密码(被隐藏了,点击小眼睛可以看到),vps建立到这里就结束了。

注意:vultr的是按小时收费的;另外,不要随意选择其他项目,应为有些事收费的,我就一时手贱.....

2、选购域名:阿里云的wintop等域名一年才几块钱。购买链接

内网穿透(Frp)-拯救没有公网IP的你

win的域名一年才4快, 一次性买了10年的,虽然不适合建站但是干别的还是不错的。

内网穿透(Frp)-拯救没有公网IP的你

买好之后进入管理界面,点击“解析”。增加两条A记录,记录值为刚才VPS的IP地址,主机记录分别为*和@,意思是把这个域名的所有子域名全部指向VPS主机。

内网穿透(Frp)-拯救没有公网IP的你

3、安装Putty:Xshell或者Putty都可以,这个是一个命令行工具,是用于登陆VPS执行操作的工具。由于用的是Linux系统,所以所有的操作基本都是命令行的,很少有图形化界面。下载地址:Putty

内网穿透(Frp)-拯救没有公网IP的你

下载好打开putty后,输入你VPS的ip地址

内网穿透(Frp)-拯救没有公网IP的你

首次连接的时候会弹出提示,点击是。

内网穿透(Frp)-拯救没有公网IP的你

之后输入用户名root,输入密码(VPS的密码,就是被小眼睛盖住的那里),注意在输入密码的时候是不会显示的,但是实际上是已经输进去了,输好后直接回车。方便的做法是在小眼睛旁边有个复制,之后再putty点击一下右键粘贴上了。

(二)安装frp服务端、客户端

Frp是一个开源程序,由于我路由器是梅林的,所以以梅林的路由器为例子。Koolshare已经基本都作成了一键脚本,非常方便。当然,不是梅林的路由器也可以用,具体可以查看Frp的官网

KoolShare的论坛上有插件也有教程,这里只是搬砖,奉上原贴,感谢Koolshare论坛以及有关的大牛们,没有他们无私的奉献是没有这些方便的工具的。

1、服务端(VPS)

输入以下命令,一次一条,一共四条:
apt-get update
wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install

之后他会让你输一些参数,全部参数都有默认值,直接回车就是输入默认值:

Please input frps bind_port [1-65535](Default Server Port: 5443): #输入frp提供服务的端口,用于服务器端和客户端通信,默认即可
Please input frps vhost_http_port [1-65535](Default vhost_http_port: 80): #输入frp进行http穿透的http服务端口,建议不用默认
Please input frps vhost_https_port [1-65535](Default vhost_https_port: 443): #输入frp进行https穿透的https服务端口,建议不用默认
Please input frps dashboard_port [1-65535](Default dashboard_port: 6443):#输入frp的控制台服务端口,用于查看frp工作状态,默认即可
Please input dashboard_user (Default: admin):#登录控制台的用户名,默认即可
Please input dashboard_pwd (Default: kpkpM7VZ):#登录控制台的密码,如果记不住默认的建议修改
Please input privilege_token (Default: 9m2UAOWa6hx5Eise):#输入frp服务器和客户端通信的密码,默认是随机生成的,默认即可
Please input frps max_pool_count [1-200](Default max_pool_count: 50):#设置每个代理可以创建的连接池上限,默认50
##### Please select log_level #####
1: info
2: warn
3: error
4: debug
#####################################################
Enter your choice (1, 2, 3, 4 or exit. default [1]): 默认即可
Please input frps log_max_days [1-30](Default log_max_days: 3 day):
##### Please select log_file #####
1: enable
2: disable
#####################################################
Enter your choice (1, 2 or exit. default [1]):默认即可

安装完毕后会弹出以下内容,标明了具体信息,到此服务端操作全部完成。

内网穿透(Frp)-拯救没有公网IP的你

可以访问ip地址+控制台端口查看,由于目前没有建立穿透连接,所以都是空的。

内网穿透(Frp)-拯救没有公网IP的你

2、客户端(路由器)

客户端进入梅林的固件,点击软件中心,安装frpc。

内网穿透(Frp)-拯救没有公网IP的你

之后输入刚才的配置信息,必须按照刚才安装frp的配置填写。

内网穿透(Frp)-拯救没有公网IP的你内网穿透(Frp)-拯救没有公网IP的你之后就是增加穿透建连接了,这里要详细讲一下。(举一个穿透路由器的例子)
协议类型一般是http、https、tcp等,这里选择http
服务名称随便起,比如router
域名配置填写 router.frp-ss.win
内网地址填写路由器ip 如192.168.1.1
内网端口填写80
远程主机端口填写上面的http穿透服务端口8080
意思就是当外网访问router.frp-ss.win:8080的时候,VPS会把建立一个连接指向你内网192.168.1.1:80

看看效果吧:

内网穿透(Frp)-拯救没有公网IP的你

访问主路由

内网穿透(Frp)-拯救没有公网IP的你

访问二级路由

内网穿透(Frp)-拯救没有公网IP的你

登录HP GEN8的控制台ILO

内网穿透(Frp)-拯救没有公网IP的你

登录黑裙晖

(三)其他

1、刚才的几个示例基本都是穿透http、https,然而Frp也是可以穿透tcp的,比如穿透远程登录3389端口,可以直接从外网远程登录windows,注意在透传的时候内网端口和外网端口都应当做相应变化。

2、对于其他路由器也是可以实现的,不过没有梅林这样成型的一键包稍微麻烦点,可以自行研究。

3、你可能觉得一个月5美元甚至2.5美元都贵,的确如果单放一个内网穿透VPS的价格优势还不明显,但一个VPS可以实现的功能太多了,我目前5美元的VPS上挂了3个博客站点、1个Owncloud私人网盘、内网穿透,这样算下来可就不贵了,所以关键还在于充分挖掘VPS的作用,这些需要后期教程补完。

最后说明,以上的内容要感谢网友们的无私分享。且用且珍惜,保持感恩心态。

展开 收起
503评论

  • 精彩
  • 最新
  • 以前我也是把博客,owncloud放VPS上,自从用了Frp,就都搬到自己NAS上了,感觉没必要放外网,还是自己的硬盘放心,而且外网VPS说不准哪天就被qiang了,还得用梯子把资料都备份下来进行转移,太麻烦。

    校验提示文案

    提交
    有道理哈,现在被墙的太猛。

    校验提示文案

    提交
    有条件的上云服务器,不用本地折腾。
    路由器内网穿透简易方案有如金万维、nat123、花生壳等网络映射工具软件,内网IP让外网用域名访问。
    长期提供互联网访问期间注意本地服务器定时查看资源状态和程序应用本身安全。

    校验提示文案

    提交
    收起所有回复
  • 你好,我安装完服务端无法打开网页,应该怎么怎么排查下?还是需要什么语句启动服务吗?

    校验提示文案

    提交
    这篇已经有点老了,你看看脚本是不是更新了

    校验提示文案

    提交
    服务器防火墙关了吗

    校验提示文案

    提交
    收起所有回复
  • 其实有免费的ngrok可以用啊,一般个人路由足够了

    校验提示文案

    提交
    Ngrok之前用的老实死掉进程,也没解决问题,后来换了frp一切正常,可能我路由器有问题。

    校验提示文案

    提交
    内网穿透ngrok只走端口转发速度流量经过三方服务器,FRP和nat123有点到点端对端的模式。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 沙发
    楼主服务器IP没有打码,小心被人D啊 [疑问]

    校验提示文案

    提交
    感谢提醒~这个ip就是个测试的,回头就删掉。

    校验提示文案

    提交
    内网穿透选择nat123全端口模式也是点到点方案,界面操作更简单使用起来。

    校验提示文案

    提交
    收起所有回复
  • 不安全,你每一个环节都有太多漏洞…

    校验提示文案

    提交
    期待你的补完?

    校验提示文案

    提交
    收起所有回复
  • 买了3年腾讯云,搭建很容易,终于可以随时随意链接家里路由器,远程下载,资源才用了0.3%不到,哈哈,比买某个网站便宜多了,早知道不买这么早了 了链子链子了

    校验提示文案

    提交
    对啊,自建vps的话比某棒啥的便宜多了,还有的折腾

    校验提示文案

    提交
    收起所有回复
  • 也就是一个自建动态DNS的方法,懒得动手的话,还是用花生壳或者蒲公英吧!

    校验提示文案

    提交
    收钱呀,大贵贵~

    校验提示文案

    提交
    不是吧?这个应该是数据中转吧?

    校验提示文案

    提交
    收起所有回复
  • 写得太复杂了, 简单说来就是"有公网IP的机器上运行frps, 要穿的内网机器运行frpc". 和kcp-server/kcp-client非常像.

    校验提示文案

    提交
    差不多吧,对于水平高的可能这贴有点小白,让你见笑啦~

    校验提示文案

    提交
    请教一下,那是不是我有一台有公网IP的宽带就可以作为vps功能了?然后异地另外一户没有公网IP的宽带但是nas都在此地,就可以通过这个方式享受到公网IP的便利了吗?

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • owncloud不错 不过楼主vps存储是多大的?同步个文档还行,照片电影啥的肯定费劲了

    校验提示文案

    提交
    对呀,照片电影不用想了,我一般就是放些文档啥的。

    校验提示文案

    提交
    收起所有回复
  • 楼主,截屏putty是不是暴露IP了 [晕倒]

    校验提示文案

    提交
    哈哈,是的,疏忽了

    校验提示文案

    提交
    收起所有回复
  • 和朋友一起租了一个,博客+科上,用了两三年了,妥妥的。
    自由度还是挺高的。价格也合理。关键是其实我们俩无论咋用,机能还是过剩。。。

    校验提示文案

    提交
    是的,感觉性能总是没有压榨干净

    校验提示文案

    提交
    给楼主发了点银子,希望楼主写个阿里云的VPS的教程,到时还有银子 [赞]

    校验提示文案

    提交
    还有8条回复
    收起所有回复
  • 穿透服务端口8080转发到了内网的80上。如果我要想连接到内网的其他端口怎么办呢??我看文中也连接了其他服务。怎么设置呢?

    校验提示文案

    提交
    协议要选择tcp,之后内外网端口都填你要穿透的就可以

    校验提示文案

    提交
    谢谢,回来试试

    校验提示文案

    提交
    收起所有回复
  • 打赏了10金币,有些事情想请教下,路由挂frp吃得消吗?我的ac88u

    校验提示文案

    提交
    没问题,我的ac68u,要开虚拟内存

    校验提示文案

    提交
    收起所有回复
  • 想买个梯子,不知道哪家梯子好

    校验提示文案

    提交
    ***低调

    校验提示文案

    提交
    被和了 是什么?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 内网穿透,是所有访问本机的流量,都要经过vps吗?

    校验提示文案

    提交
    是的,流量都要经过vps

    校验提示文案

    提交
    那还怎么做云盘?

    校验提示文案

    提交
    收起所有回复
  • 不晓得上传速度有多少。

    校验提示文案

    提交
    这个很大程度看各地运营商,说白了就是看脸....

    校验提示文案

    提交
    收起所有回复
  • @pavilion1019 我是AC66,不是B1版的路由,软件中心没有frp,请问怎么装frp在路由上?

    校验提示文案

    提交
    ac66没有梅林?如果单独装的话可能麻烦一点,但是可以实现

    校验提示文案

    提交
    收起所有回复
  • @pavilion1019
    请问VPS的带宽对外网访问内网有影响吗?这个是只是解析还是所有的数据都走VPS?请教一下

    校验提示文案

    提交
    当然,数据要先经过vps在到内网,vps的上行和下行都有影响

    校验提示文案

    提交
    收起所有回复
  • @pavilion1019 外网连接AC66U-B1路由器,怎么设置都连不到,可是连接同网段的QNAP 的NAS就能连上,不知道为什么?求助大神

    校验提示文案

    提交
    信息太少,不好判断呀。私聊详细说吧

    校验提示文案

    提交
    就是按照文章设置的,路由器内网ip192.168.0.1,内网端口号80,外网端口号8087,看frp管理网址显示working,但是网页就是连不到路由登陆界面

    校验提示文案

    提交
    收起所有回复
  • 我是屌丝,百度云盘每月10元我都感到贵,还是找接入商要公网ⅠP吧!

    校验提示文案

    提交
    哈哈,能要回来最好!

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
6.5K
扫一下,分享更方便,购买更轻松