自建在线网页代理
2023-11-23 12:59:26

本文链接:https://blog.tanglu.me/web-browser

更新:

2023-04-18 补充了宝塔nginx反代配置白屏问题,修正了clash无法为hnet提供代理

2023-09-17 hideip network有重大更新(v3.1-beta),增加了新版本的配置教程

一、前言

本篇的在线网页代理是匿名浏览网页工具,与上篇 自建远程浏览器 不同的地方在于

  • neko远程浏览器是服务器解码 传输画面给客户端,而在线匿名浏览器代理类似于转发工具 对服务器配置要求较低
  • neko可多人协同,而在线匿名浏览器代理每个用户是独立的

在线网页代理的程序很多,以下为我知道的

我个人感觉 hnet 和 croxyproxy 支持的应用比较完善

大家可以体验我搭建的hnet演示站:https://web.tanglu.me

该演示站持续维护,任何人都可以使用,有需要的小伙伴可以加个收藏夹

本文以Debian11系统的vps来演示安装hnet 1H1G即可非常稳定运行

二、安装node和npm

node版本需要16以上,推荐18

apt/yum安装的版本过低,所以需要手动安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#下载node包
wget https://nodejs.org/dist/v18.15.0/node-v18.15.0-linux-x64.tar.xz

#解压
tar -xvf node-v18.15.0-linux-x64.tar.xz

#重命名文件夹
mv node-v18.15.0-linux-x64 nodejs

#将npm和node通过软连接放入环境变量
ln -sf /root/nodejs/bin/npm /usr/local/bin/npm
ln -sf /root/nodejs/bin/node /usr/local/bin/node

#查看是否有效 node版本需要16以上
node --version
npm --version

image

下载hnet文件

hnet也支持cloudflare workers配置,但是有一定可能封号,程序占用不大 建议在vps安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
###安装git lsof
apt install lsof git -y

#下载文件
cd /root
#v2版本较老 建议下载v3.1-beta
#git clone -b v2 https://github.com/Hideipnetwork/hideipnetwork-web.git
#v3.1-beta新版本下载
git clone -b v3.1-beta https://github.com/Hideipnetwork/hideipnetwork-web.git


#进入hnet文件夹
cd hideipnetwork-web

#启动hnet
#v3.1-beta还需要配置mysql才能正常启动,可以自己本地安装mysql或者使用购买mysql云服务产品
npm install
npm run start

这样就代表启动成功,但是需要在本机反代 56559端口,并且必须通过https访问

image

三、v3.1-beta额外说明

该版本新增 密码验证、网站屏蔽(支持通配符)、公告栏等,但也需要额外设置mysql数据库

新版本的socks5代理设置在 .env

1、配置数据库

可以自己本地/其他vps安装mysql或者使用购买mysql云服务产品

如果只是用hnet不推荐购买云服务数据库 太贵了,直接在本地或者其他vps装一个就行

v3.1-beta版本新增后台管理功能,会用到mysql数据库(对数据库版本无要求),这里提供两种方法

法一、图形化面板管理数据库

这里我用的宝塔安装mysql数据库,并安装好数据库管理面板 phpMyAdmin ,phpMyAdmin基于php所以也需要安装php

image

image

image

image

image

法二、linux命令行连接数据库并导入

这里用digitalocean的云服务数据库,并在linux命令行连接并导入(在linux安装mysql就不展示了)

你也可以连接你自己搭建的数据库

image

image

执行以下命令连接数据库并导入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
mysql -u dbuser -h access_host -P port -p

#记得将变量替换为你自己的
#以下是我执行的
#记得需要安装mysql才能使用mysql
mysql -u tangluuser -h tangludbname-do-user-11162052-0.b.db.ondigitalocean.com -P 25060 -p


#查看该用户拥有的数据库
show databases;

#选择需要操作的数据库
#我这里是用tangludbname
use tangludbname;

#使用source命令导入准备好的sql文件
#我这里已经将 hnet.sql上传到了 /root 目录
source /root/hnet.sql

#查看数据库的表,可以判断是否导入成功
show tables;

#查看表中内容,将 hnet_site 更改为你自己的表
SELECT * FROM hnet_site;

image
image

image

2、登录后台

.env 文件中修改后台管理员登录地址 ADMINDIR,为防止爆破或者mysql注入 建议后台地址设置复杂一点

作者提供的hnet.sql文件中 默认用户名为 hnetadmin 密码为 hnetpassword

网页访问密码可以去后台修改

image

四、安装pm2配置后台运行

第三节中只要ssh断开 程序就会退出,这里通过pm2管理hnet在后台进程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#安装pm2
npm i pm2 -g

#通过软链接添加到环境变量
ln -s /root/nodejs/bin/pm2 /usr/local/bin/

