สิ่งนี้ไม่สามารถทำได้ใน Windows โดยไม่ต้องใช้โปรแกรมเพิ่มเติมไฟล์แบตช์หรือบรรทัดคำสั่ง อีกทางเลือกหนึ่งคือรับเครื่องเสมือน (หรือทางกายภาพ) ซึ่งคุณสามารถเปิดใช้งาน VPN ได้
ดูเหมือนแปลกที่บางสิ่งบางอย่างสามารถอธิบายได้ง่ายเช่นนี้ยากที่จะบรรลุ เป็นเรื่องยากเพียงใดในการกำหนดเส้นทางการรับส่งข้อมูลจากโปรแกรมหนึ่งไปยังอินเทอร์เฟซ VPN และโปรแกรมอื่น ๆ ทั้งหมดไปยังอินเทอร์เฟซ NIC เริ่มต้น ทำไมเราต้องตั้งค่าเครื่องเสมือนทั้งหมดสำหรับสิ่งนั้น และด้วยลินุกซ์ก็เป็นไปได้ แต่วิธีการแก้ปัญหาก็ไม่ได้สง่างามเช่นกัน
มันเป็นที่ต้องการอย่างมากเช่นกัน: ฉันเจอหลายสิบกระทู้ในหัวข้อเดียวกัน ดังนั้นฉันแค่หวังว่าจะมีคนตระหนักถึงความน่าหัวเราะของเรื่องนี้และทำอะไรบางอย่างเกี่ยวกับเรื่องนี้ (ใน Windows 8!)
การแก้ปัญหานี้มาจากไฟล์ชุด unattributed มันได้รับการดัดแปลงเล็กน้อย
คำแนะนำสำหรับ Windows 7
สคริปต์จะเชื่อมต่อและกำหนดเส้นทางการรับส่งข้อมูลผ่าน VPN ของคุณจนกว่าจะรีบูต - คุณสามารถแทนที่route add
ด้วยroute -p add
เพื่อให้การเปลี่ยนแปลงมีอยู่ แต่ถ้าคุณไม่มี IP ถาวรด้วย VPN ของคุณสคริปต์จะหยุดทำงานในที่สุดเมื่อ IP IP ของคุณเปลี่ยน
- เปิดศูนย์เครือข่ายและการแบ่งปัน
- เปิดคุณสมบัติสำหรับการเชื่อมต่อ VPN ของคุณ
- คลิกที่
Networking
แท็บ
- สำหรับทั้ง IPv4 และ 6:
- คลิก
Properties
- คลิก
Advanced
- ยกเลิกการเลือก
Use default gateway[...]
- ปิดทุกอย่างที่เปิดจากขั้นตอนก่อนหน้า
- แก้ไขและบันทึกสคริปต์ชุดงานด้านล่าง
- เรียกใช้ในฐานะผู้ดูแลระบบ
คุณต้องแทนที่สิ่งต่อไปนี้ในสคริปต์:
<VPN>
ด้วยชื่อการเชื่อมต่อ VPN ที่คุณสร้าง
<USER>
ด้วยชื่อผู้ใช้ VPN
<PASS>
ด้วยรหัสผ่าน VPN
<TARGET>
ด้วยที่อยู่ IP ที่คุณต้องการกำหนดเส้นทางผ่าน VPN (หากคุณต้องการกำหนดเส้นทางที่อยู่เพิ่มเติมให้ทำซ้ำสามบรรทัดที่ใช้เป้าหมาย)
หมายเหตุ:หากคุณไม่ต้องการที่จะบันทึกรหัสผ่านในไฟล์แทนที่<PASS>
ด้วยและเพิ่มต่อไปนี้หลังจากบรรทัดแรกของสคริปต์:%password%
set password= Input password:
ต้นฉบับ
@echo off
@echo make sure to be disconnected!
rasdial <VPN> /d
@echo start to connect to vpn
rasdial <VPN> <USER> <PASS>
netsh interface ip show config name="<VPN>" | findstr "IP" > ip.dat
set /p ip= < ip.dat
del ip.dat
set ip=%ip:~-12%
@echo VPN IP is %ip%
set target=<TARGET>
@echo Add route for %target%
route add %target% mask 255.255.255.255 %ip%
timeout /T 3 > nul