Установил samba на своем ноутбуке с ubuntu 8.10. Настроил smb.conf:
interfaces = 127.0.0.0/8 eth0 bind interfaces only = yes
Перезапустил, вроде все работает. Потом заметил, что после загрузки samba не биндится на eth0:
max@max-laptop:~$ sudo netstat -pnlt | grep smbd tcp 0 0 127.0.0.1:139 0.0.0.0:* LISTEN 5999/smbd tcp 0 0 127.0.0.1:445 0.0.0.0:* LISTEN 5999/smbd
Беглый просмотр порядка выполнения скриптов при загрузке показал, что network-manager запускается позже samba. Естественно, samba не может слушать интерфейс, который еще не поднялся.
Поразмыслив, создал два скрипта /etc/network/if-up.d/up-eth0-smbd-restart и /etc/network/if-down.d/down-eth0-smbd-restart. Эти скрипты будут выполняться при подключении и отключении сетевого интерфейса eth0. Скрипты одинаковые, вот листинг:
Теперь все работает так, как нужно:
max@max-laptop:~$ sudo netstat -pnlt | grep smbd tcp 0 0 127.0.0.1:139 0.0.0.0:* LISTEN 7081/smbd tcp 0 0 10.1.35.30:139 0.0.0.0:* LISTEN 7081/smbd tcp 0 0 127.0.0.1:445 0.0.0.0:* LISTEN 7081/smbd tcp 0 0 10.1.35.30:445 0.0.0.0:* LISTEN 7081/smbd
Если же описать сетевой интерфейс в /etc/network/interfaces, никаких манипуляций со скриптами не требуется.

Комментарии
Отправить комментарий