#查看是否可用
pm2 --version

#进入hnet文件夹
cd /root/hideipnetwork-web

#启动hnet
npm install
pm2 start index.mjs --name HNet

#查看hnet是否正常启动运行
lsof -i:56559

#pm2设置开机自启已启动的程序
pm2 save
pm2 startup

image

image

image

五、通过域名访问

HNet官方强制只能通过https访问,http无法访问,且必须本机反代 56559 端口,不能用其他机器反代

我这里用安装了nginx的宝塔演示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
location / {
# proxy_busy_buffers_size 512k;
# proxy_buffers 4 512k;
# proxy_buffer_size 256k;
proxy_pass http://127.0.0.1:56559;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'Upgrade';
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
宝塔/aapanel需要删除/注释掉这些配置,否则打开是白屏
# location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
# {
# expires 30d;
# error_log /dev/null;
# access_log off;
# }

# location ~ .*\.(js|css)?$
# {
# expires 12h;
# error_log /dev/null;
# access_log off;
# }

image

image

image

六、配置代理

v3.1-beta之后的版本socks5配置在 .env 中设置,弃用了 /proxy/socks5.txt

服务器IP可能不适合看流媒体等,这里用 wanhebin 大佬的 clash-for-linux 实现使用机场节点作代理,即linux使用clash-for-linux

你也可以自己搭建socks5或者购买socks5代理,这样就不用安装clash直接编辑HNet文件夹下 proxy/socks5.txt 和 .env 两个文件
无验证的socks5格式为 ‘ip:port’
有用户名密码的socks5格式为 ‘usr:passwd@ip:port’

1
2
3
4
5
6
7
8
9
10
11
#下载clash-for-linux
cd /root
git clone https://github.com/wanhebin/clash-for-linux.git

#进入到项目目录,编辑.env文件,修改变量CLASH_URL的值
cd clash-for-linux
vim .env

#启动程序
sudo bash ./start.sh

image

访问 http://ip:9090/ui 填入 http://ip:9090 和 secret 即可

image

image

在config里面查看socks5端口,我这里的端口为7891

查看socks5端口是否被clash监听,有输出即正常

1
lsof -i:7891

image

image

clash全局模式对HNet并不起作用,因此这里只能为HNet配置socks5代理

修改Hnet /proxy/socks5.txt.env 两个文件

1
2
3
4
5
6
7
8
9
10
11
12
#进入HNet目录
cd /root/hideipnetwork-web

#改Hnet proxy/socks5.txt 和 .env 两个文件
#vim proxy/socks5.txt
127.0.0.1:7891 #这里换为你自己的socks5监听端口

#vim .env
PORT = 56559
HOST = "0.0.0.0"
WEBDIR ="/"
MODO = "socks5"

image

这样就让HNet走了代理,但是本机并未开启系统代理,因此其他程序并不会走代理

如果需要其他程序也走机场代理 可以按照如下进行设置

通过 curl ip.gs -4 查看IP 可以发现还是本机IP

查看http环境变量可以知道 并未配置系统代理

1
env | grep -E 'http_proxy|https_proxy'

需要执行以下两条命令 启用系统代理

1
2
3
source /etc/profile.d/clash.sh

proxy_on

可以通过以下命令查看http环境变量看流量是否走代理端口 可以知道这时其他程序已经使用了代理

1
env | grep -E 'http_proxy|https_proxy'

image

作者GitHub项目中写的很详细,剩余命令可以直接参考官方

9090和7890等默认端口都可以订阅文件中修改,TUN模式自行研究,更新订阅可以通过定时脚本

有任何问题可以留言评论 有需要的话可以后期单独出一节linux使用clash的教程

七、屏蔽某些网站

你可以用iptables的字符串屏蔽功能,但是我不是很懂iptables

作者说后续会添加,这里先空着

八、添加快捷方式

image

九、用例展示

1、Google搜索 Google账号登录

image

2、访问youtube

image

3、访问twitter

登录成功后 可能会让你再次登录,直接点 × 关闭后就好了,因为已经是登录状态了

可以在电脑上操作试试

image

4、访问telegram

官网是这个:https://web.telegram.org 不要点击其他的可能是伪冒网站

image

5、观看netflix等流媒体

image

十、杂谈

HNet暂时无法访问的网站:套了CF5秒盾的网站,chatgpt 等,但是相较其他在线代理工具还是挺不错的,作者后续会继续优化

首页无法调出开发者模式,但其他页面正常,首页也不需要用到F12

一些错误可能是因为浏览器缓存问题,如遇到错误可以尝试在无痕模式下打开

支持docker部署

上一页
2023-11-23 12:59:26
下一页