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

时间:2024-02-26 08:03:53

一、概述

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

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

什么是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付款,不绑定信用卡或者不付款是没法用的。进入主页之后可以看到:

 

新建一个VPS

 

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

 

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

 

 

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

 

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

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

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

 

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

 

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

 

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

 

下载好打开putty后,输入你VPS的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]):默认即可

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

 

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

 

2、客户端(路由器)

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

 

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

之后就是增加穿透建连接了,这里要详细讲一下。(举一个穿透路由器的例子)
协议类型一般是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

看看效果吧:

 

访问主路由

 

访问二级路由

 

登录HP GEN8的控制台ILO

 

登录黑裙晖

(三)其他

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

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

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

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