赞
踩
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
本文主要介绍采用docker安装,首先从docker hub下载frp的服务端frps。
docker pull snowdreamtech/frps:0.44.0
[common] # 服务端口 bind_port = 7100 # 控制启用面板每页端口 dashboard_port = 7101 # 面板登录名和密码 dashboard_user = admin dashboard_pwd = 123456 # 使用http代理并使用7102端口进行穿透 vhost_http_port = 7102 # 使用https代理并使用7103端口进行穿透 vhost_https_port = 7103 #域名 subdomain_host = frp.ch-vip.cn # 服务token(根据实际情况修改),相当于连接密码,建议设置 token =123456
docker run -p 7100-7103:7100-7103 -d \
-v /usr/myapp/frp/frps.ini:/etc/frp/frps.ini \
--name frps snowdreamtech/frps:0.44.0
将域名frps.ch-vip.cn二级域名指向服务器,并且*.frps.ch-vip.cn三级域名也指向服务器,三级域名指向服务使客户端可以自定义域名进行访问。
通过访问地址http://frp.ch-vip.cn:7101,能够打开页面并登录成功,说明安装部署成功。
目前可以在 Github 的 Release 页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中.
[common] #连接服务端的地址 server_addr = frps.ch-vip.cn #连接服务端的端口 server_port = 7100 #鉴权使用的 token 值 token = 123456 [web1] #代理类型 type = http #本地服务端口 local_port = 8081 #自定义子域名,只需要指定域名前缀 subdomain = test1 [web2] #代理类型 type = http #本地服务端口 local_port = 8082 #自定义子域名,只需要指定域名前缀 subdomain = test2
通过cmd命令行运行如下命令
./frpc -c ./frpc.ini
#或者
frpc -c frpc.ini
在浏览器中打开test1.frps.ch-vip.cn:7102即可访问自己代理的服务。
更多配置请参考frp官方网站
通过nginx配置,实现管理面板及我们代理的地址都使用80端口。
此处创建网络不是必须的,不创建网络容器也会加入一个默认网络。
docker network create --driver=bridge --subnet=192.168.0.0/16 --gateway=192.168.1.1 --ip-range=192.168.1.0/24 tmnet
server { listen 80; server_name frps.ch-vip.cn *.frps.ch-vip.cn; location / { proxy_pass http://192.168.1.200:7102; 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; } } server { listen 80; server_name frps-dashboard.ch-vip.cn; location / { proxy_pass http://192.168.1.200:7101; index index.html index.htm; } }
docker run -p 80:80 -p 443:443 --net tmnet --ip 192.168.1.4 \
-v /usr/myapp/nginx/file:/var/file \
-v /usr/myapp/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/myapp/nginx/logs:/var/log/nginx \
-v /usr/myapp/nginx//run:/var/run \
--name nginx -d nginx:1.15tm
不需要修改ffps.ini文件,此时启动frps服务时,不再暴露除7000以外的其他端口
docker run -p 7100:7100 --net tmnet --ip 192.168.1.200 -d \
-v /usr/myapp/frp/frps.ini:/etc/frp/frps.ini \
--name frps snowdreamtech/frps:0.44.0
客户端服务重启一下,之后就可以使用http://h5.frps.ch-vip.cn正常访问了,不再需要输入端口号
将域名frps-dashboard.ch-vip.cn指向服务器地址,即可实现http://frps-dashboard.ch-vip.cn访问frps控制面板。
到此已实现nginx代理80端口实现转发。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。