วิธียกเลิกการเชื่อมต่อจาก OpenVPN


29

ฉันกำลังเชื่อมต่อโดยใช้เซิร์ฟเวอร์ VPNBook และทำงานได้ดีกับคำสั่งนี้:

 sudo openvpn --config /etc/openvpn/vpnbook-udp-53.ovpn --auth-user-pass /etc/openvpn/password.txt

แต่ฉันก็ดูเหมือนจะไม่สามารถคิดออกวิธีหยุดโดยไม่ต้องรีบูต

ฉันได้พยายามservice openvpn stopและ/etc/init.d/vpnbook stopแต่ที่ดูเหมือนจะไม่ส่งผลกระทบต่อมัน


ifconfig มีความแม่นยำเพียงใด
อดัม

จะเลือกอันไหนดี? eth0, lo, tun2 หรือ wlan0
อดัม

เพียงแค่ทำ> sudo /etc/init.d/network-manager รีสตาร์ท <
Qasim

ฉันอยากรู้อยากเห็นเมื่อ VPN เริ่มต้นด้วยวิธีนี้จะไม่ปรากฏในตัวจัดการเครือข่าย ฉันใช้ตัวจัดการเครือข่ายเชื่อมต่อและยกเลิกการเชื่อมต่อเสมอและไม่มี VPN เพื่อทดสอบ แต่สงสัย
เดนนิส

คำตอบ:


45

คำสั่งนี้ใช้งานได้ดีสำหรับฉันและมันก็ใช้ได้กับคุณเช่นกัน

sudo killall openvpn

อาจต้องsudo apt-get install psmiscมีการสร้างบางอย่าง
geotheory

ฉันต้องฆ่า -9 ใน Ubuntu 16.04 (ใช่ฉันรู้ ... )
Gregor

11

ขั้นตอนที่ประสบความสำเร็จในกรณีของฉันคือ:

# stop the service    
$ sudo /etc/init.d/openvpn stop

# find the process if for some reason it keeps running
$ lsof -i | grep openvpn

# kill the proccess(s) by its PID
$ kill -9 <PID>

# if necessary restart the service again
$ sudo /etc/init.d/openvpn start


ด้วยเหตุผลบางอย่างkillall -SIGIN openvpnไม่ได้ผลสำหรับฉัน แต่ทำตามขั้นตอนข้างต้นแล้ว


นี่เป็นคำตอบที่ดีที่สุดในความคิดของฉัน กระบวนการฆ่าเป็นวิธีแปลก ๆ แต่การขอให้บริการหยุดควรทำในสิ่งที่มันควรจะเป็น
Sopalajo de Arrierez

โดยทั่วไปแล้วคุณไม่ควร "ฆ่า -9" จนกว่าคุณจะลองขัดจังหวะหรือทำความสะอาดมันก่อน โปรแกรมสามารถตรวจจับการขัดจังหวะและทำความสะอาดได้ แต่ไม่สามารถจับสัญญาณเก้า (คำศัพท์) โดยเฉพาะอย่างยิ่งในกรณีของ openvpn การฆ่าด้วย-9ไม่อนุญาตให้โพสต์สคริปต์ทำงานและมีแนวโน้มมากที่จะทิ้งเส้นทางที่ไม่ถูกต้องซึ่งวางอยู่รอบ ๆ เป็นการดีที่คุณต้องการkill -SIGINTแล้วรอสักครู่เพื่อให้ pid สิ้นสุดและไปกับ-SIGTERM/ -9หากไม่ได้ออกไปก่อนหน้านั้น
dannysauer

4

ลองสิ่งนี้

killall -SIGINT openvpn

คุณสามารถรับข้อมูลเพิ่มเติมเกี่ยวกับสัญญาณต่างๆที่คุณสามารถส่งได้ที่นี่: http://openvpn.net/index.php/open-source/documentation/howto.html#control


killall -SIGINT openvpnopenvpn (15360): ไม่อนุญาตให้ใช้งาน openvpn: ไม่พบกระบวนการ sudo killall -SICINT openvpn SICINT: สัญญาณที่ไม่รู้จัก; killall -l แสดงรายการสัญญาณ
อดัม

1
sudo killall openvpnในอาคารใหม่ทำงานให้ฉัน
Adam

@ อดัม: มันSIGINTไม่ใช่SICINT
Dzamo Norton

คำสั่ง kill และ killall ส่ง SIGTERM โดยค่าเริ่มต้นซึ่งเอกสารระบุว่ามีผลเช่นเดียวกับ SIGINT ดังนั้นอาจทำงานได้อย่างเท่าเทียมกัน - หากสะกดถูกต้อง ;)
dannysauer

3

เพียงกดCTRL+ Cในเทอร์มินัลที่คุณเพิ่งเริ่ม OpenVPN


2
จะเกิดอะไรขึ้นถ้ามันเริ่มต้นด้วยแฟล็ก -daemon (พื้นหลัง) ไม่สามารถทำได้ในกรณีนี้
mr-sk

1
นอกจากนี้ยังทำให้ 'tun0' เป็นอินเทอร์เฟซดังนั้นจึงไม่สามารถรีสตาร์ทโดยไม่ต้องรีบูตเครื่องหรือทำการแก้ไขไฟล์การกำหนดค่าระบบในขณะที่ทำงาน
เดนนิส

1
เกิดอะไรขึ้นถ้าเทอร์มินัล teh ถูกปิดโดยไม่ตั้งใจ ?
varun

@Dennis ifconfig tun0 downช่วยในกรณีนี้
gnysek

2

ในกรณีที่งานsudo killall openvpnไม่เสร็จ (ฉันมีประสบการณ์ไม่กี่ครั้ง) จากนั้นวิธีแก้ปัญหาที่คมชัดและรุนแรงจะเป็น:

pgrep openvpn | xargs sudo kill -9

0

หลังจากรันsudo killall openvpnหรือservice openvpn stopอินเตอร์เฟสเสมือน "tun0" จะยังคงเปิดอยู่และอ้างอิงในตารางเส้นทางดังนั้นการเชื่อมต่อที่เกี่ยวข้องจะหายไปเนื่องจากบริการ openvpn ถูกฆ่า

ทางออกคือการลบการเชื่อมต่อเสมือนจริงหลังจากที่ฆ่าบริการ openvpn เนื่องจากมันถูกสร้างขึ้นทุกครั้งเมื่อบริการ openvpn ได้รับการเชื่อมต่อ

ดังนั้นคุณต้องรันคำสั่งด้านล่างเพื่อตัดการเชื่อมต่อ openvpn:

$ sudo killall openvpn
$ sudo ip link delete tun0

-1

sudo update-rc.d openvpn ปิดการใช้งาน

หรือแก้ไขไฟล์กำหนดค่าใน / etc / default / openvpn

sudo nano / etc / default / openvpn

และ uncomment บรรทัด:

#AUTOSTART="none"

ดังนั้นดูเหมือนว่า:

AUTOSTART="none"

จากนั้นคุณจะต้องเรียกใช้:

sudo service openvpn start < vpn-name > เพื่อเริ่มต้น VPN ด้วยตนเอง

sudo service openvpn stop < vpn-name > เพื่อหยุด VPN ด้วยตนเอง

<vpn-name> เป็นชื่อไฟล์ปรับแต่งที่ไม่มีนามสกุล. conf

อยู่ใน / etc / openvpn และไม่มี <>

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