ข้อโต้แย้งในการเชื่อมต่อโดยใช้ Open ไคลเอนต์ Windows Vpn


13

เป็นไปได้ไหมที่จะเริ่มต้นไคลเอ็นต์ windows openvpnเพื่อให้เชื่อมต่อโดยใช้ config ที่กำหนดไว้ล่วงหน้า (.ovpn) โดยการส่งอาร์กิวเมนต์ของโปรแกรมโดยใช้คำสั่ง หรือระบุข้อโต้แย้งในทางลัดเมื่อเปิดจากทางลัดหน้าต่าง ฯลฯ

คำตอบ:


18

แก้ไขมันดังต่อไปนี้:

จาก windows command prompt-

ป้อนคำอธิบายรูปภาพที่นี่

นี่จะเป็นการเริ่มต้นไคลเอ็นต์ opn vpn gui ที่เชื่อมต่อกับการเชื่อมต่อที่ระบุในการกำหนดค่าโดยตรง


3
โปรดทราบว่าถ้า openvpn-gui.exe เริ่มต้นแล้วคำตอบข้างต้นจะไม่ทำงาน
Jan

9

โปรดทราบว่าหากopenvpn-gui.exeคำตอบนั้นเริ่มต้นแล้วคำตอบจะไม่ทำงาน ให้ความสนใจไปที่: เรียกใช้ส่วนจากไฟล์ชุดเล็ก ๆ ที่ฉันทำเพื่อเริ่มการเชื่อมต่อ openVPN โดยอัตโนมัติเมื่อไม่ได้อยู่ที่บ้าน:

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

1
ขอบคุณสำหรับคำตอบที่ยอดเยี่ยม แต่ฉันไปขั้นตอนพิเศษของการส่งออกงาน Windows ของฉันเป็นส่วนสำคัญ: gist.github.com/carlin-q-scott/77cbb064c3c2e332af011714fb2aa585
carlin.scott

5

นอกเหนือจากคำตอบของ Flowerking คุณสามารถระบุโฟลเดอร์ที่ไฟล์ ovpn ของคุณอยู่อาจจะเก็บข้อมูลคีย์ส่วนตัวในพื้นที่ผู้ใช้ เพื่อที่จะใช้config_dir:

openvpn-gui.exe --connect "client.ovpn" --config_dir "C:\Users\Foo\Documents\protected_crypto_data"

3

นี่เป็นตัวอย่างง่ายๆหากคุณต้องการเชื่อมต่อ VPN มากกว่าหนึ่งตัว:

"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect vpn1.ovpn --connect vpn2.ovpn

มันจะไม่ทำงานหากopenvpn-gui.exeกำลังทำงานอยู่


1

ไม่แน่ใจว่าสิ่งนี้ถูกเพิ่มเมื่อเร็ว ๆ นี้ แต่มีตัวเลือก "- คำสั่ง" ที่สามารถใช้ในการส่งคำสั่งไปยังอินสแตนซ์ gui ที่ทำงานอยู่
ดังนั้นตอนนี้คุณสามารถทำได้
openvpn-gui.exe --command connect config.ovpn

ดูตัวเลือกสำหรับ openvpn-gui.exe โดยไปที่บรรทัดคำสั่งและเรียกใช้
openvpn-gui.exe --help


1

ฉันมีปัญหาเดียวกันและต้องการสคริปต์เพื่อไม่เปิด UI อีกครั้งหากมีการเชื่อมต่อแล้วและรอให้การเชื่อมต่อเสร็จสิ้น

ฉันหาทางออกที่ดีไม่ได้ฉันก็เลยเขียนเอง มันอยู่ที่นี่ในกรณีที่เป็นประโยชน์กับคนอื่น ๆ :

https://www.pretentiousname.com/miscsoft/index.html#ConnectOpenVPN

Windows Vista ขึ้นไป ฟรี; รวมถึงซอร์สโค้ด C ++

(นอกจากนี้ยังมีเครื่องมือที่คล้ายกันและเก่ากว่าสำหรับไคลเอนต์ VPN ในตัวของ Windows)

ตัวอย่างการใช้งานด้วยสวิตช์ / verbose ซึ่งแสดงผลข้อมูลโดยละเอียดเกี่ยวกับสิ่งที่กำลังทำ:

C: \> ConnectOpenVPN.exe / เชื่อมต่อ / อะแดปเตอร์ "OpenVPN" / config "MyVPN.ovpn"

ConnectOpenVPN: กำลังตรวจสอบสถานะของอะแดปเตอร์เครือข่าย "OpenVPN" ...
ConnectOpenVPN: ไม่ได้เชื่อมต่ออะแดปเตอร์เครือข่าย "OpenVPN"
ConnectOpenVPN: กำลังทำงาน: "C: \ Program Files \ OpenVPN \ bin \ openvpn-gui.exe" - คำสั่งเชื่อมต่อ "MyVPN.ovpn"
ConnectOpenVPN: กำลังรอให้ OpenVPN GUI ปรากฏขึ้น ...
ConnectOpenVPN: พบ OpenVPN GUI
ConnectOpenVPN: กำลังรอ OpenVPN GUI เพื่อปิด ...
ConnectOpenVPN: OpenVPN GUI ปิด
ConnectOpenVPN: กำลังรอ / ยืนยันการเชื่อมต่อ VPN อยู่ ...
ConnectOpenVPN: เชื่อมต่อแล้ว
ConnectOpenVPN: การเชื่อมต่อการกระทำ finshed

ฉันหวังว่ามันจะเป็นประโยชน์กับคนอื่น ๆ


0

คุณสามารถปรับปรุงคำตอบของ @Jan ได้โดยเปลี่ยน:

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

ถึง:

ping 192.168.10.100 -n 1 | findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" && goto :finished

วิธีนี้คุณไม่จำเป็นต้องสร้างไฟล์ชั่วคราว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.