Total Pageviews

Monday, 13 June 2022

网页代理程序-siteproxy

 reverse proxy, 反向代理,免翻墙访问Youtube/twitter/Google, 支持telegram web登录。

反向代理, 免翻墙访问youtube/twitter/google, 支持telegram web登录. pure web page proxy to google/youtube, zero configuration from client side. Reverse proxy to all internet. 一键部署,翻墙利器。

                                                 +----> google/youtube
                             +----------------+  |
                             |                |  |
user browser +-------------->+ siteproxy      +-------> wikipedia
                             |                |  |
                             +----------------+  |
                                                 +----> chinese forums

请勿将本项目用于非法用途,否则后果自负。

目录

特点

  • 代码量只有jsproxy的四分之一左右
  • 不使用service worker,不会和网站本身的service worker冲突
  • enter siteproxy's address, and go surf on internet without censorship
  • no proxy setting from client side is needed. zero configuration from client browser
  • easy deployment to now.sh
  • support downloading files

原理

 1. user browser url: https://siteproxy.herokuapp.com/https/www.google.com
 2. siteproxy.herokuapp.com received the url and request www.google.com, and get response from www.google.com
 3. siteproxy replace all returned strings in javascript/html:
    https://www.google.com => https://siteproxy.herokuapp.com/https/www.google.com
    url(/xxx) => url(/https/www.google.com/xxx)
    https://xxx => https://siteproxy.herokuapp.com/https/xxx
    etc.
 4. send back the modified html/javascript to user browser.

支持代理的网站

1. www.google.com, and search action.
2. www.youtube.com, only firefox browser is supported.
3. zh.wikipedia.org, and search action.
4. facebook, login is not verified.
5. twitter, search in twitter, login is not supported.
6. telegram web login
7. 中文论坛等

部署到cloudflare_worker

1. 注册一个cloudflare账户
2. 在cloudflare上创建一个worker, 记下这个worker的子域名, 比如 abcd123.xxxx.workers.dev
3. 下载https://raw.githubusercontent.com/netptop/siteproxy/master/build/worker.js文件,用文本编辑器打开,搜索siteproxy.netptop.workers.dev,替换成你的子域名
4. 在cloudflare上编辑刚刚创建的worker, 将worker.js所有内容拷贝,覆盖粘贴到worker里面,保存
5. 现在应该可以在浏览器中 访问你的子域名了

部署到now服务器

注意:大量使用可能被封账户
(可能有问题,暂时没有now账户测试)
1. 注册一个now账户https://zeit.co/home
2. 没有github账户的话, 注册一个github账户,fork本repo
3. 在now的控制台里面创建一个应用, 且绑定到你刚才fork的repo上, 会得到一个域名类似的域名:your-domain-name.now.sh
4. 在github上修改你刚fork的repo, 将config.js里的serverName修改为你的新域名:
   serverName: 'siteproxy.netptop.com' ====> 'your-domain-name.now.sh'
5. 现在可以在浏览器里面访问你的新域名了:  https://your-domain-name.now.sh

部署到heroku服务器

注意:大量使用可能被封账户
1. 注册一个heroku账户: https://www.heroku.com/
2. 没有github账户的话, 注册一个github账户,fork本repo
3. 在heroku的控制台里面创建一个应用, 且绑定到你刚才fork的repo上, 会得到一个域名类似的域名:your-domain-name.herokuapp.com
4. 在heroku的'Deloy'页面, 点击'Enable Automatic Deploys'按钮
5. 在github上修改你刚fork的repo, 将procfile里的域名修改为你的新域名(记得不要加https前缀):
         "web: herokuAddr=siteproxy.herokuapp.com npm run start"
   ====> "web: herokuAddr=your-domain-name.herokuapp.com npm run start"
6. 现在可以在浏览器里面访问你的新域名了:  https://your-domain-name.herokuapp.com

部署到vps服务器

1. 创建一个ssl website(使用certbot and nginx, google下用法), 配置nginx,
   /etc/nginx/sites-enabled/default 需要包含以下内容:
   ...
   server {
      server_name siteproxy.your.domain.name
      location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass       http://127.0.0.1:8011;
      }
   }
2. 执行:sudo systecmctl start nginx
3. 用户环境下执行下列命令安装node环境, 如果你已经有node环境, 忽略这一步
   (1)curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
   (2)source ~/.bashrc
   (3)nvm install v12.16.3
3. 执行:npm install -g forever
4. 执行:git clone https://github.com/netptop/siteproxy.git;
5. 执行:cd siteproxy; npm install;
6. 打开config.js文件, 找到serverName定义的地方, 如下修改:
   serverName: 'siteproxy.herokuapp.com' ====> '这填你的域名'
7. 执行:forever start -c 'node --tls-min-v1.0' index.js
8. 现在就可以在浏览器中访问你的域名了.
9. 如果想套CloudFlare加速, 可以参考CloudFlare说明

cloudflare_worker_deployment

