Назад | Перейти на главную страницу

Перенаправить SMB с частного интерфейса на общедоступный?

У меня роутер с публичным IP-адресом ADDR и частный IP-адрес 192.168.1.1.
У меня тоже есть общественное достояние DOMAIN с записью 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.