计算机技术
解决SMTP发信暴露服务器源IP的方法
很久没有写博客了,一是工作比较忙,二是个人也有点懒,最近很多朋友问,SMTP发信会暴露网站服务器的IP(即使用了CDN),该怎么解决这个问题呢?解决方法其实有很多种,我就说说我目前在用的一种方法,就是使用Haproxy中转,大致上和Haproxy安装及端口转发配置这个文章差不多。好了,废话也就不说那么多了,直接开始吧。
第一步:
需要找一台机器做中转,先安装Haproxy,参考Haproxy安装及端口转发配置这篇文章,然后我们来看看配置文件:
- global
- ulimit–n 51200
- defaults
- log global
- mode tcp
- option dontlognull
- timeout connect 1000ms
- timeout client 150000ms
- timeout server 150000ms
- listen status
- bind 0.0.0.0:1080
- mode http
- log global
- stats refresh 30s
- stats uri /admin?stats
- stats realm Private lands
- stats auth admin:password
- stats hide–version
- frontend ssin
- bind *:1000–2000
- default_backend ssout
- backend ssout
- server server1 11.22.33.44 maxconn 204800
我们只需要修改上面代码片段中的两处
- bind *:465
- // 如果是普通模式,那这里就填25,如果是SSL模式,就需要填465
- server server1 11.22.33.44 maxconn 204800
- //这里的IP需要改成SMTP地址的IP,ping一下SMTP域名即可得到地址
修改完成后,执行重启命令,并设为开机启动
- service haproxy restart
- chkconfig haproxy on
第二步:
登录WEB服务器,把smtp地址写进/etc/hosts文件,指向中转服务器的IP。假如我使用的是阿里云的邮件推送,那么它的SMTP服务器域名就是:smtpdm.aliyun.com 然后编辑/etc/hosts文件
- [root@sscloud ~]# vim /etc/hosts
- 127.0.0.1 localhost
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 10.16.156.98 sscloud
- 22.33.44.55 smtpdm.aliyun.com
- //22.33.44.55就是中转服务器的IP
修改完成后,执行service network restart 重启网卡即可。