1. register a cloudflare account
2. create a worker in cloudflare, remember worker's sub-domain name, like abcd123.xxxx.workers.dev
3. download https://raw.githubusercontent.com/netptop/siteproxy/master/build/worker.js, open it in a text editor, search and replace 'siteproxy.netptop.workers.dev' with your sub-domain name.
4. edit the worker just created in cloudflare, replace worker's content with content of build/worker.js, save.
5. done.

now_deployment

Note: massive usage might lead to account being blocked
1. register one now.sh account from https://zeit.co/home
2. npm install -g now
3. git clone https://github.com/netptop/siteproxy.git
4. cd siteproxy
5. now
6. find your domain name from now cli, then replace serverName in 'config.js', like:
   serverName: 'siteproxy.herokuapp.com' ====> 'your-domain-name.now.sh'
7. change "blockedSites = ['www.youtube.com', 'm.youtube.com']" ====> "blockedSites = []" if you want to support youtube
8. now --prod
9. done

heroku_deployment

Note: massive usage might lead to account being blocked
1. registration on heroku: https://www.heroku.com/
2. hook this repo on github(a github account is needed)
3. create an application in heroku, binding to the github repo which you just forked. you will get an subdomain name: your-domain-name.herokuapp.com
4. on heroku page 'Deloy', click 'Enable Automatic Deploys' button.
5. modifiying the github repo, to change domain name to your heroku subdomain name in procfile, without 'https' prefix. like:
         "web: herokuAddr=siteproxy.herokuapp.com npm run start"
   ====> "web: herokuAddr=your-domain-name.herokuapp.com npm run start"
6. now you can access your heroku subdomain name: https://your-domain-name.herokuapp.com

vps_deployment

1. create ssl website(using certbot and nginx), and configure nginx as follow:
   vi /etc/nginx/sites-enabled/default:
   ...
   server {
      server_name siteproxy.your.domain.name
      location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass       http://127.0.0.1:8011;
      }
   }
2. systecmctl start nginx
3. npm install -g forever
4. git clone https://github.com/netptop/siteproxy.git; 
5. cd siteproxy; npm install;
6. replace serverName in 'config.js', like:
   serverName: 'siteproxy.herokuapp.com' ====> 'siteproxy.your.domain.name'
7. forever start -c 'node --tls-min-v1.0' index.js
8. done, now you can access your domain name from browser.

联系方式

Telegram群: @siteproxy
email: netptop@gmail.com

from https://github.com/netptop/siteproxy 

