Linux
編寫一種在 Ubuntu 上快速將 OVPN 文件導入 NetworkManager 的方法
我想快速將 ovpn 文件導入 NetworkManager 並將我的登錄詳細資訊附加到 NetworkManager 將使用的最終 conf 文件中。
基本上轉這個
client dev tun proto udp remote italy.privateinternetaccess.com 1197 resolv-retry infinite nobind persist-key persist-tun cipher AES-256-CBC auth SHA256 tls-client remote-cert-tls server auth-user-pass comp-lzo verb 1 reneg-sec 0 crl-verify crl.rsa.4096.pem ca ca.rsa.4096.crt disable-occ
進入這個
[connection] id=Singapore uuid=<unique id gen by uuidgen> type=vpn permissions= secondaries= [vpn] connection-type=password auth=SHA256 password-flags=0 remote=sg.privateinternetaccess.com:1197 cipher=AES-256-CBC comp-lzo=yes reneg-seconds=0 username=<username> remote-cert-tls=server ca=ca.rsa.4096.crt dev=tun service-type=org.freedesktop.NetworkManager.openvpn [vpn-secrets] password=<password> [ipv4] dns-search= method=auto [ipv6] addr-gen-mode=stable-privacy dns-search= method=auto
通常當 NetworkManager 導入提供的 OVPN 文件時,它會輸出這個。
[connection] id=Ireland uuid=174fa5b0-0b49-40bc-a301-756acd341c12 type=vpn permissions= secondaries= [vpn] connection-type=password auth=SHA256 password-flags=1 remote=ireland.privateinternetaccess.com:1197 cipher=AES-256-CBC comp-lzo=yes reneg-seconds=0 remote-cert-tls=server ca=ca.rsa.4096.crt dev=tun service-type=org.freedesktop.NetworkManager.openvpn [ipv4] dns-search= method=auto [ipv6] addr-gen-mode=stable-privacy dns-search= method=auto
我可以通過 sed 快速更改密碼標誌,但我不知道如何附加
username
and[vpn-secrets]
部分。任何幫助,將不勝感激。
新的 PIA OpenVPN 配置文件中包含一些錯誤,可能會阻止 OpenVPN 連接啟動。
這些是錯誤。
... cipher aes-256-cbc auth sha-256 ...
修復相對簡單,只需將它們更改為完全大寫即可。您可以使用 sed 快速完成所有配置文件。
sed -i 's/aes-256-cbc/AES-256-CBC/g' *.ovpn sed -i 's/sha256/SHA256/g' *.ovpn
要使用 NetworkManager 快速導入文件,請使用此命令。
for i in *.ovpn; do nmcli connection import file "$i" type openvpn; done
如果您希望將您的使用者名和密碼添加到 NetworkManager 配置文件中,請按照以下步驟操作。
首先創建一個腳本。
#!/bin/bash # Changes password-flags from 1 to 0 sed -i 's/password-flags=1/password-flags=0/g' $1 # Adds in a username entry after reneg-seconds sed -i '/reneg-seconds=0/a username=<insert username here>' $1 # Adds in a section [vpn-secrets] for passwords after line 21 sed -i '21 a [vpn-secrets]' $1 # Adds in password into the config file after [vpn-secrets] sed -i '/\[vpn-secrets]/a password=<insert password here>' $1 # Adds in a new line after password= sed -i '/password=/a\\' $1
導航到
/etc/NetworkManager/system-connections
NetworkManager 儲存其配置文件的位置或任何位置。要在所有配置文件上快速迭代腳本,請執行此命令。
for i in "*"; do <script location> "$i"; done