У меня есть рабочий стол человечности 14,04 работ бродячего VM (virtualbox).
Я пробую к порту передачи 25 для портирования 2525, и я выполнил следующие команды:
sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
Команда:
cat /proc/sys/net/ipv4/ip_forward
возвраты 1.
Я могу открыть соединение на порте 2525:
vagrant@vagrant:~$ telnet localhost 2525
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 alfresco.com ESMTP SubEthaSMTP 3.1.6
но telnet на порте 25 не работает:
vagrant@vagrant:~$ telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
Я пытался также соединиться с локальным IP машины с теми же результатами.
telnet 10.0.2.15 2525
в порядке, но
telnet 10.0.2.15 25
возвращает то же (соединение, которому отказывают).
Команда:
iptables -t nat -L
возвраты:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere tcp dpt:smtp redir ports 2525
REDIRECT tcp -- anywhere anywhere tcp dpt:2526 redir ports 2525
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere
Обновление
Это было бы достаточно для меня, если кто-то может предложить, по крайней мере, как диагностировать этот вид проблем.
Вы могли использовать socat:
socat TCP-LISTEN:25,su=nobody,fork,reuseaddr TCP-CONNECT:127.0.0.1:2525
Это говорит socat слушать на порте TCP 25 и подключать его к локальным 2525. Это не работает как никто пользователь для лучшей безопасности. Опция ветвления означает, что пересмотрит входящий порт, так, чтобы она не блокировалась.
Это основано на следующем сообщении: https://superuser.com/a/536295/621970