请选择 进入手机版 | 继续访问电脑版

银河数字

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 372|回复: 0

搭建Https的ZeroNet节点反向代理

[复制链接]

404

主题

0

回帖

1458

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
1
积分
1458
威望
0 点
银河币
1054 枚
贡献
0 点
发表于 2025-2-14 14:40:12 | 显示全部楼层 |阅读模式
如果你想:

分享资源需要做种,但不能天天挂机;

想要扩展你的博客节点,让别人更方便地访问到你和你的博客、你喜欢的博客;

有空闲的Vps(翻墙用的并不会很忙,而且流量空余,更适合了,对吧),并且觉得ZeroNet还不错,愿意帮助拓展;

想要方便自己跨设备、随时访问ZeroNet;

那么这篇教程还算适合你,不妨来看一下。

> 注:本文并非我的研究,仅仅是总结前人的成果,在使用过程中遇到了些问题,花费了一晚上的时间查错纠正,直到正常运行后的记录。

详细步骤参考[1],但由于ZeroNet更新,导致配置文件过时,我在配置时一直报错:

Connection with uiServer websocket lost.... reconnecting
经过一晚上时间的查错,终于找到需要做调整的部分,因此我在这里将所有步骤的命令列出。

搭建环境:Vultr $2.5/month, Ubuntu 16.04 x64

可选:为了更快连接Vps,可以升级4.10.0内核并开启BBR;

为了链接安全性,请搭建HTTPS服务器,注意,搭建HTTPS前,需要有一个域名:DOMAIN.MY。下文中所有带有DOMAIN.MY的命令和配置请手动替换成你的域名。

Updated 17/08/30: 修改几处格式,完善命令。

Updated 17/12/01: 修正crontab处指令

a. 安装Nginx

sudo apt update

sudo apt-get install -y nginx

sudo service nginx stop
b. 安装LetsEncrypt并获取证书

sudo apt-get install letsencrypt

letsencrypt certonly --standalone -d DOMAIN.MY

sudo crontab -e
此处需要手动将以下内容添加到当前文件末尾,意思是每月1日00:00更新HTTPS证书。保存并退出:

0 0 1 * * service nginx stop
1 0 1 * * letsencrypt renew
2 0 1 * * service nginx start
然后继续执行:

sudo service cron restart

openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
此处需要较长时间(大约五到十分钟),喝杯茶先。

c. 配置ZeroNet

sudo apt-get install -y python-dev
sudo apt-get install -y python-setuptools
sudo apt-get install -y python-pip
sudo pip install --upgrade pip
sudo apt-get install -y msgpack-python
sudo pip install msgpack-python --upgrade
sudo apt-get install -y python-gevent
sudo pip install gevent --upgrade

cd ~
wget https://github.com/HelloZeroNet/ZeroNet/archive/master.tar.gz
tar -xzvf master.tar.gz
d. 配置Nginx

sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default_bak

sudo nano /etc/nginx/sites-available/default
将以下内容(记得替换掉所有DOMAIN.MY,总共五处)粘贴后保存退出:

server {
listen 443 ssl;
server_name DOMAIN.MY;
ssl_certificate /etc/letsencrypt/live/DOMAIN.MY/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/DOMAIN.MY/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/DOMAIN.MY/chain.pem;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;
location / {
proxy_pass http://127.0.0.1:43110;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_read_timeout 1h;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log /var/log/nginx_success;
error_log /var/log/nginx_error;
}
server {
listen 80;
server_name DOMAIN.MY;
return 301 https://$host$request_uri;  
}
最后重新启动nginx:

sudo service nginx reload
e. 启动与关闭ZeroNet

如果想要和本地的ZeroNet用户信息保持一致,需要将本地data/users.json上传至~/ZeroNet-master/data/users.json,如果有相同名称的文件覆盖即可。

执行以下指令,首先启用UiPassword防止非本人的访问,其次设置自定义密码(将CUSTOM_PASSWORD替换为你随意设计一个密码)。

cd ~

mv ZeroNet-master/plugins/disabled-UiPassword ZeroNet-master/plugins/UiPassword

nohup python ZeroNet-master/zeronet.py --ui_ip 0.0.0.0 --ui_password CUSTOM_PASSWORD >/dev/null 2>&1 & echo $! > zerorun.pid
这样即可后台启动ZeroNet节点服务器。

如果需要关闭,使用kill -9 'cat zerorun.pid'杀掉即可。

也可以建立两个脚本:nano ~/zerorun

将下面这行粘贴进去,再Ctrl+O保存,Ctrl+X退出:

nohup python ZeroNet-master/zeronet.py --ui_ip 0.0.0.0 --ui_password CUSTOM_PASSWORD >/dev/null 2>&1 & echo $! > zerorun.pid
然后:nano ~/zerostop

将下面这行粘贴进去,再Ctrl+O保存,Ctrl+X退出:

kill -9 `cat zerorun.pid`
最后给这两个脚本可执行权限:

chmod +x zerorun
chmod +x zerostop
启动时,执行~/zerorun,关闭时,执行~/zerostop。

然后就可以直接访问你的域名了,会得到以下页面:

登录页面

输入密码,选择"Keep me logged in"。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|银河数字

Web Analytics

GMT+8, 2025-6-17 06:31 , Processed in 0.056938 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表