जवाबों:
pkill -SIGTERM -f 'openvpn --daemon --conf $ OPENVPNCONFFILE'
pkill कमांड आपको नाम या अन्य विशेषताओं के आधार पर एक प्रक्रिया को इंगित करने की अनुमति देता है
यह SIGTERM को ओपनवैप पर भेजेगा, जिससे यह इनायत से ट्यून इंटरफ़ेस को छोड़ देगा और बंद कर देगा। आप जिस तरह से ओपेनवैन कनेक्शन शुरू करते हैं, उससे मिलान करने के बाद आपको अनुभाग को संशोधित करना पड़ सकता है।
मुझे यह ओपनवीपीएन मैन पेज के सिग्नल अनुभाग में मिला।
SIGINT, SIGTERM
Causes OpenVPN to exit gracefully.
वर्चुअल इंटरफ़ेस के साथ निर्धारित करें ifconfig
:
tap0 Link encap:Ethernet HWaddr 32:28:a4:04:34:cc
inet addr:172.22.18.14 Bcast:172.22.18.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
और इसके साथ बंद करें:
sudo ifconfig tap0 down
रेड इंडियन पर आधारित इनिट स्क्रिप्ट यहां आधारित है:
#! /bin/bash
#
# openvpn-client Start/Stop the openvpn client
#
# chkconfig: 2345 90 60
# description: start openvpn client at boot
# processname: openvpn
# Source function library.
. /etc/init.d/functions
daemon="openvpn"
prog="openvpn-client"
conf_file="/vagrant/vpn/client-dept18-payment.ovpn"
start() {
echo -n $"Starting $prog: "
if [ -e /var/lock/subsys/openvpn-client ] && [ $(pgrep -fl "openvpn --config /vagrant/vpn/client-dept18-payment.ovpn" | wc -l) -gt 0 ]; then
echo_failure
echo
exit 1
fi
runuser -l root -c "$daemon --config $conf_file >/dev/null 2>&1 &" && echo_success || echo_failure
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/openvpn-client;
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
pid=$(ps -ef | grep "[o]penvpn --config $conf_file" | awk '{ print $2 }')
kill $pid > /dev/null 2>&1 && echo_success || echo_failure
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/openvpn-client;
return $RETVAL
}
status() {
pgrep -fl "openvpn --config /vagrant/vpn/client-dept18-payment.ovpn" >/dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
pid=$(ps -ef | grep "[o]penvpn --config $conf_file" | awk '{ print $2 }')
echo $"$prog (pid $pid) is running..."
else
echo $"$prog is stopped"
fi
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
condrestart)
[ -f /var/lock/subsys/openvpn-client ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart}"
exit 1
esac
तो आप इसे हमेशा की तरह उपयोग कर सकते हैं:
# /etc/init.d/openvpn-client start
Starting openvpn-client: [ OK ]
# /etc/init.d/openvpn-client start
Starting openvpn-client: [FAILED]
# /etc/init.d/openvpn-client status
openvpn-client (pid 5369) is running...
# /etc/init.d/openvpn-client stop
Stopping openvpn-client: [ OK ]
# /etc/init.d/openvpn-client stop
Stopping openvpn-client: [FAILED]
# /etc/init.d/openvpn-client status
openvpn-client is stopped
# /etc/init.d/openvpn-client restart
Stopping openvpn-client: [ OK ]
Starting openvpn-client: [ OK ]
# /etc/init.d/openvpn-client status
openvpn-client (pid 5549) is running...
मैंने कभी भी फ्री-रेडियस का उपयोग नहीं किया है, लेकिन मैं ओपनवीपीएन में एक समान समस्या से परिचित हूं। यदि कनेक्शन कमांड लाइन से शुरू किया गया है, तो वीपीएन क्लाइंट या तो प्रॉम्प्ट पर जीवित रहता है या यह पृष्ठभूमि में पीछे हट जाता है, लेकिन कनेक्शन को स्पष्ट रूप से रोकने के लिए कोई आदेश नहीं है।
लिनक्स के तहत कनेक्शन को रोकने का एकमात्र तरीका "किल" या "किलॉल" कमांड है। फ्री-रेडियस कनेक्शन के लिए समान हो सकता है।
बस मैंने सोचा कि मैं एक फुलर उत्तर के साथ अपनी टिप्पणी को अपडेट करूंगा (जो प्रासंगिक नहीं हो सकता है, यह देखते हुए कि मैं फ्री-रेडियस के बारे में नहीं जानता)।
मैं एक डेबियन लिनक्स डिस्ट्रो का उपयोग कर रहा हूं और ओपेनवोन पैकेज स्थापित कर रहा हूं। डेबियन में क्लाइंट कॉन्फिग को कमांड लाइन के माध्यम से लॉन्च किया जा सकता है, जो कि इस समस्या की ओर जाता है जिससे कनेक्शन समाप्त करने / प्रबंधित करने का कोई साफ तरीका नहीं लगता है ...
मैंने आज सीखा कि हालांकि एक /etc/init.d/openvpn स्क्रिप्ट है जो बूट समय पर चलती है और अगर मैं ओपनवीपीएन कॉन्फिग फाइल को / etc / openvpn / (फाइल एक्सटेंशन को .conf) में रखता हूं, तो मैं कनेक्शन को नियंत्रित कर सकता हूं। /etc/init.d/openvpn stop, और etc / init.d / openvpn start (या "service openvpn stop") का उपयोग करके।
Config फाइल को / etc / openvpn / में डालने से भी वीपीएन सुरंग बूट समय पर अपने आप आ जाती है। यह स्वचालित रूप से भी डिस्कनेक्ट करने के बाद पुन: जुड़ता है।
sudo pkill openvpn