У меня есть сервер, на котором работает Wireguard (поэтому требуется маскарад
) и контейнер, работающий на порту 2525.
у меня есть следующее iptables
правила:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j DNAT --to-destination 172.18.0.1:2525
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
При подключении к сервер: 2525
напрямую, контейнер Docker может видеть мой реальный IP-адрес (1.2.3.4
). При подключении к порту сервер:25
, контейнер Docker видит локальный IP-адрес, предоставленный докер сеть
:
07 апр., 12:45:46 mx postfix/smtpd[87]: потеря соединения после CONNECT от unknown[172.18.0.1]
07 апр., 12:45:46 mx postfix/smtpd[87]: отключиться от неизвестных[172.18.0.1] команд=0/0
Как убедиться, что контейнер Docker правильно видит общедоступный IP-адрес при подключении к порту 25 (а не только при подключении к порту 2525).
Спасибо
# iptables -L -n -v -t физ
Цепочка PREROUTING (политика ACCEPT 0 пакетов, 0 байт)
pkts bytes target prot opt in out source target
52300 3131K DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 to:172.18.0.1:2525
150K 8524K DOCKER all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE соответствует dst-type LOCAL
Цепочка INPUT (политика ACCEPT 0 пакетов, 0 байтов)
pkts bytes target prot opt in out source target
Цепочка OUTPUT (политика ACCEPT 0 пакетов, 0 байт)
pkts bytes target prot opt in out source target
2 120 DOCKER all -- * * 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE соответствует dst-типу LOCAL
Цепочка POSTROUTING (политика ACCEPT 0 пакетов, 0 байт)
pkts bytes target prot opt in out source target
3385 256K МАСКАРАД все -- * !docker0 172.17.0.0/16 0.0.0.0/0
1733K 104M МАСКАРАД все -- * !br-b147ffdbc9f3 172.18.0.0/16 0.0.0.0/0
0 0 МАСКАРАД tcp -- * * 172.17.0.2 172.17.0.2 tcp dpt:53
0 0 MASQUERADE udp -- * * 172.17.0.2 172.17.0.2 udp dpt:53
0 0 МАСКАРАД tcp -- * * 172.18.0.2 172.18.0.2 tcp dpt:25
Сеть DOCKER (2 ссылки)
pkts bytes target prot opt in out source target
12 1419 ВОЗВРАТ все -- docker0 * 0.0.0.0/0 0.0.0.0/0
0 0 ВОЗВРАТИТЬ все -- br-b147ffdbc9f3 * 0.0.0.0/0 0.0.0.0/0
56 3192 DNAT tcp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5354 to:172.17.0.2:53
0 0 DNAT udp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:5354 to:172.17.0.2:53
107 6020 DNAT TCP -- !br-b147ffdbc9f3 * 0.0.0.0/0 0.0.0.0/0 TCP dpt:2525 to:172.18.0.2:25
# ip адрес
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
инет 127.0.0.1/8 область хоста lo
valid_lft навсегда
inet6 :: 1/128 узел области видимости
valid_lft навсегда
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast состояние UP группа по умолчанию qlen 1000
ссылка/эфир 32:d0:56:15:0a:64 brd ff:ff:ff:ff:ff:ff
альтернативное имя enp0s3
альтернативное имя ens3
инет 159.223.80.86/20 brd 159.223.95.255 глобальный охват eth0
valid_lft навсегда
inet 10.15.0.19/16 brd 10.15.255.255 глобальная область eth0:1
valid_lft навсегда
inet6 2400:6180:0:d0::f57:6001/64 область глобальная
valid_lft навсегда
ссылка на область inet6 fe80::30d0:56ff:fe15:a64/64
valid_lft навсегда
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast состояние UP группа по умолчанию qlen 1000
ссылка/эфир 32:dc:4a:e4:27:be brd ff:ff:ff:ff:ff:ff
альтернативное имя enp0s4
альтернативное имя ens4
инет 10.130.244.15/16 brd 10.130.255.255 глобальный охват eth1
valid_lft навсегда
ссылка на область inet6 fe80::30dc:4aff:fee4:27be/64
valid_lft навсегда
4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
ссылка/нет
инет 10.200.200.52/24 глобальная область WG0
valid_lft навсегда
5: wg1: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
ссылка/нет
инет 10.222.111.1/24 область глобальная WG1
valid_lft навсегда
6: br-b147ffdbc9f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
ссылка/эфир 02:42:46:21:70:c0 brd ff:ff:ff:ff:ff:ff
инет 172.18.0.1/16 brd 172.18.255.255 глобальная область действия br-b147ffdbc9f3
valid_lft навсегда
ссылка на область inet6 fe80::42:46ff:fe21:70c0/64
valid_lft навсегда
7: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
ссылка/эфир 02:42:66:22:41:91 брд ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 глобальная область действия docker0
valid_lft навсегда
ссылка на область inet6 fe80::42:66ff:fe22:4191/64
valid_lft навсегда
9: veth31eff9d@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
ссылка/эфир e6:fb:80:5d:c7:a3 brd ff:ff:ff:ff:ff:ff ссылка-netnsid 0
ссылка на область inet6 fe80::e4fb:80ff:fe5d:c7a3/64
valid_lft навсегда
19: veth01269f5@if18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b147ffdbc9f3 состояние UP группа по умолчанию
ссылка/эфир 36:f4:e7:43:5f:da brd ff:ff:ff:ff:ff:ff ссылка-netnsid 2
ссылка на область inet6 fe80::34f4:e7ff:fe43:5fda/64
valid_lft навсегда