Это решение предполагает, что в вашей домашней сети есть один маршрутизатор, что, как мне кажется, является распространенным случаем.
Добавить в~/.ssh/config
Match host raspi exec "test $(arp 192.168.1.1 | awk '{print $4}') = ROUTER_MAC_ADDRESS"
Hostname 192.168.2.7
User john
Host raspi
Hostname 12.345.67.89
Port 1234
User john
Ответ заключается в опции local_header_rewrite_clients
. Значение по умолчанию — permit_inet_interfaces
, которое добавляет только домен для локальных сообщений(источник IP-адрес соответствует постфиксу интерфейса, который прослушивается ).
Изменение этого на permit_inet_interfaces,permit_mynetworks
позволяет постфиксу также добавлять myorigin
к чему-либо в mynetworks
(, что в моем случае включает сеть докеров в172.17.0.0/16
).