Посмотрите ниже примера:
n=0
while :
do
nc -vzw1 localhost 3859
[[ $? = 0 ]] && break || ((n++))
(( n >= 5 )) && break
done
Я пытаюсь соединить порт 3389 на localhost, он повторит до сбоя 5 раз, если успех затем он повредит цикл.
$?
это, существуют состояние команды, если это обнуляет команду средств, успешно выполненную, если кроме нулевых средств управляют fai
Кажется немного сложным, может быть кто-то, делают это лучше, чем это.
protocol=dyndns2
use=web, if=eth0
server=dynupdate.no-ip.com
login=username@email.com
password='mysuperpassword'
myhost.no-ip.org
У вас есть "if=ppp0". Вы используете "dial" соединение? У меня "if=eth0", потому что dsl ppp находится на модеме/роутере.
Your ping test is on the same network, or you try on a different (outside) computer? Could be a local DNS issue.
Показанный вами график показывает, что ddclient
опросил checkip.dyndns.com
на предмет IP-адреса вашей машины, увидел, что IP-адрес не изменился, и, следовательно, решил не связываться с dynupdate.no-ip.com
, чтобы изменить IP . Если бы он связался с dynupdate.no-ip.com
, вы бы увидели в трассировке такую строку
CONNECT: dynupdate.no-ip.com
, за которой следовала бы связка SENDING
и ] ПОЛУЧИТЬ
строк.
Я обнаружил, что если вы хотите заставить ddclient
выполнить всю операцию, вам следует остановить любой запущенный в данный момент демон с помощью sudo service ddclient stop
и удалить его файл кэша с помощью sudo rm /var/cache/ddclient/ddclient.cache
. Тогда при любом последующем запуске обязательно будут выполнены все проверки.
Кроме того, у вас неверный файл конфигурации. У вас не должно быть / nic / update
в настройке сервера
, поскольку это часть настройки протокола
. (Использование dyndns2
в качестве протокола подразумевает добавление / nic / update
.) Для справки, моя текущая конфигурация:
use=cmd
cmd='dig +short myip.opendns.com @resolver1.opendns.com'
protocol=dyndns2
ssl=yes
server=dynupdate.no-ip.com
login=<YOUR LOGIN>
password=<YOUR PASSWORD>
<YOUR HOST>
Я использую команду dig
чтобы получить мой общедоступный IP-адрес, а не связываться с сервером через HTTP.
protocol=noip
Я использую noip, но с протоколом noip, как это было внутри флага --help, посмотрите эту справку, чтобы получить больше информации.
Единственное, что не так с вашей конфигурацией, это адрес обновления сервера. Должно быть:
# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
use=web
web=checkip.dyndns.com
web-skip='Current IP Address: '
protocol=dyndns2
server=dynupdate.no-ip.com
login=myusername
password='mypass'
myhost.noip.me
Вы можете протестировать конфигурацию, выполнив:
sudo ddclient -verbose -foreground
И вы должны увидеть, как часть маршрутизатора (извлекает IP-адреса с помощью «веб-провайдера» ), затем выполняется аутентификация без -IP и IP-адрес обновляется:
ONNECT: checkip.dyndns.com
CONNECTED: using HTTP
SENDING: GET / HTTP/1.0
SENDING: Host: checkip.dyndns.com
SENDING: User-Agent: ddclient/3.8.3
SENDING: Connection: close
SENDING:
RECEIVE: HTTP/1.1 200 OK
RECEIVE: Content-Type: text/html
RECEIVE: Server: DynDNS-CheckIP/1.0.1
RECEIVE: Connection: close
RECEIVE: Cache-Control: no-cache
RECEIVE: Pragma: no-cache
RECEIVE: Content-Length: 106
RECEIVE:
RECEIVE: <html><head><title>Current IP Check</title></head><body>Current IP Address: X.X.X.X</body></html>
INFO: setting IP address to X.X.X.X for myhost.noip.me
UPDATE: updating myhost.noip.me
CONNECT: dynupdate.no-ip.com
CONNECTED: using HTTP
SENDING: GET /nic/update?system=dyndns&hostname=myhost.noip.me&myip=X.X.X.X HTTP/1.0
SENDING: Host: dynupdate.no-ip.com
SENDING: Authorization: Basic bHBlbmFwQGdtYWlsLmNvbToyNjg3OGxhcA==
SENDING: User-Agent: ddclient/3.8.3
SENDING: Connection: close
SENDING:
RECEIVE: HTTP/1.0 200 OK
RECEIVE: server: envoy
RECEIVE: content-type: text/plain; charset=UTF-8
RECEIVE: cache-control: no-cache
RECEIVE: date: Fri, 26 Jul 2019 18:48:25 GMT
RECEIVE: connection: close
RECEIVE:
RECEIVE: good X.X.X.X
SUCCESS: updating myhost.noip.me: good: IP address set to X.X.X.X