最近跟一个叫可丢弃邮箱的货较了几天劲,填了很多很多坑,这里记录其中一条能走通的路,供后来者参考。
准备工作
源码准备
https://github.com/denghongcai/forsaken-mail
vps准备
要能开通25端口的才行,买之前问清楚,大部分要发工单,备案后开通。实测搬瓦工的vps25端口是默认打开的 开启防火墙及各个端口
systemctl start firewalld
firewall-cmd --zone=public --add-port=27161/tcp --permanent
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --zone=public --add-port=25/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=433/tcp --permanent
firewall-cmd --reload
systemctl enable firewalld
域名准备
我是用一级域名xx.com做的,需要做好两个A记录,一个MX记录
xx.com->A->IP(这个应该能省略的吧……)
mx.xx.com->A->IP
xx.com->MX->mx.xx.com
docker安装forsaken-mail
安装wget
yum install wget -y
安装docker
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker.service
安装forsaken-mail
docker run --name forsaken-mail -d -p 25:25 -p 3000:3000 denghongcai/forsaken-mail
一定会提示25端口占用,解决:
netstat -tunlp|grep 25
kill -9 {pid名称}
重新启动forsaken-mail
docker start forsaken-mail
至此docker安装forsaken-mail结束,通过http://mx.xx.com:3000可以访问了。 但是还不满足,想去掉端口号并加上ssl访问。 需要caddy做反向代理。
这里走的弯路最多,占了整个工作量的50%,网上所有能搜索的教程都试过了,均失败,/etc/init.d/caddy start显示已启动,1秒后/etc/init.d/caddy status显示未启动。
安装docker版caddy
直装走不通,在大神的指导下,通过安装docker版本caddy解决了问题
docker run -d -p 80:80 -p 443:443 caddy caddy reverse-proxy --to http://mx.tenkn.com:3000 --from https://tenkn.com
https://xx.com访问正常,幸福来得十分突然。
虽然caddy直装没走通,这里还是记录一下安装方法
caddy一键安装包的从安装到卸载
安装caddy一键安装包
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
配置规则
echo "tenkn.com {
gzip
tls XXXXXXX@qq.com
proxy / mx.tenkn.com:3000
}" > /usr/local/caddy/Caddyfile
启动服务
/etc/init.d/caddy start
查询caddy工作状态
/etc/init.d/caddy status
一下两种写法均可
service caddy start | stop | restart | status
/etc/init.d/caddy start | stop | restart | status
启动不成功后一些失败的解决办法
yum update
/usr/local/caddy/caddy -conf /usr/local/caddy/Caddyfile -agree
rm -rf /etc/ca-certificates/trust-source/DST_Root_CA_X3.pem
update-ca-trust
yum install ca-certificates -y
update-ca-trust force-enable
卸载caddy
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && bash caddy_install.sh uninstall
另外,我还尝试了npm安装forsaken-mail的方法
安装wget
yum -y install wget
切换到
cd /usr/local/
下载指定版本nodejs(去node中文网翻淘宝镜像)
wget https://npm.taobao.org/mirrors/node/v14.18.1/node-v14.18.1-linux-x64.tar.gz
解压
tar -zxvf 用于解压 .tar.gz 后缀结尾
tar -xvf 用于解压 .tar后缀结尾
tar -zxvf node-v14.18.1-linux-x64.tar.gz
重命名
mv node-v14.18.1-linux-x64 node.js
配置环境变量
vi /etc/profile 输入i
export NODE_HOME=/usr/local/node.js
export PATH=$NODE_HOME/bin:$PATH
# esc :wq
# 更新环境变量
source /etc/profile
npm安装成功
node -v
npm -v
npm安装Forsaken Mail
下载项目源码
git clone https://github.com/malaohu/forsaken-mail.git
cd forsaken-mail
安装项目需要的库
npm install
安装pm2工具
npm install -g pm2
禁用postfix和sendmail
killall sendmail
/etc/init.d/postfix stop
chkconfig --level 2345 postfix off
chkconfig --level 2345 sendmail off
启动项目
pm2 start bin/www
设置开机启动
pm2 startup
pm2 save
npm的报错挺烦,也可能是初次尝试,域名解析还有问题的时候没注意观察,最后放弃 按理说,打开http//mx.xx.com:3000就可以看到Forsaken Mail邮箱界面了……
宝塔也没放过
安装宝塔后,安装docker面板,添加镜像:denghongcai/forsaken-mail 并推送 添加docker后,添加25和3000端口,其他默认 还需要解决一下25端口占用的问题,不然保存不了,一直弹500的窗…… 宝塔docker是可以的 宝塔的反代也是可以的,就是太慢了
nginx也试过的
参考教程
配置文件
cd /etc/nginx/conf.d/
vi tenkn.com.conf
代理代码
server {
listen 80;
server_name http://xx.com;
location / {
proxy_pass http://mx.tenkn.com:3000/;
}
}
需要vps开放80端口,反代能成功,但是页面报错,临时邮箱地址无法渲染。
太难了……
|