iptables-router 后面的 smtp 请求不起作用

iptables-router 后面的 smtp 请求不起作用

我在 Ubuntu 16.04 Server 版本上设置了一个带 ip-forwarding 的路由器。我在 /etc/sysctl.conf 中启用了 ip-forwarding。我设置了

net.ipv4.ip_forward=1

并执行

sysctl -p /etc/sysctl.conf

我使用了以下 iptables 命令:

iptables -A FORWARD -i ${PRV_IF} -s ${PRV_NET} -o ${PUB_IF} -j ACCEPT
iptables -A FORWARD -i ${PUB_IF} -d ${PRV_NET} -o ${PRV_IF} -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -o ${PUB_IF} -j MASQUERADE

我在 ${PRV_NET} 中的路由器后面有一台不同的本地 Linux 机器,我想从该机器访问互联网上的服务器端口,如 22、25、80 等,例如在 myserver.com 上

例如,从我的本地机器访问 myserver.com 上的端口 22 和 80 是可行的

telnet myserver.com 22 ... works
telnet myserver.com 80 ... works

但是我无法从本地机器访问 myserver.com 上的邮件服务器:

telnet myserver.com 25 ... hangs up

最后一个命令挂断并且永不返回。

如何从本地网络访问邮件服务器?iptables 命令中是否存在任何错误?

相关内容