最新消息:斯于道者,安有己道?

FRP + Nginx || Apache + 泛域名解析 = 内网穿透架设公网服务器

源码 大爷 33806浏览 0评论

一、准备工作

1、硬件设备

1)要暴露给外网做服务器的电脑一台,系统:Win/Linux/Mac均可(服务器)
本例中服务器使用Windows 10 x64系统。
2)公网服务器电脑一台,系统:Win/Linux/Mac均可 (中转机)
本例中中转机使用CentOS 7.4 x64系统。

2、软件程序

1)frp软件,根据两台电脑的硬件和系统选择下载对应最新版本 :https://github.com/fatedier/frp/releases
2)Nginx:https://nginx.org/en/download.html
3)Apache:https://httpd.apache.org/download.cgi
4)WinSW(Windows系统cmd命令转服务工具):https://github.com/kohsuke/winsw/releases
5)acme.sh(
Let’s Encrypt SSL证书签发自动化脚本):https://github.com/Neilpang/acme.sh
6)phpStudy(本机服务器集成环境)http://phpstudy.php.cn/download.html

3、其他

1)域名,顶级或N级均可。

二、部署

1、域名解析

本文以frp.gg.dev为例:
登录域名的解析后台,在gg.dev下增加两条A记录: frp*.frp,记录值为部署frp服务端的中转机(公网服务器)ip。代表frp.gg.dev下的所有的子域名,会全部指向此台中转机。

2、中转机Nginx或Apache反向代理配置

1)Nginx配置,配置完成后重启Nginx服务:service nginx restart

2)Apache配置 ,配置完成后重启Apache服务:service httpd restart

3、中转机(公网服务器)frps配置

1)假设已经在中转机上将frp下载解压到路径/home/frp,以下为frps.ini的配置:

使用./frps -c frps.ini命令启动服务器监听,注意,关闭终端,服务将停止。
使用nohup ./frps -c frps.ini >/dev/null 2>&1 &命令后台启动服务器监听,此命令运行后关闭终端服务不会停止。

2)注册为服务,开机自动启动(可选,该步骤非必须)

以CentOS 7.4为例创建文件:/etc/systemd/system/frps.service

然后可通过以下命令控制服务状态

3)如有防火墙需要设置防火墙放行7000、7071、7000端口,注意,除了机子本身的防火墙,IDC主机商处如有防火墙也需要设置放行,具体操作自行GG。

4、服务器(要暴露给外网的电脑)frpc配置

1) 假设已经在服务器电脑上将frp下载解压到路径D:\soft\frp,以下为frpc.ini的配置:

在frp解压目录下右键打开 powershell 或者cmd,执行如下命令./frpc.exe -c ./frpc.ini如果窗口提示 『start proxy success』 ,则代表frp服务端和frp客户端的通信隧道建立成功。

2)注册为Windows服务,开机自动启动

将之前下载的WinSW.NET4.exe放到frpc目录改名winsw.exe
创建winsw.xml文件,写入以下内容

管理员权限打开CMD或PowerShell执行以下命令以控制服务状态

三、测试访问

在浏览器里面访问 http://a.frp.gg.dev
https://a.frp.gg.dev 测试你的电脑web服务外网是否能够访问!

四、其他说明

1、本机Web环境请自行使用phpStudy等集成环境搭建。
2、不同系统配置大同小异,了解frp内网穿透原理会让事情变得简单。
3、事实上本就很简单。加油吧,少年。

转载请注明:追风逐雨 » FRP + Nginx || Apache + 泛域名解析 = 内网穿透架设公网服务器

您必须 登录 才能发表评论!