명령줄에서 VPN 구성 파일을 NetworkManager로 가져오기

명령줄에서 VPN 구성 파일을 NetworkManager로 가져오기

.ovpn파일은 GUI 도구를 통해 NetworkManager로 가져올 수 있습니다 nm-connection-editor(마우스 오른쪽 버튼을 클릭 nm-applet하고 클릭 Edit connections): Add-> Import a saved VPN configuration....

내 목표는 동일한 작업을 수행하는 것이지만 명령줄을 통해 nm-cli가능합니까?

답변1

저는 nmcli 버전 1.2.6을 사용하고 있으며 이를 사용하여 openvpn 구성을 가져올 수 있습니다.

nmcli connection import type openvpn file ~/myconfig.ovpn

이제부터 내 VPN은 NetworkManager UI에도 표시됩니다.

연결을 추가로 구성하려면 이 show명령을 사용하여 연결 이름을 찾고 modify구성 값을 변경할 수 있습니다.

nmcli connection show
nmcli connection modify myvpnconnectionname +vpn.data username=myusername

답변2

데비안 기반 시스템에서 nmcli의 기능 부족 문제를 해결하기 위해 사용한 해결 방법은 명령을 사용하여 /etc/NetworkManager/system-settings 폴더에 있는 기존 VPN 구성 파일을 새 파일에 복사하는 것이었습니다(물론 루트로). 동일한 폴더에 있는 새 복사본에서 허용된 사용자, 게이트웨이, 사용자 이름 및 비밀번호 값에 대해 문자열 교체를 수행합니다. 그런 다음 Network Manager를 다시 시작하여 변경 사항을 적용했습니다.

예를 들어:

/etc/NetworkManager/system-settings 폴더의 일반적인 구성 파일은 다음과 같습니다.

[connection]
id=<<id>>
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
type=vpn
permissions=user:<<permissions_user>>:;
autoconnect=false

[vpn]
password-flags=0
service-type=org.freedesktop.NetworkManager.pptp
require-mppe-128=yes
mppe-stateful=yes
user=<<user>>
refuse-eap=yes
refuse-chap=yes
gateway=<<gateway>>
refuse-pap=yes

[vpn-secrets]
password=<<password>>

[ipv4]
method=auto

...위의 프로필과 유사한 새 프로필을 만들 수 있습니다...

cd /etc/NetworkManager/system-settings
cp "existing-working-vpn-config-file" "new-vpn-config-file"

...그런 다음 위의 "<<>>" 값을 사용자 고유의 VPN 설정으로 바꿉니다. 예를 들면 다음과 같습니다.

sed -i "s/<<permissions_user>>/my_permissions_user/g" new-vpn-config-file
sed -i "s/<<user>>/my_user/g" new-vpn-config-file
sed -i "s/<<gateway>>/my_gateway/g" new-vpn-config-file
sed -i "s/<<password>>/my_password/g" new-vpn-config-file

...마지막으로 다음 명령을 사용하여 네트워크 관리자를 다시 시작합니다.

service network-manager restart

참고: UUID 설정은 고유하지 않더라도 중요하지 않은 것 같습니다. 왜 그런지 모르겠어. 그것에 관한 물건.

또한, 새 파일을 복사하는 대신 추가하는 경우 파일 권한이 600(읽기 및 쓰기)으로 설정되어 있고 소유자가 루트인지 확인하세요.

한번 사용해 보고 어떻게 생각하는지 말해주세요. 그것은 명령줄을 통해 나에게 효과적입니다.

답변3

나는 이것을 루트에서 실행하는 데 사용합니다.

USER=japie
runuser -l $USER -c "sudo -S nmcli connection import type openvpn file ~/vpn_clients/flappie3-TO-IPFire.ovpn"

연결 "flappie3-TO-IPFire"(26d0b28e-9212-4e71-90dc-3911ddf231e5)가 성공적으로 추가되었습니다.

관련 정보