(一)部署前提
1、要素与工具
条件 | 下载地址 | 描述 |
公网网址 | 外部正常访问的网址 | |
两个公网开放端口 | 传输请求信息的接口 | |
公网服务器 | 做为中转服务器 | |
内网服务器 | 做为项目部署服务器 | |
nginx | http://nginx.org/en/download.html | 代理工具 |
frp | https://github.com/fatedier/frp/releases | 内网穿透工具 |
winsw | https://github.com/winsw/winsw/releases | 做成Windows服务的工具(非必须) |
2、安装与配置
服务器 | 安装工具 | 描述 |
公网代理服务器 | frp(frps)、nginx、winsw | 做对外访问和穿透配置 |
内网项目服务器 | frp(frpc)、winsw | 做穿透对接配置 |
(二)配置公网代理服务器
1、配置nginx
配置文件目录:nginx安装目录下的 打开conf中nginx.conf
相关配置:
#第一个项目内网渗透的代理配置;
server {
#设置项目可上传文件大小10000M;
client_max_body_size 10000M;
#设置可访问的端口33301;设置访问地址,我这里公网地址就是本机IP所以就写localhost;
listen 33301;
server_name localhost;
location / {
#设置外网访问后跳转的地址,frp内网渗透指定端口7000
proxy_pass http://127.0.0.1:7000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_max_temp_file_size 0;
proxy_redirect off;
proxy_read_timeout 240s;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
2、配置frps
(1) 解压frp_0.38.0_windows_386.zip安装包到指定目录,内容如下
(2) 修改文件夹名称frp_0.38.0_windows_386为项目简称如frp-jenkins,并删除frpc相关文件,如下图所示。
(3) 编辑frps.ini配置文件
[common]
#开放的、可被内网服务器访问的端口
bind_port = 33302
#指定的、nginx代理跳转的端口和外网访问地址(这里的IP要根据自己开通的公网地址写)
vhost_http_port = 7000
subdomain_host = 192.168.199.330
#身份验证,与客户端一致
token = woesk32SKE349$le123#234do
#frps监控,本机7501端口,用户密码登录,可以查看谁链接了
dashboard_addr = 0.0.0.0
dashboard_port = 7501
dashboard_user = admin
dashboard_pwd = admin
#设置日志显示级别
log_level = info
#设置日志最大天数
log_max_days = 999
#超时时间
heartbeat_timeout = 90
#最大链接数
max_pool_count = 10
3、配置启动文件
(1)创建文本文档-重命名为start.bat.
(2)编辑文件-填写启动命令并保存.
frps.exe -c frps.ini
(3)若不做开机自启,直接双击bat文件启动即可。
4、添加进Windows服务,设为开机自启(非必须)
(1) 将winsw.exe程序移动到frp目录下,新建文本文档-重命名为winsw.xml-编辑配置文件。
<service>
#所在上级目录名称
<id>frp-jenkins</id>
#服务名称
<name>frp-jenkins</name>
#详情介绍
<description>jenkins</description>
#命令
<executable>frps</executable>
#指定配置文件的命令
<arguments>-c frps.ini</arguments>
<onfailure action="restart" delav="60 sec"/>
<onfailure action="restart" delay="120 sec"/>
<logmode>reset</logmode>
</service>
(2) 在当前目录下打开cmd窗口,使用添加服务命令,添加到服务中。
#添加服务命令
winsw install
#启动服务命令
winsw start
#删除服务命令
sc delete 服务名
(3) 打开服务程序,查看是否添加成功,启动类型设置为【自动】,并手动【启动】此服务。
(三)配置内网项目服务器
1、配置frpc
(1) 解压frp_0.38.0_windows_386.zip安装包到指定目录,内容如下
(2) 修改文件夹名称frp_0.38.0_windows_386为项目简称如frp-jenkins,并删除frps相关文件。(下图中log文件是启动后生成的日志文件,不必在意,第一次安装是没有的)
(3) 编辑frpc.ini配置文件
[common]
tls_enable = true
#公网地址
server_addr = 192.168.199.330
#公网设置的端口
server_port = 33302
#身份验证,与公网一致
token = woesk32SKE349$le123#234do
#管理页面
admin_addr = 127.0.0.1
admin_port = 7402
admin_user = admin
admin_pwd = admin
#日志
log_file = ./frpc.log
log_level = info
#本地项目访问地址、端口
[192.168.199.330]
type = http
local_ip = 127.0.0.1
local_port = 9000
#外网域名
custom_domains = 192.168.199.330
2、配置启动文件
(1)创建文本文档,并重命名为start.bat.
(2)编辑文件-填写启动命令并保存
frpc.exe -c frpc.ini
(3)若不做开机自启,直接双击bat文件启动即可。
3.添加进Windows服务,设为开机自启(非必须)
(1) 将winsw.exe程序移动到frp所在目录下,新建文本文档-重命名为winsw.xml-编辑配置文件。
<service>
#所在目录
<id>frp-jenkins</id>
#服务名称
<name>frp-jenkins</name>
#详情介绍
<description>jenkins</description>
#命令
<executable>frpc</executable>
#指定配置文件的命令
<arguments>-c frpc.ini</arguments>
<onfailure action="restart" delav="60 sec"/>
<onfailure action="restart" delay="120 sec"/>
<logmode>reset</logmode>
</service>
(2) 添加到服务。
#添加服务命令
winsw install
#启动服务命令
winsw start
#删除服务命令
sc delete 服务名
(3) 打开服务,查看是否添加成功,启动类型设置为【自动】,并手动【启动】此服务。
(四)访问测试
(1)所有配置完成后启动服务.
(2)在外网环境访问公网地址,查看能否正常访问内网项目;