内网穿透介绍及FRP部署
前言
什么是内网穿透
百度搜索“内网穿透”你可以得到很多标准答案,但如果你初次接触的话,肯定会看的一头雾水。说白了,现在我国的IPV4公网地址资源池已经耗尽,你家里的联通/移动/电信等宽带基本都在一个比较大的局域网里面,公用一个公网IPV4地址。
那么你的电脑无论是连接WIFI上网还是用网线上网,都是属于这个大的局域网里边的,外网无法直接访问到你的电脑,内网穿透可以让你直接在外网访问你家里的电脑或其他设备。
如果你说你有公网IP的话,那你就不用看这篇文章了,以后我会出DDNS的教程;如果你说现在都普及了IPV6,并且你已经用上了的话,那也不用看这篇文章了,以后我也会出IPV6的教程。
内网穿透可以做什么
那我们在什么情形下要用到内网穿透呢,我来简单举几个内网穿透的应用场景:
- 在公司要用到家里电脑,或者在家里需要用到公司的电脑临时办公;
- 你在家里搭建了一个网站、一个应用或者游戏,需要对外发布,奈何高配置的服务器太贵。
如果你说仅仅想远程控制电脑,收费的就有TeamViewer、Splashtop、向日葵等。但我这里不建议,这些我都测试过,除了部署简单外,在网络速度、易用性等方面都不行,而且收费那么贵。
怎么实现内网穿透
目前来说比较流行的有Frp、Ngrok,以及最近刚出的Nps等,本文主要介绍Frp这种方式,也是最好用的方式。
Frp服务端搭建
服务器购置
建议你去阿里云选个香港轻量应用服务器,峰值带宽可以达到30,而且是CN2-GIA线路, 选个最低配的就行,毕竟我们内网穿透只在乎带宽不在乎配置,内网穿透的速度是取服务器带宽、你家宽带上行速度的最低值。
为什么不用淘宝或者其他品牌的云服务器?因为国内几个厂商,阿里云的服务器访问最快、最稳定,淘宝就不必说了。
环境搭建
服务器系统选择CentOS 7.X版本的就行,其他的没什么要求。
FRP服务端部署
SSH连到你的服务器
这个不用我说了吧,我平时比较喜欢用Xshell或者Putty连接,当然你用阿里云轻量应用服务器管理控制台的远程连接功能也可以。
安装FRP
命令窗口依次运行:
wget https://raw.githubusercontent.com/MvsCode/frp-onekey/master/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): |
Please input frps dashboard_port [1-65535](Default dashboard_port: 6443): |
Please input frps vhost_http_port [1-65535](Default vhost_http_port: 80): |
Please input frps vhost_https_port [1-65535](Default vhost_https_port: 443): |
Please input privilege_token (Default: WEWLRgwRjIJVPx2kuqzkGnvuftPLQniq): |
Please input frps max_pool_count [1-200](Default max_pool_count: 50): |
Please select log_level ##### |
Please input frps log_max_days [1-30] |
##### Please select log_file ######################## |
以上如果你不知道怎么设置,直接回车就行,但密码最好自己设置下。
安装完成
安装完成后会给出一些信息,建议保存在记事本上后面需要用到。
Congratulations, frps install completed! |
到此frp的服务器配置就已经说完了,你可以打开http://192.2x.x.x:6443,来看看frp的网页监控面板。
端口开放
网上有些教程并没有说到这一部分,很多人发现无法使用,以上面为例,实际上是需要你在服务器防火墙上放开5443、6443这两个端口。如果你是买的阿里云,只需要在轻量应用服务器上的防火墙设置功能中,设置放开即可,如果你不是,就需要在命令窗口中执行以下:
firewall-cmd --state |
firewall-cmd --permanent --add-port=5443/tcp |
firewall-cmd --permanent --add-port=5443/udp |
firewall-cmd --reload |
更新及卸载
./install-frps.sh update |
./install-frps.sh uninstall |
FRP客户端部署
域名购买
如果有域名的话,你每次直接输入www.xxxx.com:端口号(端口号3389的话就不用输)就可以远程控制电脑了,别人也可以直接通过域名访问你在家搭建的网站,而且现在的域名也花不了多少钱。
如果你只是有远程桌面的需求,并且记忆力好,能记得住服务器IP地址的话,就跳过这节吧。
买好域名后记得做域名解析,百度搜索下域名怎么解析,解析到你的服务器IP地址,建议做“www”、“@”和“*”三个。
frp客户端设置
如果你路由器支持frp客户端设置的话,就直接在路由器上做,毕竟路由器是家里一直在线的设备,如果你的路由器不支持,那就做到电脑上吧。
下载frp的客户端
https://file.kskxs.com/?dir=frp,找到对应版本的frp下载,解压到你盘里某个位置
修改配置文件
找到frpc.ini,用记事本或Notepad++打开:
[common] |
上面是服务端连接信息,下面举例说明常用的tcp、http、https映射:
[Web] # 中括号中内容为映射名称,用以快速寻找区分众多的映射服务,每一个映射都要取一个名字,只支持英文,推荐命名形式:姓名简称_设备_服务 |
以上代表我在公司电脑上打开远程桌面,输入XXX.XXX.XXX:8080后就可以远程控制我家电脑。再举个例子:
[Web] # 中括号中内容为映射名称,用以快速寻找区分众多的映射服务,每一个映射都要取一个名字,只支持英文,推荐命名形式:姓名简称_设备_服务 |
以上代表我在公司电脑上打开浏览器,输入XXX.XXX.XXX后就可以访问在我家电脑上搭建的端口为8080的网站。
就这样,把你想要的一条条往下加,保存即可。
启动
Windows cmd里边进入frp客户端相应目录,输入以下命令启动frps.exe即可
frpc.exe |
成功则看到如下信息(类似即可):
D:\frp\frp_0.16.1_windows_amd64>frpc.exe |
访问frp监控面板
访问http://192.2x.x.x:6443,点Proxies,即可看到上述各个映射,然后就开始浪吧!
注意事项
如果失败,看看你路由器防火墙和服务器的防火墙相应端口有没有打开,你添加的相应映射的remote_port端口,也要在防火墙打开,一定注意!