호스트 이름이 DNS 서버 IP 주소로 확인되지 않습니다.

호스트 이름이 DNS 서버 IP 주소로 확인되지 않습니다.

DDNS를 사용하도록 설정된 라우터와 IP가 없는 DNS 서버를 가리키는 통합 공급자에 연결된 홈 서버가 있습니다. 정전 후에는 내 도메인 이름에 더 이상 액세스할 수 없습니다. IP 주소 확인

dig +short pacolola.net

...주소를 알아요 188.151.207.219. 라우터의 공용 IPv4 주소와 No-IP의 사용자 페이지를 기준으로 이어야 합니다 188.151.218.129. 후자의 주소를 사용하면 페이지 내용이 표시되고 서버의 내부 IP 주소도 작동합니다.

다양한 DNS 캐시 재설정 명령을 사용하여 sudo service networking restart네트워크를 다시 시작해 보았지만 성공하지 못했습니다.

DNS 서버에서 사용되는 IP 주소에 대한 호스트 이름을 어떻게 확인합니까? 이것은 no-ip <=> 라우터나 SLL 또는 서버의 다른 것으로 인한 DNS 문제입니까? 이 상황에서는 어떤 진단 도구가 효과적입니까?

답변1

DDNS 업데이트 프로그램이 실행 중인지 확인해야 합니다. Linux/Unix용 No-IP DDNS 업데이트 프로그램은 ​​입니다 /usr/local/bin/noip2.여기에서 설치 지침을 참조하세요.

업데이트 프로그램이 자동으로 시작되도록 활성화하는 방법을 알아보려면 설치 지침 웹 페이지의 소프트웨어 패키지에 있는 README 파일을 참조하십시오.

클라이언트를 시작하는 방법

noip2 실행 파일은 /usr/local/bin/noip2를 입력하여 실행할 수 있습니다.

컴퓨터가 시작될 때 자동으로 실행되도록 하려면 다음 스크립트를 시작 디렉터리에 배치하세요. (/etc/init.d/rcX.d 또는 /sbin/init.d/rcX.d 또는???)

#######################################################
#! /bin/sh
# . /etc/rc.d/init.d/functions  # uncomment/modify for your killproc
case "$1" in
    start)
    echo "Starting noip2."
    /usr/local/bin/noip2
    ;;
    stop)
    echo -n "Shutting down noip2."
    killproc -TERM /usr/local/bin/noip2
    ;;
    *)
    echo "Usage: $0 {start|stop}"
    exit 1
esac
exit 0
#######################################################

여기서 rcX.d의 'X'는 다음 명령을 실행하여 얻은 값입니다.

grep initdefault /etc/inittab | grep initdefault /etc/inittab | grep initdefault /etc/inittab awk -F: '{인쇄 $2}'

Killproc은 다음에서 다운로드할 수 있습니다.ftp://ftp.suse.com/pub/projects/init 또는 #!/bin/sh의 주석 처리를 해제할 수 있습니다.

최신 RedHat 버전을 사용하는 경우 다른 사용자가 제공한 시작 스크립트를 사용해야 할 수도 있습니다. 이는 redhat.noip.sh라는 패키지에 있으며 시스템에 대한 일부 수정이 필요할 수 있습니다.

데비안에는 debian.noip2.sh라는 시작 스크립트가 있습니다. 다른 사용자가 제공한 것이기도 하며 어떤 경우에는 실패한다는 소문도 있습니다.

다른 사용자가 MAC OS X 자동 시작 단계를 제공했습니다. mac.osx.startup이라고 합니다. Mac 사용자는 이 문서를 읽어볼 수 있습니다.

하지만,실제로 이러한 Unix/Linux 지침은 기존 SysVinit 시작 스크립트 구성표를 사용하는 시스템에만 적용됩니다.최신 Linux 시스템에는 서비스 시작을 위한 다양한 종속성 기반 시스템이 있을 수 있으며 여기에는 이 지침에서 다루지 않는 추가 요구 사항이 있습니다.

예를 들어, RHEL 6에서도 스크립트가 의존하는 다른 서비스를 식별하기 위해 특별히 형식이 지정된 주석 줄이 스크립트에 필요합니다. 가 있는 시스템에서는 SysVinit 호환성 시스템이 스크립트가 RHEL 6 이상과 동일하고 종속성 식별 주석을 가질 것으로 예상하기 때문에 systemd스크립트를 넣는 것이 /etc/init.d/rcX.d작동하지 않을 수 있습니다 .systemd/etc/init.d

redhat.noip.sh패키지의 예제 스크립트 도 오래되었습니다. 최신 종속성 기반 시작 시나리오에서는 해당 패키지의 특수 주석이 불완전합니다.

#!/bin/sh
#
# chkconfig: 345 99 80
# description: Starts and stops the no-ip.com Dynamic dns client daemon
#
# pidfile: /var/run/noipd.pid
#

RHEL 5.x 이하에서는 작동할 수 있지만 RHEL 7.x 이상에서는 작동하지 않습니다. (RHEL 6.x의 경우 이전 형식은가능한받아 들여졌지만 그 당시에는 새로운 형식이 권장되었습니다. ) 다음과 같이 위의 주석 블록 바로 뒤에 추가 주석 블록을 추가해야 합니다.

### BEGIN INIT INFO
# Provides:             noip2
# Required-Start:       $local_fs $network
# Required-Stop:        $local_fs $network
# Default-Start:
# Default-Stop:
# Short-Description:    Starts and stops noip2
# Description:          Starts and stops the no-ip.com Dynamic dns client daemon
### END INIT INFO

그러나 systemdLinux 기반 배포판의 경우 스크립트를 완전히 생략하고 기본 시스템 파일을 사용하는 것이 더 간단합니다 . .service예를 들면 다음과 같습니다 ./etc/systemd/system/noip2.service

[Unit]
Description=no-ip.com Dynamic dns client daemon
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
ExecStart=/usr/local/bin/noip2

[Install]
WantedBy=multi-user.target

( systemd순수주의자의 경우: 백엔드로의 포크를 방지하는 옵션이 없는 것 같으므로 noip2이 글을 쓰는 시점에서는 서비스를 사용하는 것이 불가능해 보입니다.)Type=simple

따라서 No-IP.com의 설치 지침을 적극적으로 사용하지 않고 따랐다면 업데이트 프로그램은 수동으로 시작한 순간부터 다음에 서버를 재부팅할 때까지만 실행될 가능성이 높습니다. 하지만 외부 IP 주소가 변경되지 않았다면 아마 전혀 몰랐을 것입니다. 지금까지는 이전과 다른 IP 주소를 얻게 됩니다.

관련 정보