Спасибо amauk на Reddit за этот ответ. Подумал, что я также опубликую это здесь на тот случай, если кто-нибудь столкнется с этим вопросом.
Во-первых, вам нужно включить IP-пересылку.
По умолчанию это отключено по соображениям безопасности.
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
Затем выполните следующее, чтобы зафиксировать изменения и перезагрузить конфигурацию sysctl.
sysctl -p
Затем вам нужно написать правила IPTables для пересылки соединений.
TCP
iptables -t nat -A PREROUTING -i ad1 -p tcp -m tcp --dport 1234 -j DNAT --to-destination 192.168.1.5:1238
UDP
iptables -t nat -A PREROUTING -i ad1 -p udp --dport 1234 -j DNAT --to-destination 192.168.1.5:1238
Пакеты, поступающие с интерфейса ad1 -i ad1
соответствующие критериям (TCP/UDP + номер порта), NAT к месту назначения: порт
Вам также нужно как-то сохранить правила IPTables и восстановить их при загрузке.
Как именно это сделать, зависит от дистрибутива.
редактировать
Для удаления правил используйте -D
(удалить) вместо -A
(добавить)
Например.
Чтобы удалить правило пересылки TCP
iptables -t nat -D PREROUTING -i ad1 -p tcp -m tcp --dport 1234 -j DNAT --to-destination 192.168.1.5:1238