내 호스트(hostname)에서 인터넷을 통해 호스트 이름(hostname)의 외부 호스트에 연결 localhost
하고 싶습니다 . exthost
공용 IP 주소는 exthost
인터넷 제공업체에 의해 동적으로 할당됩니다.
내 말은 exthost
항상 해당 이름을 사용하고 공급자가 할당한 값(변경될 수 있음)을 기반으로 해당 이름을 실제 IP 주소에 매핑한다는 것입니다.
이를 위해 /etc/hosts
연결된 회선을 올바르게 업데이트하는 IP 주소 값을 사용하고 싶습니다 exthost
.
예를 들어 /etc/hosts
Linux의 줄은 다음과 같습니다.
<ip_address> exthost.domain exthost
저는 Ubuntu 18.04를 사용하고 있지만 이는 확실히 다른 배포판/Unix 계열 시스템에도 적용됩니다.
이러한 목적으로만 DNS(및 때로는 무료 서비스가 아닌 동적 DNS)를 설정하지 않고 이를 수행할 수 있습니까?
<ip_address>
예를 들어, 명시적인 IP가 아닌 문자열로 원하는 IP만 포함하는 다른 파일에 대한 참조를 사용할 수 있습니까 ? 이를 통해 사용자는 달라질 수 있는 IP 값을 기반으로 파일에 액세스하고 수정할 수 있습니다.
노트:이 문제로컬 머신에 관한 것이기 때문에 상황이 다른 것 같습니다. 나는 외부 호스트를 언급하고 있습니다.
답변1
사용자 정의 호스트 파일이 존재하지 않는 Linux에서는 HOSTALIASES를 사용하여 정식 이름을 처리할 수 있습니다.
귀하의 질문에 올바르게 답변했다면 동적 DNS 서비스(예: DynDNS 또는 No-IP)를 사용하여 ISP가 항상 올바른 공용 IP 주소를 할당하도록 할 수 있습니다.
exthost
그런 다음 HOSTSALIASES를 사용하여 동적 DNS 서비스에서 제공하는 FQDN 이름에 매핑할 수 있습니다 .
HOSTALIASES 값을 내보내고 파일 export HOSTALIASES=~/.hosts
에 다음 줄을 추가하여 exthost를 no-ip에서 제공하는 FDQN 이름에 매핑합니다.~/.hosts
exthost yourname.no-ip.org
HOSTALIASES는 IP가 아닌 정식 이름에 대해서만 작동합니다. 따라서 FQDN 이름을 얻으려면 동적 DNS 서비스를 사용해야 하지만 해당 FQDN을 사용하고 HOSTALIASES를 완전히 건너뛸 수 있습니다.
/etc/hosts
일부 DNS 서비스를 설정하거나 원격 사이트에 스크립트를 작성하여 항상 공용 IP를 보낸 다음 로컬 파일에서 해당 IP를 변경하지 않고는 이 작업을 수행할 수 없다고 생각합니다.
또 다른 옵션은 사용자에게 변경 권한을 부여하거나 chroot 환경에서 사용자를 설정하고 /etc/hosts
chroot 환경에서 그 자신의 파일을 제공하는 것입니다./etc/hosts
답변2
내 /etc/hosts:
127.0.0.1 localhost
127.0.1.1 *some-host*
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
그래서:
sudo nano /etc/hosts
줄을 추가하세요:
IPOFEXTHOST exthost
여기서 IPOFEXTHOST는 알려진 exthost의 IP입니다.
이 시점부터 exthost가 포함된 줄을 대체하여 파일을 업데이트하는 스크립트를 작성할 수 있습니다. 그럼에도 불구하고 컴퓨터 중 하나에는 dyndns 또는 no-ip 업데이터가 있어야 합니다. 이렇게 하면 exthost의 URL을 직접 알 수 있거나 exthost가 다른 컴퓨터의 주소를 알 수 있어 ssh를 역방향으로 하고 해당 컬 공용 IP로 파일을 업데이트할 수 있습니다.