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

文章正文
发布时间:2024-05-27 07:34

首先说下应用场景——我手上一台m1的mac,欧博一台win10的电脑。我想在mac上搭起正向代理,在win10上应用这个代理。

然后开始实操:

下载frp

这个在github搜fatedier的那个frp即可,我这里是需要在m1芯片的mac上运行所以下载了这个:

代码语言:javascript

复制

frp_0.44.0_darwin_arm64.tar.gz

更改配置

1⃣️配置frps.ini,有第一行足矣

代码语言:text

复制

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中提供的样例去配的😌

代码语言:text

复制

[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,欧博allbet首先启动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搭起正向代理,配置形如:

代码语言:text

复制

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; } }

或形如:

代码语言:text

复制

server { resolver 114.114.114.114; #百毒dns listen 80; server_name localhost; #正向代理转发http请求 location / { proxy_pass $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 $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{}下转发,这样的话还是用frp好好一点。

首页
评论
分享
Top