NetworkManager 없이 현재 연결이 측정되는지 여부를 감지합니다.

NetworkManager 없이 현재 연결이 측정되는지 여부를 감지합니다.

저는 다른 개발자들과 협력하여 Linux 시스템이 데이터 통신 연결에 연결되지 않을 때마다 자동으로 업데이트하는 스크립트를 만들었습니다.

그러나 일부 시스템에서는 네트워크 관리자 대신 "systemd-networkd"를 사용하여 네트워크를 구성하고 두 프로그램을 동시에 사용하면 서로 충돌한다는 사실을 발견했습니다.

따라서 우리는 시스템에 설치된 nmcli에 실제로 의존할 수 없으며 이 솔루션을 사용할 수 없습니다.질문.

답변1

이를 자동으로 감지하는 신뢰할 수 있는 단일 방법은 없습니다. 네트워크가 계량되어 있음을 암시하는 방법이 있지만 이러한 방법은 보편적으로 배포되는 것과는 거리가 멀습니다.

그러나 이러한 메시지가 표시되지 않으면 연결이 측정되지 않을 수도 있고 그렇지 않을 수도 있다고 가정할 수 없습니다. NetworkManager를 사용하면 사용자는 연결 상태에 대해 가장 잘 알 수 있으므로 연결을 구성할 때 측정 연결 속성을 설정할 수 있습니다.

따라서 사용자에게 스크립트 실행 선택/책임을 부여하거나 비활성화할 수 있습니다.

답변2

@telcoM이 말했듯이 연결이 측정되는지 확인할 수 있는 확실한 방법은 없습니다. 또 다른 옵션은 알려진 연결과 이를 측정할지 여부에 대한 테이블을 만드는 것입니다. 상대적으로 좋은 지표는 다음 명령을 사용하여 확인할 수 있는 외부 IP 주소입니다.

dig +short myip.opendns.com @resolver1.opendns.com

답변3

우리가 찾은 유일한 솔루션에는 여전히 네트워크 관리자가 필요합니다.

nmcli --terse --fields GENERAL.METERED dev show 2>/dev/null | grep --quiet "yes"

관련 정보