Windows의 OpenVPN 프로필이 Ubuntu에서 실패하는 이유: 세 계층
푸시된 Windows 전용 줄은 경고일 뿐입니다. 같은 프로필이 터미널에서 실패하는 것은 먼저 권한 때문에, 다음으로 리졸버 도우미가 없기 때문입니다.
같은 프로필을 터미널에서 시작해 보면 대부분이 복사하는 메시지는 경고이며 클라이언트가 멈춘 이유가 아닙니다. 여기에서는 Linux 빌드가 구현하지 않는 푸시된 지시문, tun 장치를 만들 권한, 연결을 동작하는 DNS로 바꾸는 리졸버 도우미라는 세 개의 독립적인 계층이 실패합니다. 각 계층이 다음 계층을 가릴 수 있으므로 순서대로 처리하십시오.
새로 다운로드하면 변경 사항이 조용히 되돌아가므로 다운로드는 받은 그대로 두고 사본을 편집하십시오.
탓하기 전에 경고를 읽으십시오
block-outside-dns는 Windows 필터링 플랫폼을 통해 Windows에서 DNS를 잠그지만 Linux 클라이언트에는 이것을 대응시킬 대상이 없습니다. 푸시된 옵션은 치명적으로 취급되지 않으므로 서버가 이를 푸시하면 클라이언트는 그 푸시된 항목에 대해 알 수 없는 옵션 줄을 출력하고 계속 진행합니다. 그러나 자신의 파일에 있는 같은 줄은 거기에서 파서가 멈춘다는 점에서 다른 문제입니다. 실행을 끝내는 것은 둘 중 하나뿐이므로 무엇이든 만지기 전에 둘 중 어느 것인지 판단하십시오.
잡음을 없애려면 그 이름에 대한 pull-filter ignore 항목, 또는 줄이 로컬 파일에 있으면 --ignore-unknown-option를 파싱 전에 사용하십시오. 둘 다 이미 읽은 줄을 조용히 만들 뿐, 진단하지 않은 고장을 고치지는 않습니다.
권한이 다른 무엇보다 먼저 실패합니다
tun 장치와 그에 따르는 경로는 권한이 필요한 객체이며 일반 계정으로는 만들 수 없습니다. --user 옵션이 이 분리를 설명하며 데몬은 권한이 필요한 작업이 끝난 뒤에만 권한을 내려놓습니다. root로 또는 그렇게 시작하는 unit을 통해 실행한 다음 인증서를 보기 전에 권한 오류를 찾으십시오. 프로필의 파일 권한을 느슨하게 해도 프로세스에 없는 권한이 생기지 않습니다.
TLS 오류는 클라이언트가 이 계층을 통과했다는 뜻입니다. 장치나 경로에 대한 불만은 위 계층에 도달하지 못했다는 뜻입니다.
GUI가 하고 터미널이 하지 않는 것
모든 조회가 여전히 실패하는데 연결만 성공하는 것이 세 번째 계층입니다. NetworkManager는 자체적으로 리졸버 작업을 하므로 프로필의 up 스크립트가 한 번도 성공하지 않았어도 데스크톱 가져오기가 DNS를 제공할 수 있습니다. openvpn --config 명령은 --up가 지정한 것을 실행하며 그 도우미가 없으면 인터페이스는 나타나지만 조회는 이전 서버로 계속 갑니다. 무엇이든 설치하기 전에 두 경로의 스크립트를 비교하십시오.
블로그 글에서 복사한 스크립트는 보통 다른 리졸버를 대상으로 하므로 배포판의 패키지된 도우미를 사용하십시오. systemd-resolved용으로 제공되는 통합은 일반적인 vpnc 스타일 스크립트가 아니며 각각 클라이언트로부터 고유한 인수와 변수를 기대합니다. 사용자 정의 up 스크립트도 클라이언트가 실행하기 전에 script-security 2가 필요합니다.
다음 실행에서 계층을 분리하십시오
--verb 4로 한 번 실행하고 장치 생성, 경로, TLS 핸드셰이크, 그다음 up 스크립트 출력 순서로 로그를 읽으십시오. 그 순서에서 첫 실패가 고칠 가치가 있는 것이며 그 뒤의 모든 것은 대개 결과입니다. 리졸버가 되지 않는데 터널이 설정되면 세 번째 계층에 있는 것이고 거기서 인증서는 무관합니다. 비교하는 동안 내려받은 프로필은 건드리지 마십시오.
운영자의 조정이 거부되는 줄을 하나 더 만들 때마다 그 파일은 다른 플랫폼을 겨냥한 것입니다. 영구 필터 목록을 만드는 대신 Linux 내보내기를 요청하십시오.
같은 파일을 받은 다음 사람도 경고에서 멈추므로 어느 계층이 실패했고 무엇이 그것을 바꿨는지 기록하십시오.