frp+procifier流量代理

本文详细介绍了如何在VPS上搭建一个私有测试环境,通过Docker部署Web服务并配置内部访问,以及使用frps和frpc实现流量代理,确保测试过程的顺利进行。

一、搭建测试环境

在vps上部署dockers开启一个仅可内部访问的web服务,利用测试机代理vps的流量,从而进行访问该web服务

1.添加yum源。
yum install epel-release -y
yum clean all

安装并运行Docker。
yum install docker-io -y
systemctl enable docker
systemctl start docker

检查安装结果:docker --version
回显如下,表示Docker安装成功。
在这里插入图片描述

2.载入镜像training/webapp:docker pull training/webapp
3.创建一个新的容器:docker run [选项] 镜像文件
举例:docker run -b -p 543:5000 training/webapp 意思为:在docker后台创建一个training/webapp镜像的容器,并且将主机的543端口映射到docker容器5000端口
由于我们不做映射,所以只需要:

Docker run -d -P training/webapp
  选项:-d(创建到后台) 
              -t:在新容器内指定一个伪终端或终端
              -i:允许你对容器内的标准输入 (STDIN) 进行交互
              -p(映射自定义端口:434:5000-P(自动映射端口,将容器内部使用的网络端口映射到我们使用的主机上)

4.查看当前运行的容器:

docker ps

5.查看当前容器的IP:

docker inspect 容器id

6.内部访问:

curl 172.17.0.2:5000

在这里插入图片描述

流量代理

1…开始流量代理,在vps上开启frps:./frps -c frps.ini
在这里插入图片描述
2.在vps上开启frpc:

./frpc -c frpc.ini

在这里插入图片描述
3.在虚拟机利用proxifier测试代理是否正常,代理服务器地址为frps的地址,端口为frpc.ini中的端口。
在这里插入图片描述

在这里插入图片描述

4.访问网页,说明成功代理
在这里插入图片描述

查看当前运行的容器:docker ps
查看docker下历史运行过的容器(包括当前):docker ps -a
查看某个容器的端口映射:docker port 容器ID/名字
运行一个容器:docker start 容器ID/名字
停止一个容器:docker stop [选项] [容器ID/容器名字...]
查看容器进程:docker top 容器ID/名字
查看容器底层配置:docker inspect
列出本机所有镜像:docker images

查看所有容器的ip:docker network inspect bridge
查看指定容器的ip:docker inspect 容器id

使用frp和Nginx实现内网穿透多端口,可参考以下步骤和思路: ### 前置准备 - **服务端**:一台具有公网 IP 的服务器,例如 IP 为 254.215.2.21 [^3]。 - **客户端**:一台可访问互联网的普通电脑,如 IP 为 192.168.100.120,且已下载并部署好 Nginx 服务 [^3]。 - **frp 脚本部署文件**:完成 frp 的部署和安装(具体部署和安装可参考《[FRP] 初探》) [^3]。 ### 配置 frp 服务端 编辑 frps.ini 文件,示例如下: ```ini [common] bind_port = 7000 token = xxxxxxxxxxxx vhost_http_port = 8080 ``` - `bind_port`:frp 服务端与客户端通信的端口。 - `token`:用于身份验证的令牌,客户端配置需保持一致。 - `vhost_http_port`:用于 HTTP 类型穿透的端口。 ### 配置 frp 客户端 编辑 frpc.ini 文件,若要实现多端口穿透,可添加多个服务配置,示例如下: ```ini [common] server_addr = 254.215.2.21 server_port = 7000 token = xxxxxxxxxxxx [service1] type = http local_port = 8899 custom_domains = example1.com [service2] type = http local_port = 9900 custom_domains = example2.com ``` - `[service1]` 和 `[service2]` 是自定义的服务名称。 - `type`:穿透类型,这里为 HTTP。 - `local_port`:被穿透的本地服务端口。 - `custom_domains`:访问的公网域名,需将域名解析到服务端公网 IP。 ### 配置 Nginx 在服务端配置 Nginx,将不同域名的请求转发到对应的 frp 端口。编辑 Nginx 配置文件,示例如下: ```nginx server { listen 80; server_name example1.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name example2.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` - `server_name`:对应的公网域名。 - `proxy_pass`:将请求转发到 frp 的 `vhost_http_port`。 ### 启动服务 - 启动 frp 服务端:`./frps -c frps.ini` - 启动 frp 客户端:`./frpc -c frpc.ini` - 启动 Nginx 服务:`nginx -s reload` 通过以上步骤,即可使用 frp 和 Nginx 实现多端口的内网穿透,将不同本地服务通过不同域名暴露到公网。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值