------

    SiteProxy 2.0

    SiteProxy 是一个功能强大的在线代理工具,采用了最新的技术,提升了代理的稳定性和兼容性。我们致力于提供 简单、高效、安全 的代理服务,为用户提供最佳的互联网访问体验。

    • 超高速性能:采用 Hono 替代传统的Express 服务器,性能提升 4 倍,带来更流畅的使用体验。
    • 云端部署:完美支持 Cloudflare Worker 部署,快速且高效。
    • AI 智能聊天:集成 DuckDuckGo AI Chat,免费提供 GPT-3.5 和 Claude 3,让你的代理服务更加智能。
    • 高级安全保护:支持密码控制代理,只有授权用户才能访问,大幅提升安全性。
    • 零配置使用:用户无需进行任何客户端配置,只需访问代理网址即可畅游全球互联网。
    • 便捷登录:全面支持 GitHub 和 Telegram Web 登录,操作简单快捷。
    • 强力加密:采用 RSA + AES 双重加密技术,保护用户登录密码,防止中间人攻击。
    • 隐私保护:通过代理网址访问全球互联网,同时隐藏用户真实 IP,保护隐私。
    • 无缝体验:无需任何软件安装和浏览器配置,即可立即使用,提供极致便利的用户体验。
    查看原理

    Caution

    严禁将本项目用于任何非法用途,否则后果自负

    Warning

    由于支持多个网站的 Login,为了减少钓鱼风险,Siteproxy 在 2.0 版本对代码进行了混淆,同时禁止了默认主页网址的修改。

    展示

    来自 Telegram 的网友的展示 Siteproxy 部署后,加上优选IP的速度测试: Download Speed test

    部署到 Cloudflare Pages

    1. 确保域名管理
      • 确保你的域名已经在 Cloudflare 名下进行管理。
    2. 克隆仓库
      • 执行命令:git clone https://github.com/netptop/siteproxy.git
    3. 编辑配置文件
      • 使用文本编辑器打开 siteproxy/build/cf_page/_worker.js 文件。
      • 搜索并替换字符串 http://localhost:5006 为你的代理服务器域名, 必须替换为HTTPS,例如 https://your-proxy-domain.com(请使用 https)。
      • 搜索并替换字符串 user22334455 为你想设置的访问密码。如果密码为空,则表示不需要密码即可访问。保存文件。
    4. 登录 Cloudflare
      • 进入 Workers 和 Pages 部分,选择 使用直接上传创建 一个 Page,上传 siteproxy/build/cf_page 目录进行部署。
    5. 配置自定义域
      • Workers & Pages 页面,打开刚才部署的 Page。
      • 点击顶部的 自定义域,然后选择 添加自定义域,设置为你的代理域名并激活域名。
    6. 访问代理服务
      • 现在可以通过 https://your-proxy-domain.com/your-password/ 访问代理服务(确保最后的斜杠存在)。注意将域名和密码替换为你自己的。

    部署到 Cloudflare Workers

    1. 确保域名管理
      • 确保你的域名已经在 Cloudflare 名下进行管理。
    2. 下载并编辑 Worker 文件
      • 下载 build/worker.js 文件:链接,并使用文本编辑器打开。
      • 搜索并替换字符串 http://localhost:5006 为你的代理服务器域名,必须替换为HTTPS,例如 https://your-worker-domain.com(请使用 https)。
      • 搜索并替换字符串 user22334455 为你想设置的访问密码。如果密码为空,则表示不需要密码即可访问。
    3. 创建 Worker
      • 登录 Cloudflare,进入 Workers 和 Pages 部分,创建一个 Worker。
      • 编辑刚才创建的 Worker,将编辑过的 worker.js 文件内容复制粘贴到 Worker 内部,保存并部署。
    4. 配置自定义域
      • Workers & Pages 页面,打开刚才保存的 Worker。
      • 点击顶部的 设置 -> 触发器,然后选择 添加自定义域,设置为你的代理域名。自定义域名设置成功后,DNS 页面应显示对应的 DNS 类型为 Worker。
    5. 访问代理服务
      • 现在可以通过 https://your-worker-domain.com/your-password/ 访问代理服务(确保最后的斜杠存在,并替换为你自己的域名和密码)。

    部署到 VPS 或者云服务器

  1. 创建 SSL 网站
    • 使用 certbotnginx 创建 SSL 网站。具体用法可以 Google 搜索。
    • 配置 nginx,确保 /etc/nginx/conf.d/default.conf 文件包含以下内容:
      server {
         server_name your-proxy.domain.name; #请替换为你的实际域名
         location / {
           proxy_pass http://localhost:5006;
         }
      }
  2. 重启 nginx
    • 执行命令:sudo systemctl restart nginx
  3. 安装 Node.js v21 或更高版本
    • 执行以下命令:
      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
      source ~/.bashrc
      nvm install v21
  4. 克隆仓库
    • 执行命令:git clone https://github.com/netptop/siteproxy.git
  5. 进入项目目录
    • 执行命令:cd siteproxy
  6. 测试运行
    • 执行命令:node bundle.js
    • 如果没有错误,按 Ctrl+C 结束程序。
  7. 配置文件修改
    • 打开并修改 config.json 文件,内容如下:
      {
         "proxy_url": "https://your-proxy.domain.name", // 替换为HTTPS加你的代理服务器域名,确保使用 https
         "token_prefix": "/user-SetYourPasswordHere/",  // 设置网站密码,用于防止非法访问,保留首尾的斜杠。为空表示不设置密码
         "local_listen_port": 5006, // 不要修改,以确保与 nginx 配置一致
         "description": "注意:token_prefix 相当于网站密码,请谨慎设置。 proxy_url 和 token_prefix 合起来就是访问网址。"
      }
    1. 安装 Forever
      • 执行命令:npm install -g forever
    2. 启动应用
      • 执行命令:forever stopall && forever start bundle.js
    3. 访问代理服务
      • 在浏览器中访问你的域名,网址为 proxy_urltoken_prefix
    4. 使用 Cloudflare 加速(可选)
      • 参考 Cloudflare 的官方说明进行设置。

    现在,你的代理服务已经成功部署并可以通过浏览器访问。

    Docker 部署

  8. 配置 SSL 证书和 Nginx
    • 配置域名对应的 SSL 证书和 Nginx,将其指向本地的 5006 端口。
  9. 克隆仓库
    • 执行命令:git clone https://github.com/netptop/siteproxy.git
  10. 编辑配置文件
    • 打开并修改 config.json 文件,内容如下:
      {
         "proxy_url": "https://your-proxy-domain.com", // 替换为你申请到的代理服务器域名
         "token_prefix": "/user-SetYourPasswordHere/",  // 设置网站密码,用于防止非法访问,保留首尾的斜杠
         "description": "注意:token_prefix 相当于网站密码,请谨慎设置。 proxy_url 和 token_prefix 合起来就是访问网址。"
      }
    • 保存文件。
  11. 启动 Docker 容器
    • 进入 docker-node 子目录。
    • 执行命令:sudo docker compose up
  12. 访问代理服务
    • 现在可以通过 https://your-proxy-domain.com/user-your-password/ 访问代理服务。请将域名和密码替换为你自己的域名和密码。

    from https://github.com/netptop/siteproxy (copied on 2024-09-11)

 

No comments:

Post a Comment