配置VPS服务器
登录VPS服务器:
ssh [email protected]
更新系统和软件:
apt-get -o Acquire::ForceIPv4=true update && apt-get -y upgrade
更新过程如果出现下图中的提示,选第二个选项后按Tab建切换到Ok,回车继续。
[图片上传失败...(image-8039e0-1530373858135)]
修改主机名:
hostnamectl set-hostname znode2
向hosts文件中添加一个域名映射:
vi /etc/hosts
45.79.66.111 znode2 znode2.bidb.io
[图片上传失败...(image-bc2fea-1530373858135)]
znode2 是你的主机名,znode2.bidb.io改成你的二级域名。
设定时区
timedatectl set-timezone 'Asia/Shanghai'
添加管理员用户:
新建一个拥有管理权限的用户
adduser znuser && adduser znuser sudo
根据提示,重复输入两次新用户的密码。
[图片上传失败...(image-1c07dc-1530373858135)]
退出root账户,今后只使用新用户znuser登录。
exit
使用新用户名重新登录服务器。
ssh [email protected]
为了服务器更加安全,需要禁用root登录。
sudo vim /etc/ssh/sshd_config
移动到第28行,修改配置文件,将PermitRootLogin设置为no,然后保存退出。
修改之后如下所示:
[图片上传失败...(image-3aa4a8-1530373858135)]
重启sshd服务使修改生效:
sudo systemctl restart sshd.service
安装一些常用工具:
sudo apt-get -o Acquire::ForceIPv4=true update
sudo apt -y install git screen vim nmap ncdu busybox inxi links unzip python
配置防火墙
为了服务器更加安全,必须配置防火墙。
查看防火墙是否正常运行:
sudo ufw status
[图片上传失败...(image-d6df6e-1530373858135)]
配置防火墙:
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw allow ssh/tcp
sudo ufw limit ssh/tcp
sudo ufw allow http/tcp
sudo ufw allow https/tcp
sudo ufw allow 9033/tcp
sudo ufw logging on
[图片上传失败...(image-fb3f3f-1530373858135)]
开启防火墙:
sudo ufw enable
[图片上传失败...(image-8c856c-1530373858135)]
配置完成后,检查一次防火墙状态。
sudo apt-get install ufw
sudo ufw status
[图片上传失败...(image-350719-1530373858135)]
ssh安全防护:
使用Fail2Ban防止黑客非法登录你的服务器。(fail2ban会限制ssh重试登录次数,10次密码错误后,请求登录的IP地址会被加入黑名单,10分钟之后才可以再次登录。)
sudo apt -y install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
可以通过如下命令,查看非法登录的拦截记录:
sudo tail -f /var/log/fail2ban.log
增大虚拟内存。
我们租用的VPS内存比较少,通过增大SWAP交换空间(虚拟内存),可以避免一些内存不足的情况。
查看当前的内存使用信息:
free -h
[图片上传失败...(image-ade11b-1530373858135)]
配置4G大小的交换空间:
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
再次查看内存:
free -h
[图片上传失败...(image-fc0024-1530373858135)]
优化交换空间的参数:
sudo vi /etc/sysctl.conf
将如下配置添加到文件末尾:
vm.swappiness=10
[图片上传失败...(image-19b513-1530373858135)]
配置重启后自动挂载交换空间:
sudo vi /etc/fstab
将如下配置添加到文件末尾:
/swapfile none swap sw 0 0
[图片上传失败...(image-71ed6a-1530373858135)]
安装zencash
为了避免一些错误,我们先要禁用ipv6:
sudo vi /etc/sysctl.conf
在文件末尾添加如下内容:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
[图片上传失败...(image-4ce3de-1530373858135)]
执行如下命令使配置生效
sudo sysctl -p
安装常用工具:
sudo apt -y install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python zlib1g-dev wget bsdmainutils automake
下载zencash代码:
mkdir zencash
cd zencash
git clone https://github.com/ZencashOfficial/zen.git
下载zkSNARK 数据包:
cd zen
./zcutil/fetch-params.sh
下载编译好的zen客户端
cd ~
wget https://github.com/ZencashOfficial/zen/releases/download/v2.0.14/zen-2.0.14-amd64.deb
开始安装
sudo dpkg -i zen-2.0.14-amd64.deb
sudo apt-get -f -y install
运行zend:
zend
第一次运行zend会生成一个配置文件 ~/.zen/zen.conf
编辑zen.conf
vim ~/.zen/zen.conf
把如下内容粘贴进文件,将 rpcpassword 换成你自己的密码。
addnode=zen.suprnova.cc
addnode=zpool.blockoperations.com
addnode=zen.bitfire.one
addnode=zenmine.pro
addnode=minez.zone
addnode=zennodes.network
rpcuser=znodeuser
rpcpassword=63Qa5VybvCTPppBpVmn8HpjrKgxqaaEAqfYVrHjk9WtBG738
rpcport=18231
rpcallowip=127.0.0.1
server=1
daemon=1
listen=1
txindex=1
logtimestamps=1
可以使用如下命令随机密码生成:
sudo tr -dc A-Za-z0-9 < /dev/urandom | head -c 48 | xargs
[图片上传失败...(image-843deb-1530373858135)]
配置开机自动运行:
crontab -e
第一次运行会提示选择编辑器.
[图片上传失败...(image-76f418-1530373858135)]
把如下内容添加到文件末尾:
@reboot /usr/bin/zend
[图片上传失败...(image-717288-1530373858135)]
再次运行zend:
zend
如果你已经开启了,先关闭再重新执行:
cd ~
zen-cli stop
zend
查看信息:
第一次运行会同步一段时间,当两次查看blocks数值没有变化,说明区块数据同步完成了。
zen-cli getinfo
[图片上传失败...(image-a47078-1530373858135)]
生成SSL证书
sudo ufw status numbered
检查防火墙,确保80, 443端口开启:
[图片上传失败...(image-5be033-1530373858135)]
检查80和443端口是否被占用:
netstat -tan
执行如下命令,下载安装acme.sh脚本。
cd
sudo apt install socat
mkdir acme
cd acme
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install
[图片上传失败...(image-d0706e-1530373858135)]
生成证书:
cd ~
sudo .acme.sh/acme.sh --issue --standalone -d znode2.bidb.io
[图片上传失败...(image-9813ea-1530373858135)]
[图片上传失败...(image-5481ef-1530373858135)]
添加定时任务,自动更新证书:
sudo crontab -e
在文件末尾添加如下内容:
6 0 * * * "/home/znuser/.acme.sh"/acme.sh --cron --home "/home/znuser/.acme.sh" > /dev/null
[图片上传失败...(image-f865d7-1530373858135)]
将两处 znuser 替换成你自己的用户名。
配置证书
在 /usr/share/ca-certificates/ 目录下创建letsencrypt目录来保存CA证书。
sudo mkdir /usr/share/ca-certificates/letsencrypt/
sudo cp /home/znuser/.acme.sh/znode2.bidb.io/ca.cer /usr/share/ca-certificates/letsencrypt/ca.crt
sudo dpkg-reconfigure ca-certificates
出现如下窗口,选yes(用键盘方向键选择),按Tab键切换到Ok, 回车进入下一步。
[图片上传失败...(image-63d9c3-1530373858135)]
[图片上传失败...(image-38e3ef-1530373858135)]
按下空格键选中第一项[*],然后Tab到Ok,回车。
[图片上传失败...(image-3481b4-1530373858135)]
zend开启TLS支持
修改zen.conf配置,添加证书路径开启TLS支持。
vim ~/.zen/zen.conf
将如下内容添加到文件末尾:
tlscertpath=/home/znuser/.acme.sh/znode2.bidb.io/znode2.bidb.io.cer
tlskeypath=/home/znuser/.acme.sh/znode2.bidb.io/znode2.bidb.io.key
[图片上传失败...(image-c51c76-1530373858135)]
将znuser替换成你的用户名,后面的文件夹和文件名都要换成你自己的。
停止安全节点,重新启动:
zen-cli stop
zend
[图片上传失败...(image-98a34d-1530373858135)]
测试TLS是否正常:
正式网络使用9033端口
openssl s_client -connect znode2.bidb.io:9033
正常状态如下图:
[图片上传失败...(image-230201-1530373858135)]
安装Node.js:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
安装secnodetracker :
cd ~/zencash
git clone https://github.com/ZencashOfficial/nodetracker.git
安装node modules:
cd nodetracker
npm install
运行安全节点需要至少43个ZEN,其中42放在一个T地址钱包,1个ZEN放在安全节点的Z地址中。
新建一个Z地址:
zen-cli z_getnewaddress
[图片上传失败...(image-1e9e18-1530373858135)]
查看钱包余额:
zen-cli z_gettotalbalance
使用Swing Wallet 向这个z地址转入至少1个ZEN(拆分成4-5个小订单转过去推荐每次转0.2个)
最好是1.1个,每次挑战应答都需要耗费0.0001 交易费。
[图片上传失败...(image-51c482-1530373858135)]
在Windows下面转账ZEN会更容易一些
转账确认需要3分钟左右,在服务器上用如下命令来查询余额(private 是Z地址的余额):
zen-cli z_gettotalbalance
[图片上传失败...(image-134909-1530373858135)]
等ZEN到账后再进行下一步。
配置secnodetracker:
cd ~/zencash/nodetracker
node setup.js
[图片上传失败...(image-a08ae8-1530373858135)]
- Stake transparent address: 填写余额大于42个ZEN的T地址
- Alert email address: 用来接收信息的邮箱地址。
- Full hostname (FQDN) 填写二级域名
- Region code: 区域代码, 北美(na)欧洲(eu)东南亚(sea) 填写服务器所在地的对应代码。如果也是Fremont 机房,填写na 。
运行secnodetracker:
node app.js
[图片上传失败...(image-64ccd6-1530373858135)]
显示内容可能略有不同,不过只要显示Authenticated 就说明运行正常了.
[图片上传失败...(image-df57e8-1530373858135)]
收到一次挑战(完成挑战后会有相应奖励)。
ctrl+c 结束这次执行,接下来配置pm2守护进程。
设置开机自动运行:
安装pm2:
sudo npm install pm2 -g
配置开机自动运行:
pm2 start app.js --watch
pm2 save
pm2 startup
[图片上传失败...(image-14754c-1530373858135)]
执行提示中的内容。
[图片上传失败...(image-a43890-1530373858135)]
查看secnodetracker的运行状态:
pm2 list
[图片上传失败...(image-108bb9-1530373858135)]
查看你的安全节点状态:
通过这个网站可以查询安全节点运行状态
安全节点划分为3个区域,根据填写的Region code访问对应的查询页面。
北美: https://securenodes.na.zensystem.io/
欧洲: https://securenodes.eu.zensystem.io/
东南亚: https://securenodes.sea.zensystem.io/
作者:dashuo
链接:https://www.jianshu.com/p/265850888fa3
來源:
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。