![명령줄에서 VPN 구성 파일을 NetworkManager로 가져오기](https://linux55.com/image/39126/%EB%AA%85%EB%A0%B9%EC%A4%84%EC%97%90%EC%84%9C%20VPN%20%EA%B5%AC%EC%84%B1%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20NetworkManager%EB%A1%9C%20%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0.png)
.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)가 성공적으로 추가되었습니다.