前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >斥99元巨资,搭建专属socks5和HTTP代理

斥99元巨资,搭建专属socks5和HTTP代理

原创
作者头像
叫我阿柒啊
修改2024-04-15 18:01:51
25711
代码可运行
修改2024-04-15 18:01:51
举报
运行总次数:1
代码可运行

前言

买了三年的腾讯cmv在4月14日到期了,也想访问一些不能访问的,于是斥资99元全款拿下了一个Hong Kong区域的vps,选择这个区域节点的原因就是想测试一下openai的接口,于是乎就在vps搭建了一个代理服务。

最后搭建了两个代理服务,一个是socks5代理,一个是http代理。本来dante搭建了一个socks5代理,在python已经测试成功了。

代码语言:python
代码运行次数:1
复制
proxies = {
    'http': f'socks5h://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}',
    'https': f'socks5h://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}'
}

添加socks5代理之后进行测试:

然后就想在Chrome中也测试一下吧,然后我就根据在网上的步骤进行了设置。

配置socks5

我使用的MacBook,网上一共给出了两种方案,第一个是在网络偏好设置中设置。

然后在chrome访问任何网页,都出现该网站可能移动到其他网址类似的提示,说白了就是访问不到,此时我还没有意识到问题的严重性,于是我就换了第二种方案,下载Proxy SwitchyOmega插件。

开始鼓捣SwitchyOmega是凌晨一点多,不知道是心累还是真困了,刚开始没有看到浏览器不支持socks5代理的提示,就是一直连不上....最后又换了FireFox浏览器,FireFox更过分!!socks5没有用户名、密码的输入框,还得从自定义配置搜....耽误了半个小时,反正是没成功。

期间分析了socks5代理服务器的日志,在python中使用代理的时候,可以看到访问的成功信息,使用浏览器的时候,日志blocked by higher-level socks-rule #0: no rules matched; using default block rule,关键这个日志是INFO级别的,也看不出什么。

快凌晨三点的时候,我还研究了半个小时dante的规则配置,该尝试修改的都修改了,github仓库和网上相关的资料也不多,所以放弃了chrome使用socks5的想法,于是就乖乖搭建了一个http代理服务器。

搭建HTTP代理

搭建HTTP代理的选择有很多,我这里选择的是Nginx。

正向代理

在大学刚接触web的时候就用到了Nginx,那时候一个反向代理的概念让我理解了好久,而今天要搭建的HTTP代理,是一个正向代理。这里再来回顾一下正向和反向的区别。

我在浏览器上加了一个IP代理,在浏览器输入百度的URL,然后成功访问了百度,这个IP代理就是正向代理,因为我们知道我用这个IP要访问什么网站(百度)。

百度作为一个很大的搜索引擎,想要支撑全国的搜索需求,肯定会使用很多服务器,然后通过区域或者负载均衡来均分搜索请求。所以说,我们访问www.baidu.com的时候,百度的网关服务器会随机将我们的请求转发到某一台服务器,但是具体哪一台我们是不知道的,我们只知道访问了百度。百度的网关服务器就是反向代理。

代理配置

在下载、编译好nginx之后,在nginx.conf中添加http代理的配置。

代码语言:python
代码运行次数:0
复制
server {
  listen 8848;
  server_name 122.91.xx.xx;
  resolver  114.114.114.114;
  proxy_connect;
  proxy_connect_allow 443 80;   
  location / {
      proxy_pass $scheme://$host$request_uri;
      proxy_set_header Host $http_host;
      proxy_buffers 256 4k; 
      proxy_max_temp_file_size 0;
      proxy_connect_timeout 30;  
   }
}

在nginx.conf中增加一个server节点来监听8848端口,其中server_name是vps公网IP,proxy_pass通过变量设置,来解析并转发我们接收到的请求到目标网站。

proxy_connect是很重要的一个配置,可以将客户端的TCP连接转发到另一台服务器,建立源地址与目的地址之间的直接TCP连接,实现TCP级别的代理转发。Nginx自带的proxy模块只支持HTTP代理,不支持TCP代理。

同时如果想要代理HTTPS请求,也必须配置proxy_connect,请求建立到目标服务器的SSL/TLS连接。使用此配置需要安装ngx_http_proxy_connect_module模块。

其他就是一些常规配置,启动nginx进行测试。

使用代理

在我的笔记本上使用curl -x指定代理进行测试,返回的ip是vps的代理。

在chrome浏览器中设置代理,访问网站。

从nginx后台日志可以看到请求代理信息。

结语

使用nginx也可以搭建https代理,但是需要域名申请SSL证书,尝试未果,放弃。除此之外,在新的vps上安装nginx也遇到了一些问题,下一篇将会整理遇到的问题及解决方案。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 配置socks5
  • 搭建HTTP代理
    • 正向代理
      • 代理配置
        • 使用代理
        • 结语
        相关产品与服务
        负载均衡
        负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com