tiengming / tiengming.github.io

My personal tech blog
1 stars 0 forks source link

使用workers代理IP:端口 #9

Open tiengming opened 3 months ago

tiengming commented 3 months ago

一、目的

二、实现

  1. 创建一个workers,名称随意,比如说targetworkers为什么是targetworkers而不是target呢?留给聪明的你回答
  2. 编辑代码:
addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  // 目标域名和端口
  const targetHost = 'targetworkers.example.com:6666'

  // 获取原始请求的 URL 和路径
  const url = new URL(request.url)
  const targetUrl = `http://${targetHost}${url.pathname}${url.search}`

  // 构造新的请求
  const proxyRequest = new Request(targetUrl, {
    method: request.method,
    headers: request.headers,
    body: request.body,
  })

  // 发送请求并返回响应
  const response = await fetch(proxyRequest)

  // 创建新的响应,保持地址栏不变
  return new Response(response.body, {
    status: response.status,
    statusText: response.statusText,
    headers: response.headers,
  })
}
  1. 保存并部署
  2. 添加自定义域名,将这个workers解析到target.example.com
  3. 进行DNS解析:使用A记录将targetworkers.example.com解析到123.456.789

三、完成

现在访问target.example.com就可以打开123.456.789:6666了。其实就是代理。