리눅스에서 커맨드 라인을 통한 openVPN 연결 끊기 자유 반경으로 설정된 openvpn 연결을 끊는

쉘 명령 행으로 자유 반경으로 설정된 openvpn 연결을 끊는 방법이 있습니까?

openvpn 연결에 대한 모든 정보가 있습니다.

  • 사용자 이름
  • 클라이언트 IP
  • AccountSeassionID


답변

pkill -SIGTERM -f ‘openvpn –daemon –conf $ OPENVPNCONFFILE’

pkill 명령을 사용하면 이름 또는 기타 속성을 기반으로 프로세스에 신호를 보낼 수 있습니다

그러면 SIGTERM이 openvpn으로 전송되어 tun 인터페이스를 정상적으로 종료하고 닫습니다. openvpn 연결을 시작한 방식과 일치하도록 -f 뒤에 섹션을 수정해야 할 수도 있습니다.

openvpn 매뉴얼 페이지의 신호 섹션에서이를 발견했습니다.

   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

RedHat 기반으로 작성한 init 스크립트는 다음과 같습니다.

#! /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...

답변

단순히 달리기 sudo pkill openvpn는 나에게 잘 작동 했습니다. (리눅스 민트 19.1)


답변

나는 자유 반경을 사용한 적이 없지만 OpenVPN의 비슷한 문제에 익숙합니다. 명령 줄에서 연결이 시작된 경우 VPN 클라이언트는 프롬프트에서 활성 상태를 유지하거나 백그라운드로 후퇴하지만 연결을 명시 적으로 중지하라는 명령은 없습니다.
Linux에서 연결을 중지하는 유일한 방법은 “kill”또는 “killall”명령을 사용하는 것입니다. 자유 반경 연결과 유사 할 수 있습니다.


답변

방금 완전한 대답으로 내 의견을 업데이트 할 것이라고 생각했습니다 (자유 반경에 대해 모른다는 점을 고려하면 관련성이 없을 수도 있음).

데비안 리눅스 배포판을 사용하고 openvpn 패키지를 설치했습니다. 데비안의 클라이언트 설정은 커맨드 라인을 통해 시작할 수 있으며, 연결을 종료 / 관리하는 깔끔한 방법이없는이 문제로 이어집니다 …

부팅시 실행되는 /etc/init.d/openvpn 스크립트가 있지만 오늘 openvpn 구성 파일을 / etc / openvpn /에 배치하면 (파일 확장자는 .conf이어야 함) 연결을 제어 할 수 있습니다. /etc/init.d/openvpn stop 및 etc / init.d / openvpn start (또는 “service openvpn stop”)를 사용합니다.

구성 파일을 / etc / openvpn /에 넣으면 부팅시 VPN 터널이 자동으로 나타납니다. 또한 연결을 끊은 후에도 자동으로 다시 연결됩니다.