侧边栏壁纸
  • 累计撰写 54 篇文章
  • 累计创建 31 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

使用serv00做固定IP代理

nankle
2024-10-03 / 0 评论 / 0 点赞 / 21 阅读 / 3475 字
温馨提示:
本文最后更新于 2024-10-03,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

之前使用nastool的交互工具使用了企业微信的机器人,但是企业微信需要设置可信ip,家里虽然有公网,但是隔段时间就会换ip,还得去上面更新,最新发现可以直接在serv00搭建代理服务,然后设置serv00的地址为固定地址。这样就不怕ip变了。其他的需要代理的理论上都可以这么设置。

设置域名反向代理

创建代理程序

本文使用python

import http.server
import socketserver
import requests
import json

FORWARD_URL = "https://qyapi.weixin.qq.com"  # 不带路径的部分

class ForwardRequestHandler(http.server.BaseHTTPRequestHandler):
    def do_GET(self):
        if self.path.startswith('/'):
            url_path = self.path[1:]
        else:
            url_path = self.path
        
        response = requests.get(FORWARD_URL + '/' + url_path)
        
        self.send_response(response.status_code)
        for key, value in response.headers.items():
            self.send_header(key, value)
        self.end_headers()
        self.wfile.write(response.content)

    def do_POST(self):
        content_length = int(self.headers['Content-Length'])
        post_data = self.rfile.read(content_length)
        
        # 确保 Content-Length 头不被重复传递
        headers = {'Content-Type': 'application/json'}
        
        if self.path.startswith('/'):
            url_path = self.path[1:]
        else:
            url_path = self.path
        
        # 提取 access_token
        access_token = self.path.split('?')[1].split('&')[0].split('=')[1]
        url = f"{FORWARD_URL}/{url_path}"
        
        try:
            # 尝试将请求体解码为 UTF-8 字符串
            post_data_str = post_data.decode('utf-8')
            # 尝试将字符串转换为 JSON 对象
            post_data_json = json.loads(post_data_str)
            # 使用 JSON 对象发送 POST 请求
            response = requests.post(url, json=post_data_json, headers=headers)
        except ValueError:
            # 如果不是 JSON 格式,则直接发送原始数据
            response = requests.post(url, data=post_data, headers=headers)
        
        self.send_response(response.status_code)
        for key, value in response.headers.items():
            self.send_header(key, value)
        self.end_headers()
        self.wfile.write(response.content)

def run(server_class=socketserver.TCPServer, handler_class=ForwardRequestHandler, port=3003):
    server_address = ('0.0.0.0', port)
    httpd = server_class(server_address, handler_class)
    print(f'Starting httpd on port {port}...')
    httpd.serve_forever()

if __name__ == '__main__':
    run()

使用pm2运行:

pm2 start ./get.py --name 'get_request' --interpreter python3

nastool的设置,设置推送代理

实现效果

手机端发送消息,发送到微信服务器,微信服务器通过nas的地址发送到NASTOOL,NASTOOL搜索影音,搜索完通过serv00的代理发送到serv00服务器,服务器再转发到微信服务器,微信服务器发送到手机客户端。

0

评论区