У меня есть маршрутизатор с общедоступным IP-адресом ADDR
и частным IP-адресом 192.168.1.1
.
У меня также есть общественное достояние ДОМЕН
с записью A, указывающей на ADDR
.
Маршрутизатор имеет встроенный SMB-сервер.
Я могу получить доступ к общим ресурсам SMB изнутри, набрав \\ ADDR \ ShareName
в проводнике Windows.
Однако я хочу иметь доступ к ним через \\ DOMAIN \ ShareName
внутри.
В настоящее время это не работает, потому что Samba не прослушивает общедоступный интерфейс. Он прослушивает только частный интерфейс, и я, очевидно, не хочу изменять это и вводить дыру в безопасности.
Поэтому я перенаправляю порт 445 ADDR
на 192.168.1.1
когда источник находится в локальной подсети:
iptables -t nat -I PREROUTING 1 -s 192.168.0.0/16 -p tcp --dport 445 -j DNAT --to-destination 192.168.1.1:445
, но это по какой-то причине не работает, и я не понимаю почему. (Я плохо знаю iptables
.)
Почему это не работает? И как я могу заставить его работать?
(И да, cat / proc / sys / net / ipv4 / ip_forward
дает 1
.)
Это не то, что вам следует решать с помощью iptables. Просто создайте отдельную внутреннюю зону для вашего домена и разрешите имя хоста преобразовывать в локальный IP-адрес вашей службы.
Кстати, даже если iptables был решением, ваш 192.168.1.1
, вероятно, является частью 192.168.1.0/24
вместо 192.168.0.0/16
.