拥有云服务器后(1)——用CentOS云服务器搭建frp内网穿透服务

前言

随着经济发展,人们生活水平不断提高,现在家中拥有电脑和网络已经不是什么稀奇事。几十年来,接入网络的设备增长迅速,在2011年,IPv4地址就已经宣告枯竭,而IPv6地址尚处于部署的初期,因此,为了给企业、政府机关等有特殊需求的单位留下更多的专用的公网ip,家庭向运营商申请开网时,如果没有刻意提出要求(这将产生额外的费用),运营商默认不会分配固定的ipv4公网ip,而是采用自动分配的方式,因此大部分家庭的网络都不具有公网ip,而仅仅具有内网ip。在互联网中,除非两个入网设备处于同一个局域网下,否则将不能通过内网ip直接建立通信,要通信必须借助公网ip。因此拥有一个公网ip会简化游戏联机、远程互连、个人网站部署等行为的难度。

主角——frp介绍

frp是Github上的一个项目,是一种能够将内网ip映射到公网ip的内网穿透工具,启用frp服务之后,本来不具有公网ip的设备将因frp的映射获得一个公网ip,互联网上的设备可以通过访问这个公网ip的特定端口访问该设备。这就给仅拥有内网ip的设备的互联网通信难题带来了解决方案。

实验准备

  1. 云服务器——1台,操作系统:CentOS 7.3 64位
  2. 接入网络的PC——1台,操作系统:Windows 10 64位家庭版

实验步骤

1、申请云服务器

国内云服务器主要提供商有腾讯云、阿里云、百度智能云等。这几个云服务器都有学生认证,24岁以下用户会自动通过学生认证,可以购买学生特惠服务器。腾讯云的学生机资费为10元/月,配置为1核CPU 2G的RAM 带宽1Mbps 硬盘容量50G,简称1C2G1M 50G,下同。阿里云的学生机资费为9.5/月,分为两种类型:一种为云服务器ECS,配置与腾讯云相似,为1C2G1M 40G;另一种为轻量应用服务器,配置为1C2G5M 40G,我在使用过程中,并未感受到两种服务器在兼容性等方面的差异,因此,个人推荐带宽更高的轻量应用服务器。百度智能云的服务器我没有了解过,但资费跟配置应该不会与其他两个提供商有太大差异。申请云服务器的过程很简单,在此不赘述,有需要的读者可以参考这个博客:

云服务器的申请和配置流程

(该博客是以申请阿里云的云服务器为例,其他提供商或其他类型的服务器申请过程大同小异)

给出几个云服务提供商的地址:

腾讯云:https://cloud.tencent.com/

阿里云:https://www.aliyun.com/

百度智能云:https://cloud.baidu.com/

申请成功后,给服务器预装CentOS 7系列的系统(无需选择预装应用)

对云服务器基本操作不熟悉的读者,可以参考该博客:

新手阿里云服务器操作指南(图文教程)

同样是以阿里云为例进行讲解,云服务器的操作方式大同小异,大部分可以共通。

2、在服务端下载并配置frp

远程连接自己的服务器,进入终端。进入终端后注意当前的用户是否为root,用户可从启动服务器后的第一行文字看出:
在这里插入图片描述

图中红线处显示的字符串为"admin",说明我现在正处于admin账户下,需要切换到root账户,在终端中输入:

sudo su root

当看到红线最新弹出的命令行中"@"前的字符串变成"root"时,说明已经成功切换至root用户,此时,我们在终端中输入命令将路径切换至root目录下:

cd /root

接下来,我们访问github,查看frp的最新版本

https://github.com/fatedier/frp/releases

撰写本博客时,frp的最新版本为v0.31.1,以下均用v0.31.1作为示例,如果以后frp版本更新,只需要将下面指令中的所有"v0.31.1"字段更换成目前的版本号即可。

从github上获取并且安装frp:

wget https://github.com/fatedier/frp/releases/download/v0.31.1/frp_0.31.1_linux_amd64.tar.gz
tar zxf frp_0.31.1_linux_amd64.tar.gz

frp安装之后,进入目录并修改frp服务器端配置:

cd frp_0.31.1_linux_amd64/
vi frps.ini

修改frps.ini内容如下:

