특정 Wi-Fi를 사용할 때 항상 VPN에 연결하려면 nmcli를 사용하는 방법은 무엇입니까?

특정 Wi-Fi를 사용할 때 항상 VPN에 연결하려면 nmcli를 사용하는 방법은 무엇입니까?

nm-applet을 사용하면 VPN 연결과 연결에 대한 사용자 이름+비밀번호를 쉽게 저장한 다음 사용할 때 자동으로 특정 Wi-Fi 연결에 연결할 수 있습니다. 비밀번호를 묻지 않고 항상 자동으로 연결됩니다.

터미널에서 다른 명령을 사용하여 nmcli이를 어떻게 달성 할 수 있습니까? 더 쉽게 더 많은 연결을 배포하고 편집할 수 있도록 스크립트를 작성하려고 합니다.

지금까지는 관리만 해왔습니다.

nmcli connection import type openvpn file ned.ovpn

또한 저장된 연결은 다음에서 찾을 수 있다는 것을 알았습니다.

 /etc/NetworkManager/system-connections/

랩톱에서 데스크톱으로 동일한 설정을 복사해 보았지만 아무것도 변경되지 않은 것 같습니다. 설정을 보거나 변경하지 못하는 것 같습니다.

답변1

아래는 내 원래 의견에 대한 자세한 설명입니다. 목표는 CLI 도구를 사용하여 동등한 기능을 이해하는 것입니다.나미클리사용자가 GUI 도구의 설정을 알고 있는 한 설정을 찾기 위해 모든 문서를 검토할 필요가 없습니다. 이 GUI 도구의 임시 도움말을 사용하면 됩니다.nm-작은 프로그램, 사용할 수 있어야합니다어딘가에(동일한 시스템도 아님) 동일한 설정을 사용합니다. 이는 여기서 고려한 것 이외의 다른 설정에서 사용할 수 있는 일반적인 접근 방식일 뿐입니다.

두 가지 연결이 관련되어 있습니다. 전화하겠습니다.기본, 그리고MyVPN사용시 자동으로 연결됩니다.기본. 여기에서 변경사항이 적용됩니다.기본, 확인해야 합니다.

$ nmcli connection show
NAME                UUID                                  TYPE       DEVICE 
main                cfa5be23-925a-4273-b5de-2f9adaac8782  wifi       --
myVPN               0d9e60ef-6b5e-4f65-8312-8db428589866  vpn        --

기본 구성을 표시하려면 다음 중 하나를 수행하십시오.

nmcli connection show id main
nmcli connection show uuid cfa5be23-925a-4273-b5de-2f9adaac8782

다음과 같은 다른 많은 라인이 덤프됩니다.

connection.id:                          main
connection.uuid:                        cfa5be23-925a-4273-b5de-2f9adaac8782
connection.type:                        802-11-wireless

[...]

그래서 첫 번째 덤프모두파일에 있습니다. 일부 출력은 현지화되어 있으므로 미리 수행하는 것이 좋습니다 export LANG=C.UTF-8(나중에 인터넷에서 특정 설정 이름이나 값을 검색하거나 비교해야 할 경우 도움이 됩니다).

nmcli c show id main > /tmp/before

GUI 도구 사용nm-작은 프로그램그 기능이 알려졌을 때, VPNMyVPN메인에 추가:

자동으로 연결되도록 VPN을 설정하세요

버려다시:

nmcli c show id main > /tmp/after

지금diff변경된 내용을 비교하고 표시할 수 있습니다.

$ diff -u /tmp/before /tmp/after
--- /tmp/before 2019-05-04 10:47:43.410149358 +0200
+++ /tmp/after  2019-05-04 10:47:58.798252044 +0200
@@ -15,7 +15,7 @@
 connection.master:                      --
 connection.slave-type:                  --
 connection.autoconnect-slaves:          -1 (default)
-connection.secondaries:                 --
+connection.secondaries:                 0d9e60ef-6b5e-4f65-8312-8db428589866
 connection.gateway-ping-timeout:        0
 connection.metered:                     unknown
 connection.lldp:                        default

그러면 이는 이전에 눈에 띄지 않았던 설정이 connection.secondaries별다른 추측 없이 설정되었음을 의미합니다.MyVPNUUID: 0d9e60ef-6b5e-4f65-8312-8db428589866.nm-세트(5)그것에 대해 이야기합니다연결 설정:

string[]에 대한 보조 배열

기본 연결 자체를 활성화할 때 활성화되어야 하는 연결 UUID 목록입니다. 현재는 VPN 연결만 지원됩니다.

이제 VPN에 대한 자동 연결을 다시 지울 수 있습니다기본그리고:

nmcli c modify id main connection.secondaries ''

그리고 다시 추가MyVPNwith (따라서 배열입니다 +):

nmcli c modify id main +connection.secondaries 0d9e60ef-6b5e-4f65-8312-8db428589866

일부 글루 코드(id에서 uuid 검색 등)를 사용하면 이제 이를 자동화할 수 있습니다.

물론 해당 줄이 파일 어딘가에 추가되거나 제거되지만 /etc/NetworkManager/이에 의존해서는 안 됩니다.

참고: 저는 이 답변을 쓰기 전에는 이 설정에 대해 몰랐으며, 들은 대로 했습니다.

관련 정보