linux下自动连接openvpn的bash

Linux下的openvpn自动连接bash,自动尝试指定目录下的所有.ovpn文件 脚本如下所示: #!/usr/bin/env bash # 存放所有ovpn文件的目录 ovpn_dir="/media/link/D/config/vpn/config/" # 存放用户认证信息的文件 auth_file="/media/link/D/config/vpn/auth.txt" # 存放临时日志的文件 log_file="/media/link/D/config/vpn/temp.log" process_name=openvpn # 遍历ovpn目录下的所有ovpn文件 for file in ${ovpn_dir}/*.ovpn; do echo "Trying ${file}..." # 删除旧的日志文件并创建新的 rm -f ${log_file} && touch ${log_file} # 连接VPN并将所有日志重定向到临时日志文件 sudo openvpn --config ${file} --auth-user-pass ${auth_file} --connect-timeout 10 --connect-retry-max 3 > ${log_file} & while true ; do for line in $(cat ${log_file});do if echo "${line}" | grep -q "Initialization Sequence Completed"; then echo "connect success!" while true; do read -p "Input 'stop' to exit" input if [ "${input}" == "stop" ]; then echo "Exiting....

March 28, 2023 · 1 min · 120 words · Link

windows下自动连接openvpn的powershell脚本

windows下的openvpn自动连接powershell脚本,自动尝试指定目录下的所有.ovpn文件 powershell的脚本如下所示: $ovpn_dir = "D:\MyProject\mybat\vpnconf" $auth_file = "D:\MyProject\mybat\auth.txt" $log_file = "D:\MyProject\mybat\temp.log" foreach ($ovpn_file in Get-ChildItem -Path $ovpn_dir -Filter *.ovpn) { Write-Host "Trying $($ovpn_file.Name)" Remove-Item $log_file -ErrorAction SilentlyContinue $process = Start-Process -FilePath "C:\Program Files\OpenVPN\bin\openvpn.exe" -ArgumentList "--config $ovpn_file --auth-user-pass $auth_file" -NoNewWindow -PassThru -RedirectStandardOutput $log_file $connected = $false while (!$process.HasExited) { $content = Get-Content $log_file if ($content -match "Initialization Sequence Completed") { $connected = $true Write-Host "Connected successfully!" break } Start-Sleep -Milliseconds 1000 } if ($connected) { $inputStr = Read-Host "Type 'stop' to terminate the program" if ($inputStr....

March 28, 2023 · 1 min · 137 words · Link