使用云服务器+frp实现内网穿透
前言
我们都知道,在国内,向网络运营商获取公网IP是一件非常困难的事情,而云厂商的服务器价钱在考虑带宽,电费等因素后价钱会变得非常高,想买一台高性能云服务器会导致成本非常高。家里的旧电脑性能可能都会比云厂商提供的云服务器性能都要好不少。
那有没有一种方法,可以降低云服务器的成本,又可以让家里的旧电脑发挥作用,同时不用申请公网IP?
开始操作
使用组件介绍
云服务器,尽量离自己的所在地近。
推荐(无广告):腾讯云
这里推荐选择轻量应用服务器,便宜带宽大。
至于服务器地域,最好综合考虑自己的地域情况与其他需求,比如在广州区域,若需要建设网站且不想备案,可以考虑香港服务器。
FRP客户端与服务端
FRP下载地址:https://github.com/fatedier/frp/releases/tag/v0.44.0
这里下载的是服务端(边缘服务器)和客户端(源服务器)一体的,需要云服务器和自己家的服务器各下载一份。
下载根据自己的操作系统以及CPU指令集进行下载
如:
1 |
|
解压frp
Linux输入以下命令进行解压:
1 |
|
解压完成后进入目录
1 |
|
有以下文件:
解释
frpc是客户端程序,与其对应配置文件是frpc.ini以及全局配置文件frpc_full.ini
frps是服务端程序,与其对应的配置文件是frps.ini以及全局配置文件frps_full.ini
边缘服务器(云厂商的云服务器)要运行frps,而源服务器(家里的服务器)要运行frpc。
打开frps.ini文件配置如下:
1 |
|
其中bind_port是监听端口,请确保服务器7000端口是开启的。当然为了确保安全,你也可以修改为其他服务器端口。
打开frpc.ini文件配置如下
1 |
|
在[common]节点中,server_addr是指边缘服务器(云服务器)的公网IP,server_port是监听端口,需要和云服务器保证一致。
参数详解:
- server_addr:边缘服务器IP地址
- server_port:服务器监听端口,需要保证服务器开启了这个端口。
[ssh]节点中,type是指连接类型,比如说tcp。搭建网站也需要用tcp。同时如果要搭建游戏服务器或内容服务器等,可以使用udp。
参数详解:
- type:连接类型。可以是tcp或udp
- local_ip:内网IP。如果是本机可以写127.0.0.1
- local_port:内网端口。需要映射到外网的端口。
- remote_port:外网端口。需要将内网端口映射到外网的端口。不能和监听端口相同。比如说源服务器开启了NGINX,80端口,那local_port就填80,然后如果remote_port填了3000,则访问NGINX的网站需要输入[公网IP]:3000才能访问。
启动服务
服务端
1 |
|
客户端
1 |
|
SSH连接测试
1 |
|
至此,无公网IP部署服务就已经完成了。接下来再介绍一下如何配置客户端
NGINX服务器配置:
在frpc.ini文件新建一个节点[website](名字可以自己取)
1 |
|