Centos7安装frp服务(内网穿透)

  • 什么是内网穿透
  • FRP服务
  • 1、下载frp服务程序
  • 2、上传压缩包并解压
  • 3、配置frp服务
  • 4、启动frp服务
  • FRP服务与nginx服务的异同
  • 小结


什么是内网穿透

由于ipv4使用的是32位地址作为网络地址,随着移动互联网的普及和使用,公网IP资源变得越来越少,很容易让人产生一个想法,有没有一种手段利用一个公网IP访问到内网的计算机设备,从而节约了公网IP的使用。

结果很明显,这就是我们今天讲的 内网穿透 服务。其通过一个公网服务器转发我们对于内网计算机的指令,公网服务器与内网计算机之间保持着TCP长链接,通过访问公网服务器的特殊端口就可以控制内网计算机。

FRP服务

frp服务就是内网穿透服务中的一种,也是一款开源的软件,提供客户端和服务器两种工作模式,能够快捷部署。

1、下载frp服务程序

frp是一款开源软件,其源代码地址在GitHub上,frp源码地址,然后可以找到其发布版本,由于GitHub访问速度受限,这里提供目前最新的版本以供下载。

链接: https://pan.baidu.com/s/1Q2loRfvC2v754Iu_rmAiOQ 
提取码: q0cq

2、上传压缩包并解压

利用百度网盘下载完软件包,我们可以通过SFTP的方式将文件上传到服务器root目录下。

上传完成后解压:

tar -zxvf frp_0.21.0_linux_amd64.tar.gz

解压出来的文件夹中既包含了服务器端的文件又包含了客户端的文件,所以可以在不同的计算机上删除不必要的文件,只保留自己需要的文件。

公网服务器上保留:

  • frps
  • frps.ini

内网服务器上保留:

  • frpc
  • frcp.ini

3、配置frp服务

需要配置两台设备上的配置文件,主要是frps.inifrpc.ini 修改公网服务器上的配置文件frps.ini

# 这是访问frp服务的默认端口
# 是内网客户机与公网服务器通信的端口
bind_port = 7000

# 设置监控dashboard
dashboard_user = ${这里设置账户}
dashboard_pwd = ${这里设置密码}

修改内网服务器的客户端配置文件frpc.ini

[common]
server_addr = xxx.xxx.xxx.xxx   #frp服务端地址,必须是公网ip或者域名,这里假设为xxx.xxx.xxx.xxx
server_port = 7000      #frp服务端端口,即填写服务端配置中的 bind_port

[app1]
type = tcp              #连接类型,填tcp或udp
local_ip = 127.0.0.1    #填127.0.0.1或内网ip都可以
local_port = 22         #需要转发到的端口,ssh端口是22
remote_port = 6000      #设置系统的使用端口,我们可以使用公网服务器的6000端口来控制内网服务器的22端口

上面只配置了一项转发服务,事实上可以配置很多项,就需要看你的需求是什么,同样可以配置公网服务器的6001端口代理内网的80端口,就可以访问公网IP:6001来获取内网的httpd服务。

4、启动frp服务

分别在公网服务器和内网服务器上运行frp服务。

#公网server启动:
nohup ./frps -c fops.ini &

#查看日志
tail -f nohup.out
#内网client启动:
nohup ./frpc -c frpc.ini &

#查看日志
tail -f nohup.out

除了提供服务以外,frp还提供了一个UI界面dashboard,可以看到目前的连接状态,这个需要在公网服务器的配置文件中添加。

FRP服务与nginx服务的异同

从功能上讲,frp和nginx都是完成了一种代理服务,不过又有所区别。

nginx可以提供本机不同端口之间的相互代理,例如下面就是使用nginx代理本机的8888端口,从而通过443端口访问到8888端口的服务。

centos如何内网穿透 centos搭建内网穿透_centos如何内网穿透


同时nginx也可以配置其他机器的代理,但是其他机器的IP地址必须可以被其直接访问,例如代理另一台公网服务器的端口,或者代理同一内网下的其他机器的端口。

相比之下,frp服务对于代理设备的要求没有那么严格,它可以代理任何能够建立连接的设备,不管对方是否具有公网IP或者是否在同一内网下。

小结

经过这样的部署,我们就可以远程访问一台没有公网IP的设备了,这样可以应用于家庭nas等情况。