简单原理:本地服务器(内网)通过和阿里云服务器建立隧道,可以使内网服务器实现公网ip(本文是阿里云服务器ip)访问,有点类似vpn

准备工作:

阿里云服务器一台,备案域名一个(可有可无,有就能用域名访问,无就用ip访问),本地服务器一台(本人用的虚拟机centos7)

链接:https://pan.baidu.com/s/11OnuJF1Ik7ohD4sKQK5uow 
提取码:5ztr

 本文只介绍安装过程,原理自行百度。

1.下载frp_0.22.0_linux_amd64.tar.gz文件,放置服务器的任意目录下(自己方便找到的),

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

本b博主放在: cd /var/

解压:tar -zxvf frp_0.22.0_linux_amd64.tar.gz

进入解压的文件夹:cd frp_0.8.1_linux_amd64

进去之后注意这四个文件,其他不用管,也不用动:

frps.ini: 服务端配置文件

frps: 服务端软件

frpc.ini: 客户端配置文件

frpc: 客户端软件

步骤一在阿里云服务器与本地服务器同时安装,方法一致,不同的是上面的四个文件的配置不同

2.配置说明

阿里云服务器配置即服务器端的配置文件在:frps.ini 

[common]
bind_port = 3389    frps提供的端口
vhost_http_port = 8080   域名访问的端口

[web]
type = http  本地服务器访问理性
local_port = 80  本地服务器访问端口
custom_domains = s.lzh.cn阿里云服务器访问域名
auth_token = ntflzhcn  验证token,随便写,最好是字母加数字

本地服务器配置文件在:frpc.ini

[common]
server_addr = 47.92.22.110 阿里云服务器ip地址
server_port = 3389 阿里云服务器frps提供的端口
auth_token = ntflzhcn 验证token,同阿里云服务器
[web]
type = http  本地服务器的访问类型
local_port = 80  本地服务器访问的端口
custom_domains = s.lzh.cn  同阿里云服务器

阿里云服务器(配置frps.ini )和本地服务器(配置frpc.ini)仅配置这两个文件,其他的都不用动,切记配置对应的文件名。

3.测试是否开通

首先必须在frp文件夹内操作才有效:cd /var/frp_0.22.0_linux_amd64/

启动阿里云服务器端frps(启动做服务端):./frps -c ./frps.ini

出现如图所示内容表示启动成功:

centos搭建隧道 centos搭建内网穿透_本地服务

同理,本地服务器进入相应的目录:cd /var/frp_0.22.0_linux_amd64/

启动本地服务器端(启动做客户端)frpc:./frpc -c ./frpc.ini

出现如图所示内容表示启动成功:

 

centos搭建隧道 centos搭建内网穿透_linux_02

4.设置本地服务器的开启自启动(window可以设置方法见文末)(很重要,不然连接无法保持)

本地服务器路径:/usr/lib/systemd/system,创建frpc.service文件,内容如下:

[Unit]
Description=frpc
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/var/frp_0.22.0_linux_amd64/frpc -c /var/frp_0.22.0_linux_amd64/frpc.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

上述步骤完成后,可能会用到的命令:

启动 frp 并设置开机启动

systemctl enable frps

systemctl start frps

systemctl status frps

阿里云服务器路径如下:/usr/lib/systemd/system,创建frps.service文件,内容如下:

[Unit]
Description=frps
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/var/frp_0.22.0_linux_amd64/frps -c /var/frp_0.22.0_linux_amd64/frps.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

启动 frp 并设置开机启动

systemctl enable frpc

systemctl start frpc

systemctl status frpc

刚刚配置的服务需要让systemctl能识别,就必须刷新配置

sudo systemctl daemon-reload

5测试:

 http://域名:8080 直接访问即可

过程中遇到的问题:

1.本地服务器提示:custom_domains and subdomain should set at least one of them 

解决办法即在本地服务器frpc.ini中,添加custom_domains = 域名 即可解决

2.提示未找到站点。

本地服务器添加解析: vi /etc/hosts   

补充说明:

1.我用的是备案好的案例云服务器,当然也可以用香港的服务器不用备案,只要你的服务器可以用域名解析并且可以正常访问,都可以做到。

2.我的本地服务器有多个网站,如果只放一个网站问题2应该不会遇到

3. 本地服务器和阿里云服务器我没有做开机自启动,重启后需要再次开启

4.阿里云服务器所涉及到的端口,不仅要在服务器上开启,阿里云控制台安全组也要开启

5.过程中可能会重启frp

查看frp的进程号:ps -aux | grep frp,如下图所示:

centos搭建隧道 centos搭建内网穿透_本地服务_03

杀死该进程:kill -9 17210,接下来按照步骤3启动即可

6.如果要访问多个网站可以参考下图:

阿里云服务端frps.ini

centos搭建隧道 centos搭建内网穿透_frp_04

 本地服务器端

centos搭建隧道 centos搭建内网穿透_阿里云服务器_05

服务器服务后台运行及自动启动
使用systemd配置开机自启,适用于 centos7 Ubuntu 16 或 debian 8。

vi /etc/systemd/system/frps.service 新建此文件,并写入以下内容:

[Unit]

Description=frps daemon

After=syslog.target network.target

Wants=network.target

[Service]

Type=simple

ExecStart=/home/developer/frp_0.21.0_linux_amd64/frps -c /home/developer/frp_0.21.0_linux_amd64/frps.ini

Restart= always

RestartSec=1min

[Install]

WantedBy=multi-user.target

启动并设为开机自启。

systemctl start frps //启动

systemctl status frps //状态查询

systemctl enable frps //开机启动

补充一下:

ExecStart=/home/developer/frp_0.21.0_linux_amd64/frps.ini

ExecStart=后面这个是frps文件和配置文件

1、后台运行frp服务

服务端: nohup ./frps -c frps.ini >/dev/null 2>&1 &

    客户端: nohup ./frpc -c frpc.ini >/dev/null 2>&1 &

     说明:>/dev/null 2>&1 &,表示丢弃。

我们一般使用 nohup command & 命令形式来启动一些后台程序,比如本文第一节问题描述的例子,为了不让执行信息输出屏幕,加上 >/dev/null 2>&1 命令来丢弃所有的输出,使 shell 的状态置为完成。

centos搭建隧道 centos搭建内网穿透_本地服务_06

FRP 是什么?

FRP (Fast Reverse Proxy) 是一款简单,好用,稳定的隧道工具。它是一款高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、KCP、HTTP、HTTPS 等协议类型,并且支持 Web 服务根据域名进行路由转发。绕过复杂的网络对外服务从它开始,Go。

windows开机自启动方法

1、使用系统自带工具设置开机启动

Windows系统自带了启动文件夹,可以将程序的快捷方式放入该文件夹,实现开机自启动的功能。

步骤:右键点击开始菜单,在弹出的快捷菜单中选择“文件夹”,进入启动文件夹。将程序的快捷方式拖动到启动文件夹内即可。

2、使用“任务计划程序”设置开机启动

任务计划程序是Windows系统自带的一种功能强大的定时任务工具。可以通过它来设置开机启动程序。

步骤:在“开始”菜单中搜索“任务计划程序”,打开该程序。点击“创建基本任务”,按照向导进行设置即可。

3、使用第三方软件设置开机启动

有些程序在安装的时候会默认提供开机启动的选项,可以直接勾选。当然,有些程序没有提供这个选项,可以使用第三方软件来实现。

步骤:安装第三方软件,如CCleaner、WinPatrol等。在软件的设置选项中找到“开机启动”选项,将需要开机启动的程序添加进去即可。