SSH를 통해 액세스할 수 있는 동적 IP 주소를 가진 서버가 있습니다. 서버에서 스크립트는 주소가 변경될 때마다 서버의 공용 IP 주소가 포함된 텍스트 파일을 웹 위치에 업로드합니다.
다른 클라이언트에서 서버에 어떻게 연결하나요? 이는 DynDNS와 유사하지만 네트워크를 사용하여 IP 주소를 얻습니다.
답변1
DynDNS 서비스에 액세스할 수 없거나 사용하지 않는 경우 별칭을 만들고 ~/.ssh/config
IP 주소가 변경되면 편집하세요. 다음 두 줄을 입력하세요(선택적으로 해당 호스트 별칭에 대한 다른 설정이 뒤에 올 수 있음) ~/.ssh/config
.
Host nickname
HostName 1.2.3.4
CheckHostIP no
HostKeyAlias nickname
이 스크립트는 주소가 변경될 때마다 실행됩니다.
#!/bin/sh
url='http://example.com/my-server-ip.txt'
ip_address=$(wget -q "$url")
case $ip_address in
'') :;; # empty file or connection error
*[!.:0-9A-Fa-f]*) # bad character
echo 1>&2 "The content at $url doesn't look like an IP address!"; exit 1;;
*) # this looks like an IP address
ed -s ~/.ssh/config <<EOF
/^ *Host *nickname
/^ *HostName
s/e .*/e $ip_address/
w
q
EOF
esac
답변2
이 nsupdate
명령을 사용하여 원격 서버에서 동적 DNS 업데이트를 수행할 수 있습니다. 나는 귀하가 DynDNS가 제공하는 (무료) 상용 서비스를 "다른 서비스"와 비교하고 있다고 가정합니다(그러나 모릅니다). "동적 DNS"는 실제로 레코드 업데이트를 위한 표준화된 프로토콜인 것으로 밝혀졌습니다. 레코드가 포함된 .txt 파일을 이동할 필요는 없습니다(이렇게 해도 작동함). 대신 nsupdate
활성 영역에서 업데이트 항목을 사용할 수 있습니다 .
답변3
단순히 해당 IP로 DNS 항목을 업데이트하면 어떨까요?
나는 이것을 사용하여 이것을하고 있습니다SSH-dyndns. 보다내 블로그 항목의 설명.