前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用frp搭建正向代理(http代理或socks5代理)

用frp搭建正向代理(http代理或socks5代理)

原创
作者头像
Oxy
修改2024-07-28 17:53:55
17.7K0
修改2024-07-28 17:53:55
举报
文章被收录于专栏:随便写一点东西

前言

应用场景示例——在mac上搭起正向代理,在win上应用这个代理。

开始实操:

下载frp

在github搜fatedier的frp项目,下载适配自己设备的版本:

代码语言:javascript
复制
frp_0.44.0_darwin_arm64.tar.gz

更改配置

1⃣️配置frps.ini

代码语言:ini
复制
bind_port = 7000

# enable logs
log_file = ./frps.log
trace, debug, info, warn, error
log_level = info
log_max_days = 3

2⃣️配置frpc.ini,配置参考frpc_full.ini中提供的样例

代码语言:ini
复制
[common]
server_addr = 127.0.0.1
server_port = 7000

# enable logs
log_file = ./frpc.log
trace, debug, info, warn, error
log_level = info
log_max_days = 3

[proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
plugin_http_user = abc
plugin_http_passwd = abc

[socks5_proxy]
type = tcp
remote_port = 6005
plugin = socks5
plugin_user = abc
plugin_passwd = abc

完成配置后,运行命令检查配置

代码语言:shell
复制
./frps verify -c frps.ini
./frpc verify -c frpc.ini

看到syntax is ok即校验通过,下图是frps,frpc也是一样的。

代码语言:shell
复制
tnt@tntdeMBP ~ % cd frp_0.44.0_darwin_arm64 
tnt@tntdeMBP frp_0.44.0_darwin_arm64 % ./frps verify -c frps.ini
frps: the configuration file frps.ini syntax is ok
配置校验
配置校验

启动frp

依次启动frps和frpc,首先启动frps

代码语言:shell
复制
./frps -c frps.ini

再新建一个终端窗口或标签页,用来启动frpc

代码语言:shell
复制
./frpc -c frpc.ini

如果需要关闭frp,在对应的终端窗口按下快捷键Ctrl+C即可

访问端配置

以http_proxy为例,在win10上手动配置代理,这里通过Chrome插件SwitchyOmega配置,填入代理服务器和代理端口后在页面左侧点击应用选项 保存配置:

创建代理配置
创建代理配置

然后切换到这个代理:

切换代理配置
切换代理配置

测试

然后尝试网上冲浪:

访问腾讯云
访问腾讯云

总结

上图中的 remote address就是代理服务器的地址了,这个是http代理的情况,如果是socks5代理这里还是源服务器的地址。

此外还可以用nginx搭起正向代理,配置形如:

代码语言:apacheconf
复制
    server {
        listen                           80;
        server_name                      localhost;
        resolver                         202.96.103.36; #浙江电信dns
        # proxy_connect,该directive由第三方插件提供;
        proxy_connect;
        proxy_connect_allow              443 80;
        proxy_connect_connect_timeout    10s;
        proxy_connect_read_timeout       10s;
        proxy_coneect_send_timeout       10s;
        location / {
            proxy_pass $scheme://$http_host$request_uri;
        }
    }

或形如:

代码语言:apacheconf
复制
server {
    resolver 114.114.114.114; #百毒dns
    listen 80;
    server_name  localhost;
	
    #正向代理转发http请求
    location / {
        proxy_pass                 http://$host$request_uri;
        proxy_set_header           HOST $host;
        proxy_buffers              256 4k;
        proxy_max_temp_file_size   0k;
        proxy_connect_timeout      30;
        proxy_send_timeout         60;
        proxy_read_timeout         60;
        proxy_next_upstream error  timeout invalid_header http_502;
    }
}

server {
    resolver 223.5.5.5; #阿里dns
    listen 443;
	
    #正向代理转发https请求
    proxy_connect;
    #源服务器的web资源的端口?
    proxy_connect_allow            443;
    proxy_connect_connect_timeout  10s;
    proxy_connect_read_timeout     10s;
    proxy_connect_send_timeout     10s;
    location / {
        proxy_pass http://$host;
        proxy_set_header Host $host;
    }
}

但是nginx相对于frp还是比较麻烦的,上述https的配置是建立在给nginx添加了第三方插件的基础上,插件名为

ngx_http_proxy_connect_module

然后在访问端,配置代理服务器ip就是nginx的ip,然后代理端口就是nginx的server{}监听的端口例如443,nginx监听的端口就是访问端配置的代理端口。

对于http的web资源,以及https的web资源,不能放到同一个server{}下转发。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 下载frp
  • 更改配置
  • 启动frp
  • 访问端配置
  • 测试
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档