Có thể khởi động máy khách openvpn của windows để làm cho nó kết nối bằng cấu hình được xác định trước (.ovpn) bằng cách cung cấp các đối số chương trình bằng dấu nhắc lệnh. Hoặc chỉ định các đối số trong phím tắt khi mở từ phím tắt windows, v.v.
Có thể khởi động máy khách openvpn của windows để làm cho nó kết nối bằng cấu hình được xác định trước (.ovpn) bằng cách cung cấp các đối số chương trình bằng dấu nhắc lệnh. Hoặc chỉ định các đối số trong phím tắt khi mở từ phím tắt windows, v.v.
Câu trả lời:
Xin lưu ý rằng nếu openvpn-gui.exe
câu trả lời đã được bắt đầu ở trên sẽ không hoạt động. Hãy chú ý đến phần: chạy từ một tệp bó nhỏ tôi đã thực hiện để tự động bắt đầu kết nối openVPN khi không ở nhà:
rem This script is fired from Task Scheduler (using Custom Event filter) when I am NOT at home (not connected to home network)
rem so check if my home NAS is already pingable, because maybe old/previous OpenVPN connection is still open
rem if not then start OpenVPN connection
rem if yes than do nothing
ping -n 1 192.168.10.100 > testping.txt
findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" testping.txt
IF ERRORLEVEL 1 goto run
rem do nothing because NAS is pingable
goto finished
:run
rem be sure to kill previous (closed) openvpn process so reconnecting actually works!
taskkill.exe /F /IM openvpn.exe
taskkill.exe /F /IM openvpn-gui.exe
timeout 1
start /b "" "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect nas_at_home.ovpn
:finished
Ngoài câu trả lời của Flowerking, bạn có thể chỉ định thư mục chứa tệp ovpn của mình, có lẽ để lưu trữ dữ liệu khóa riêng trong không gian người dùng. Đối với điều đó, sử dụng config_dir
:
openvpn-gui.exe --connect "client.ovpn" --config_dir "C:\Users\Foo\Documents\protected_crypto_data"
Không chắc chắn nếu điều này được thêm gần đây nhưng có một tùy chọn "--command" có thể được sử dụng để gửi lệnh đến một phiên bản gui đang chạy.
Vì vậy, bây giờ bạn có thể làm
openvpn-gui.exe --command connect config.ovpn
Xem các tùy chọn cho openvpn-gui.exe bằng cách đi đến dòng lệnh và chạy
openvpn-gui.exe --help
Tôi cũng gặp vấn đề tương tự và cũng cần tập lệnh không mở lại UI nếu nó đã được kết nối và chờ kết nối kết thúc.
Tôi không thể tìm thấy một giải pháp tốt, vì vậy tôi đã viết riêng của mình. Nó ở đây trong trường hợp nó hữu ích cho người khác:
https://www.pretentiousname.com/miscsoft/index.html#ConnectOpenVPN
Windows Vista trở lên; miễn phí; bao gồm mã nguồn C ++.
(Ngoài ra còn có một công cụ cũ hơn tương tự dành cho máy khách VPN tích hợp Windows.)
Sử dụng ví dụ, với công tắc / verbose cung cấp thông tin chi tiết về những gì nó đang làm:
C: \> ConnectOpenVPN.exe / kết nối / bộ chuyển đổi "OpenVPN" / config "MyVPN.ovpn" ConnectOpenVPN: Kiểm tra trạng thái của bộ điều hợp mạng "OpenVPN" ... ConnectOpenVPN: Bộ điều hợp mạng "OpenVPN" không được kết nối. ConnectOpenVPN: Đang chạy: "C: \ Chương trình tập tin \ OpenVPN \ bin \ openvpn-gui.exe" - và kết nối "MyVPN.ovpn" ConnectOpenVPN: Đang chờ GUI OpenVPN xuất hiện ... ConnectOpenVPN: Tìm thấy GUI OpenVPN. ConnectOpenVPN: Đang chờ GUI OpenVPN đóng ... ConnectOpenVPN: GUI OpenVPN đã đóng. ConnectOpenVPN: Đang chờ / xác nhận kết nối VPN tồn tại ... ConnectOpenVPN: Đã kết nối. ConnectOpenVPN: KẾT NỐI hành động kết thúc.
Tôi hy vọng nó hữu ích cho những người khác.
Bạn có thể cải thiện câu trả lời của @Jan bằng cách thay đổi:
ping -n 1 192.168.10.100 > testping.txt
findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" testping.txt
đến:
ping 192.168.10.100 -n 1 | findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" && goto :finished
Bằng cách này, bạn không cần phải tạo một tệp tạm thời.