less than 1 minute read

如果企业防火墙策略ban掉了机器到远程465端口的出站连接,可以使用以下方法进行中转。

前提:

  • 有一台可以连接到SMTP服务器的机器(中转机)
  • 中转机配置好了Docker

步骤:

  • 中转机在任意地方创建文件夹http.conf.d以及stream.conf.d。在stream.conf.d文件夹内,创建一个myotherservice.conf文件。
  • myotherservice.conf中粘贴进如下内容(把<smtp_server_addr>换成实际想要访问的smtp服务器的域名,根据需要改动目标端口号465):
    server {
      listen 60465;
      proxy_pass <smtp_server_addr>:465;
    }
    
  • Docker执行:docker run -d -p 60465:60465 -v <path_of_http.conf.d>:/opt/nginx/http.conf.d -v <path_of_stream.conf.d>:/opt/nginx/stream.conf.d --name nginx tekn0ir/nginx-stream
    • 换成你第一步创建的两个文件夹的路径
    • 根据需要改动60465端口(冒号前面的端口)为你想要中转机提供中转服务的端口
  • 中转机如果有防火墙,打开60465端口
  • 在需要访问smtp的机器上,在hosts中添加一行<中转机ip地址> <smtp服务器域名>

为什么不在需要访问smtp的机器上直接修改服务器地址呢?因为主流的smtp服务都要求ssl认证,单纯把域名更换为中转机的ip地址往往会导致连接失败。通过改hosts的方式,可以有效解决ssl错误问题。

Tags:

Updated:

Leave a comment