隧道从本地到另一个端口的smtp连接

好吧,现在很多ISP在传出连接上阻塞端口25,所以我在端口1025上设置了一个smtp服务器。现在这个工作很好,configuration好的客户端正确地发送邮件。 但对于服务器上的大部分代码,smtp服务器应该是25,现在而不是重新configuration所有的代码来使用新的端口,我正在考虑build立一个隧道或强迫所有从本地主机到25去本地主机上1025。

我试了这个,但没有奏效

iptables -t nat -A PREROUTING -p tcp -i lo --dport 25 -j DNAT --to 127.0.0.1:1025 

我能做些什么来完成呢?

谢谢

要从本地主机转发,请使用xinetd:

 service smtp { socket_type = stream wait = no user = root redirect = 127.0.0.1 1025 bind = 127.0.0.1 } 

你做错了,这个概念几乎是相反的,试试这个:

 iptables -t nat -I PREROUTING -p tcp --dport 1025 -j REDIRECT --to-ports 25 

您应该使用REDIRECT而不是DNAT作为本地转发的端口。 就像是:

iptables -t nat -A PREROUTING -i lo -p tcp --dport 25 -j REDIRECT --to-ports 1025

 iptables -t nat -I OUTPUT 1 -o lo -d 127.0.0.1 -p tcp --dport 25 -j REDIRECT --to-ports 1025