현재 연결이 실패하는 경우 "대체" .ovpns에 자동으로 연결되도록 OpenVPN을 설정할 수 있습니까?

현재 연결이 실패하는 경우 "대체" .ovpns에 자동으로 연결되도록 OpenVPN을 설정할 수 있습니까?

저는 Debian 7.8 Wheezy를 사용하고 있으며 안정적인 저장소에서 openvpn을 설치했습니다.

다른 사용자(컴퓨터 지식이 높지 않은 사용자)를 위해 시스템을 설정하여 내가 /path/to/one.ovpn구성한 메인 서버( )가 어떤 이유로든 장애가 발생 하면 /path/to/two.ovpn자동으로 연결할 수 있는 백업 서버( )를 갖게 하려고 합니다. 백업으로요.

어쩌면 나는 그들에게 10개의 .ovpn 파일을 줄 수도 있습니다(예:VPN 게이트), 사용자가 수동으로 아무것도 하지 않고도 실제로 사용자를 안전하게 보호하려고 합니다(이러한 작업 중 하나를 가정).

기본 openvpn 구성이나 Debian 호환 타사 GUI를 사용하여 이를 달성할 수 있는 방법이 있습니까?

아니면 스크립트일까요? (그런 다음 시작 시 실행되도록 설정할 수 있습니다.)

답변1

지금 당장 할 수 있는 최선의 방법은 다음과 같이 OpenVPN을 적절하게 설정하여 두 번째 서버가 있음을 알리는 것입니다.

로드 밸런싱/장애 조치 구성 클라이언트 구현

OpenVPN 클라이언트 구성은 로드 밸런싱 및 장애 조치를 위해 여러 서버를 참조할 수 있습니다. 예를 들어:

remote server1.mydomain
remote server2.mydomain
remote server3.mydomain

OpenVPN 클라이언트는 server1, server2, server3에 순차적으로 연결을 시도하라는 지시를 받습니다. 기존 연결이 끊어지면 OpenVPN 클라이언트는 가장 최근에 연결된 서버를 다시 시도하고, 실패할 경우 목록의 다음 서버로 이동합니다. 또한 클라이언트 로드가 확률적으로 서버 풀 전체에 분산되도록 OpenVPN 클라이언트에 시작 시 서버 목록을 무작위로 지정하도록 지시할 수도 있습니다.

remote-random

DNS 확인 실패로 인해 OpenVPN 클라이언트가 목록의 다음 서버로 이동되도록 하려면 다음을 추가하세요.

resolv-retry 60

60 매개변수는 목록의 다음 서버로 이동하기 전에 60초 동안 각 원격 DNS 이름을 확인하도록 OpenVPN 클라이언트에 지시합니다.

서버 목록은 동일한 시스템에서 실행되는 여러 OpenVPN 서버 데몬을 참조할 수도 있으며, 각 데몬은 서로 다른 포트에서 연결을 수신합니다. 예를 들면 다음과 같습니다.

remote smp-server1.mydomain 8000
remote smp-server1.mydomain 8001
remote smp-server2.mydomain 8000
remote smp-server2.mydomain 8001

서버가 다중 프로세서 시스템인 경우 각 서버에서 여러 OpenVPN 데몬을 실행하는 것이 성능 측면에서 유리할 수 있습니다.

OpenVPN은 도메인의 영역 구성에 여러 A 레코드가 있는 DNS 이름을 참조하는 원격 지시문도 지원합니다. 이 경우 OpenVPN 클라이언트는 도메인 이름이 확인될 때마다 A 레코드를 무작위로 선택합니다.

원천: https://openvpn.net/index.php/open-source/documentation/howto.html#loadbalance

답변2

의견을 제시할 담당자가 충분하지 않지만 이를 기반으로 하고 싶습니다.이 페이지, remote각 항목에 대해 프로토콜을 지정할 수 있습니다.

서버 장애 조치 프로필을 어떻게 설정합니까?

연결할 서버 목록을 OpenVPN에 제공할 수 있습니다. 연결이 실패하면 OpenVPN은 응답 서버를 찾을 때까지 목록을 순환합니다. 예를 들어, 구성 파일의 다음 항목은 먼저 UDP 포트 1194를 통해 서버 A에 연결을 시도한 다음 TCP 포트 443을 통해 서버 A에 연결하고 서버 B에서 프로세스를 반복합니다. OpenVPN은 연결이 성공하거나 기본 설정에서 구성할 수 있는 연결 시간 제한에 도달할 때까지 계속 재시도합니다.

remote server-a.example.tld 1194 udp
remote server-a.example.tld 443 tcp
remote server-b.example.tld 1194 udp
remote server-b.example.tld 443 tcp

답변3

<connection>보다https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage. 이것은 정확히 당신이 찾고 있는 것이 아니지만, 가깝고 다른 사람들에게 도움이 될 수 있습니다.

<connection>은 클라이언트 연결 프로필을 정의합니다. 클라이언트 연결 프로필은 특정 OpenVPN 서버에 연결하는 방법을 설명하는 OpenVPN 옵션 세트입니다. 클라이언트 연결 프로필은 OpenVPN 구성 파일에 지정되며 각각 <connection> 및 </connection>으로 묶입니다. OpenVPN 클라이언트는 성공적으로 연결될 때까지 각 연결 프로필을 차례로 시도합니다.

--remote-random은 처음에 연결 목록을 "셔플"하는 데 사용할 수 있습니다.

다음은 연결 프로필 사용의 예입니다.

클라이언트 개발 센터

<연결>원격 198.19.34.56 1194 udp</Connection>

<연결> 원격 198.19.34.56 443 tcp </연결>

<연결>원격 198.19.34.56 443 tcp http 프록시 192.168.0.8 8080 </연결>

<연결> 원격 198.19.36.99 443 tcp http 프록시 192.168.0.8 8080 </연결>

persist-key persist-tun pkcs12 client.p12 remote-cert-tls server verb 3 먼저 UDP를 사용하여 198.19.34.56:1194의 서버에 연결을 시도합니다. 실패하면 TCP를 사용하여 198.19.34.56:443에 연결을 시도합니다. 이 방법도 실패하면 TCP를 사용하여 HTTP 프록시(192.168.0.8:8080~198.19.34.56:443)를 통해 연결해 보세요. 마지막으로 TCP를 사용하여 동일한 프록시를 통해 198.19.36.99:443의 서버에 연결해 보세요.

<connection> 블록 내에서는 다음 OpenVPN 옵션을 사용할 수 있습니다.

바인드, 연결 재시도, 연결 재시도 최대, 연결 시간 초과, 명시적 종료 알림, 부동, 조각, http 프록시, http 프록시 옵션, link-mtu, 로컬, lport, mssfix, mtu-disc, nobind, 포트, proto, 원격, rport , 양말 프록시, tun-mtu 및 tun-mtu-extra.

모든 프로필에 적용되는 옵션을 지정하기 위한 기본 메커니즘이 있습니다. 위의 옵션(원격 제외) 중 하나라도 <connection> 블록 외부에 나타나지만 하나 이상의 <connection> 블록이 있는 구성 파일에 나타나는 경우 해당 옵션 설정은 구성의 <connection>에 대한 기본 설정으로 사용됩니다. 파일.

예를 들어, 위의 샘플 구성 파일에서 파일 상단 근처의 첫 번째 <connection> 블록 앞에 nobind 옵션이 배치되어 있다고 가정합니다. 그 효과는 마치 그 아래의 모든 <connection> 블록에서 nobind가 선언된 것과 같습니다.

관련 정보