컬은 인터페이스 매개변수를 무시합니다.

컬은 인터페이스 매개변수를 무시합니다.

내 Ubuntu 12.04 노트북은 WiFi를 통해 인터넷에 연결되고 케이블을 통해 인트라넷에 연결됩니다.

curl다음과 같은 방법으로 인트라넷 사이트의 콘텐츠를 가져오고 싶습니다 .

curl --interface eth0:1 intranet.bfs.admin.ch

밝혀지다

curl: (6) Couldn't resolve host 'intranet.bfs.admin.ch'

WiFi 연결을 끊으면 잘 작동합니다

매뉴얼 페이지에 따르면 이것이 작동할 것입니다. 나도 해봤어(안됐어)

curl --interface eth0:0 intranet.bfs.admin.ch
curl --interface eth0 intranet.bfs.admin.ch
curl --interface 10.147.128.132 intranet.bfs.admin.ch

WiFi를 기본 인터페이스로 두는 것이 매우 중요하다는 점을 언급하고 싶습니다.

답변1

여기서 보시는 것은 무선 인터페이스가 부팅될 때 인트라넷 DNS 구성을 재정의하는 DNS 구성을 포함하는 DHCP를 통해 구성을 가져오는 것입니다.

curl특정 네트워크 인터페이스를 강제로 적용해도 이 문제를 해결하는 데 도움이 되지 않습니다. curl자체 DNS 작업을 수행하지 않으며(기본 운영 체제의 기능), 그렇게 했다고 해도 단순히 유선 연결을 통해 WLAN DNS 서버에 패킷을 보내도록 하는 것만으로는 아무 쓸모가 없습니다.

이 문제를 해결하는 방법에는 여러 가지가 있습니다.

가장 먼저 시도해 볼 수 있는 작업은 인트라넷의 DNS 서버를 WLAN DHCP 구성에 추가하여 일반적으로 사용하는 인터넷 DNS 서버보다 높은 우선 순위를 설정하는 것입니다. 인터넷 DNS 서버를 완전히 버릴 수도 있습니다.인트라넷DNS 서버는 인터넷 DNS 조회를 수행하는 방법을 이미 알고 있을 수도 있습니다. 로컬 DNS 이름을 확인하는 것 외에도 로컬 인트라넷 DNS 서버를 인터넷 조회용 캐싱 DNS 서버로 효과적으로 사용할 수 있습니다.

WLAN DHCP 구성을 제어할 수 없는 경우 Ubuntu의 DHCP 구성을 구성하여 정적 DNS 주소를 사용하면 DHCP에서 얻은 정보가 무시됩니다. 인트라넷 DNS 서버를 사용하도록 설정합니다.

관련 정보