На этой странице говорится, что вы можете настроить параметр postscript в ddclient.conf
:
postscript=/usr/local/sbin/do-it-after-ddclient-change.sh
В качестве аргумента указывается IP-адрес. Для Asterisk мне нужно, чтобы (измененный) общедоступный IP-адрес был активен немедленно, чтобы Asterisk могла определить его внешний IP-адрес. Я добился этого, отредактировав файл / etc / hosts с помощью сценария публикации. Замените sip.foo.net своим собственным.
#!/bin/sh
#
# Update hosts file with changed IP
#
IP=$1
D=sip.foo.net
DOMAIN=`echo "$D" | sed 's/\./\\\\./g'`
sed -i_bak -e "/[\t]$DOMAIN/d" /etc/hosts
echo "$IP\t$D" >>/etc/hosts
@Rolando Для Asterisk мне нужен был (измененный) публичный IP-адрес немедленно, чтобы Asterisk мог определить свой внешний IP-адрес.
Хороший лаконичный скрипт ddclient-post для обновления IP до /etc/hosts (я не тестировал)
Просто информация, я думаю, Asterisk также нуждается в этой информации в чем-то вроде:
/etc/asterisk/sip_general_custom.conf icesupport=yes stunaddr=stun.l.google.com:19302 srvlookup=yes allowguest=yes ;externip=1.2.3.4 externhost=subdom.dom.tld localnet=192.168.0.0/16
Но также в Debian Sources есть скрипт (ascii-файл) для этого sample-etc_dhcpc_dhcpcd-eth0.exeФайл имеет атрибут 'e', который можно удалить перед редактированием/именованием с помощью chattr -e sample-etc_dhcpc_dhcpcd-eth0.exe
chattr +e dhcpcd-eth0
, по-видимому, часть eth0 должна быть изменена в соответствии с вашим iface , и, конечно же, chmod +x dhcpcd-eth0
, чтобы сделать его незаменимым.