#修改frps.ini内容如下:
[common]# frp server的工作端口,默认7000,可以更改
bind_port = 7000
​
# http和https的端口定义
vhost_http_port = 80
vhost_https_port = 443
​
# 连接时需要的认证token,类似于密码,可选填
#token = 000000# 子域名,可选填
# subdomain_host = frps.com# 404 页面
custom_404_page = /root/frp_0.31.1_linux_amd64/404.html
​
# dashboard图形管理页面使用端口
dashboard_port = 7500

# dashboard帐号
dashboard_user = admin
# dashboard登陆密码,可以自己修改,这里用admin
dashboard_pwd = admin

修改完成,保存(修改时用到vi编辑器,对vi操作不熟悉的读者可以参考该博客:CentOS常用命令之:VI

在终端中通过以下命令启动frp:

./frps -c frps.ini

每次需要使用frp服务时,都必须在/root/frp_0.31.1_linux_amd64/目录下输入该命令启动frp服务端,如果觉得每次要用时都要打开比较麻烦,可以通过编写自启动模板使该服务开机自启动,具体的设置可以参考该博客:CentOS下搭建Frp内网穿透服务

至此,frp服务器端已经配置完毕。

3、在客户端下载并配置frp

在https://github.com/fatedier/frp/releases下载对应版本的Windows版frp,由于本推文中,服务器端使用了frp_v0.31.1_linux_amd64.tar.gz,相应的,在Windows上应该下载frp_v0.31.1_windows_amd64.zip文件解压,考虑到github上的release项目下载时可能遇到一些特殊状况(下不下来),可以选择在CSDN的资源区下载,印象中是有的。也可以参考该教程:
解决GitHub release文件被墙下载失败问题

解压到自己喜欢的目录,进入该文件夹,可以看到很多文件名中带有"frps"的文件以及文件名中带有"frpc"的文件,分别对应frp的服务器端和客户端,我们正在配置的是客户端,因此文件名中带有"frps"的文件均无需保留,可以删除。

删除后应具有以下文件/文件夹:
在这里插入图片描述
用记事本打开frpc.ini(电脑上有Notepad++的话用Notepad++编辑更好,因为这种配置文件会因为编码类型的改变而出现问题,Notepad++更改编码类型会很方便),编辑内容如下:

[common]
server_addr = x.x.x.x    # 填写自己的云服务器公网IP地址,有域名的读者也可以填写域名
server_port = 7000       # 云服务器设置的端口为7000,所以这里填7000
# token = 000000         # 与frps.ini设置的token一致,没设置则删去[test1]                  # []内可以自己起一个拉风的名字^_^
type = tcp               # 传输协议,可以是tcp或者udp
local_ip = 127.0.0.1     # 计算机网络中,127.0.0.1代表本地地址
local_port = 80          # 需要映射出去的端口号,80为http默认端口号,此端口号必须被本机放行
remote_port = 10000      # 映射到云服务器上面的端口号,必须被云服务器的防火墙放行

PS:

1.最好将frpc.ini中"#“以及”#"后面的注释都删掉,否则frpc可能无法正常运行。

2.remote_port和server_port所用端口号不能被云服务器的其他进程占用,而且必须被云服务器的防火墙放行(我的印象中,阿里云默认不放行,需要在安全组中设置允许该端口的tcp/udp通信;腾讯云默认全放行,不用设置。)

3.保存时确认frpc.ini编码类型为UTF-8,记事本可以点“另存为”验证编码格式。

大功告成,可以运行了。在打开CMD或者Windows Terminal用cd命令进入frpc.ini所在目录,输入:

frpc.exe -c frpc.ini

当出现类似下图的输出时,说明frpc.ini正常启动,已经可以通过公网ip对你的设备进行访问:
在这里插入图片描述
我设立了两个映射,一个叫Tassels,采用TCP协议;另一个映射Starve1采用的是UDP协议。两个映射都已经成功部署。

我的Tassels将本机的http端口映射到了服务器的10000端口,如果连接已经正常,通过云服务器的10000端口应该可以访问到我在这台PC机上用Kodexplorer搭建的网盘页面,下面验证一下:
地址栏输入<云服务器ip地址>:10000
在这里插入图片描述
成功进入了我的网盘界面,说明内网穿透成功。

4、创建一键运行脚本

再做一个小小的优化,每次运行frp服务都要在cmd进入该目录输入指令,略显麻烦,因此,在该目录下创建一个runfrp.txt文档,在文档的第一行输入:

frpc.exe -c frpc.ini

保存文件,修改文件名为runfrp.bat,以后只要双击这个.bat文件,就可以一键启动frp客户端服务了。

至此,frp配置完成。

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值