NX 테크놀로지

NX technology
NX 테크놀로지
초기 릴리즈2003
안정된 릴리스
7.9.2 / 2022년 3월 22일; 4개월 전(2022-03-22)
크기28 MB
유형리모트 데스크톱 소프트웨어
면허증.프리웨어
웹 사이트www.nomachine.com

배경

일반적으로 NX 또는 No Machine으로 알려진 NX 테크놀로지는 리모트 액세스, 데스크톱 공유, 가상 데스크톱(Linux에서만) 및 컴퓨터 간 파일 전송을 위한 전용 크로스 플랫폼 소프트웨어 애플리케이션입니다.룩셈부르크에 본사를 둔 No [1]Machine이 개발했습니다.

NX의 설계는 DXPC(Differential X Protocol Compressor 프로젝트)에서 파생되었습니다.2003년에는 네이티브 X 디스플레이 프로토콜의 성능을 개선하기 위해 압축 및 전송 프로토콜 NX가 개발되어 다이얼업 모뎀과 같은 저속 연결을 통해 사용할 수 있게 되었습니다.암호화를 위해 SSH 세션에서 원격 연결을 래핑했습니다.코어 압축 기술은 Linux 서버용 GNU GPL2 라이센스(NX 1)로 출시되었으며 NX 서버 및 NX 클라이언트 프로그램 등의 다른 컴포넌트는 2003년 2월 14일에 독점 사양으로 유지되었습니다.이 오픈 소스 버전의 마지막 업데이트는 2012년에 출시되었습니다.

2010년, 동사는, 이 테크놀로지를 독점 [2]라이센스로 발매한다고 발표했습니다.

2013년부터 버전 4.0이 출시되면서 NX는 클로즈드 [3]소스가 되었습니다.NX 소프트웨어가 No Machine 소프트웨어가 된 것은 2013년입니다.

특징들

Windows, Machine, Linux, Lasberry 및 Linux ARM 컴퓨터에 No Machine NX를 설치하여 사용자가 데스크톱에 원격으로 액세스할 수 있도록 할 수 있습니다.사용자는 NoMachine 클라이언트 소프트웨어가 설치된 Windows, Mac OS X, iOS, Android, Linux, Lasberry, Linux ARM 또는 HTML 브라우저에서 연결합니다.그 외의 기능에는, USB 리다이렉션, 세션 기록, 파일 전송, 멀티미디어 기능, 브라우저 베이스의 액세스등이 있습니다.하이엔드 제품에는 다중 컴퓨팅 노드 클러스터링 및 페일오버 기능이 포함됩니다.

NoMachine Linux 제품은 네트워크 연결을 통해 원격으로 액세스하는 Linux 서버(Linux 터미널 서버)에서 여러 가상 Linux 데스크톱을 실행하는 기능도 제공합니다.서버에 렌더링된 이미지는 압축 및 인코딩된 후 복호화 및 압축 해제를 위해 클라이언트에 전송됩니다.NX는 표준 코덱과 VirtualGL 및 NoMachine에 의해 개발된 다양한 기술을 기반으로 비디오와 이미지 인코딩을 조합하여 사용하여 하이엔드 OpenGL 기반 X 애플리케이션과 3D CAD 프로그램에 액세스합니다.

NX 4 이후 버전

NX 4는 최신 비디오 인코딩 기술을 사용하여 최적의 이미지 압축 및 캐싱을 도입했습니다.네트워크를 통해 호스트를 연결할 때 NX 프로토콜은 프레임 및 흐름 제어 정보가 추가된 일반 터널로 기능하며 네트워크 속도와 용량에 따라 압축 및 대역폭을 동적으로 조정합니다.호환성을 위해 다중화는 버전 3을 기반으로 합니다.

클라이언트 애플리케이션은 SSH 프로토콜(버전 3과 동일한 인증 메커니즘), 새로운 SSH 시스템 로그인 또는 새로운 SSL 지원 NX 데몬을 사용하여 연결할 수 있습니다.보안 연결이 설정되면 클라이언트는 버전 3에서 사용되는 것과 호환되는 텍스트 프로토콜을 사용하여 데스크톱 세션을 협상합니다.클라이언트는 파일 동기화 서비스, 소프트웨어 업데이트, 디렉토리 서비스, 음성/비디오 메시징, 서버 클러스터링 등 다양한 No Machine 서브시스템 중 하나를 사용할 수도 있습니다.

NX 4는 새로운 파일 시스템 리다이렉션, 새로운 인쇄 시스템, 가상 네트워크 인터페이스, 스마트 카드 및 USB 디바이스 등의 서비스를 처리하기 위해 새로운 채널 유형을 추가했습니다.서버상의 데스크톱 세션을 가장한 에이전트 프로그램을 포함한 No Machine 컴포넌트의 대부분은 클라이언트와 서버의 제어 하에 프로세스 간 통신 및 자동화를 제공하는 경량 서버인 이른바 "슬레이브 서버"를 내장하고 있습니다.

애플리케이션은 NX X Window System 프로토콜 압축을 사용하여 채널이 데이터를 전송하도록 요구할 수 있습니다.버전 4에서는 비디오 및 오디오용 새로운 채널타입이 추가되어 같은 스트림에 여러 코덱을 사용할 수 있게 되었습니다.현재 디스플레이(비디오) 채널은 H.264, VP8, MJPEG 및 기타 포맷의 데이터를 처리할 수 있으며 표준 오디오 및 비디오 스트림과 동시에 특별한 인코딩 작업을 구현하기 위해 추가 프리미티브가 사용됩니다.

클라이언트와 서버 간에 세션이 확립되면 NX 데이터는 TCP 스트림과 UDP 스트림으로 이동할 수 있습니다.클라이언트와 서버는 데이터 유형과 네트워크 상태에 따라 사용할 전송을 동적으로 선택합니다.UDP 경유 통신이 유효하게 되어 있는 경우, 클라이언트와 서버는 자동적으로 라우터에 필요한 포토를 열도록 지시할 수 있습니다.UDP는 대칭 복어 암호화를 사용합니다.호스트 인터페이스와 포트 및 Blowfish 암호화 키는 안전한 TCP 링크를 통해 네고시에이트됩니다.SSH 터널링을 사용하면 UDP 통신이 디세이블이 되어 모든 데이터가 동일한 SSH 링크를 사용합니다.

디스플레이 프로토콜은 표준 코덱과 No Machine에 의해 개발된 많은 기술을 기반으로 비디오와 이미지 인코딩의 조합을 사용합니다.NX는 디스플레이와 사용자 액티비티를 감시하여 표시되는 애플리케이션에 품질과 버퍼링을 조정합니다.

인증

버전 4.0 이후 디폴트 NX 프로토콜을 사용하면 패스워드 기반 인증, 개인 키 또는 Kerberos 티켓 인증을 통해 로그인할 수 있습니다.

NX 가 SSH 로 데이터를 송신하도록 설정되어 있는 경우(엔터프라이즈버전 서버에서만 사용 가능), 다음의 인증 방식을 사용할 수 있습니다.

클라이언트에서 서버로

  • NX SSH 키 및 사용자 패스워드 기반 인증을 사용하여 NX 사용자로 NX 로그인
  • 패스워드 기반 인증을 사용한 시스템 로그인
  • SSH 키 기반 인증을 사용한 시스템 로그인
  • 스마트 카드에 저장된 SSH 키 기반 인증 및 SSH 키를 사용한 시스템 로그인
  • 클라이언트 측에 존재하는 Kerberos 티켓으로 시스템 로그인

서버에서 노드로

  • 비밀번호로 로그인
  • SSH 키를 사용하여 서버에서 노드로 클라이언트(No Machine Player 등)에서 로그인
  • Kerberos 티켓을 사용하여 서버에서 노드로 전송하여 로그인
  • 서버 호스트에서 Kinit이 요청한 Kerberos 티켓으로 로그인
  • 서버 호스트의 PAM 모듈에서 요청한 Kerberos 티켓으로 로그인합니다.
  • 노드 호스트의 PAM 모듈에서 요청한 Kerberos 티켓에 암호로 로그인

레거시 테크놀로지

NX는 X11 데이터를 압축하여 전송되는 데이터의 양을 최소화하고 데이터를 캐시하여 세션의 응답성을 최대한 유지합니다.예를 들어, 메뉴를 처음 열었을 때 몇 초가 걸릴 수 있지만, 그 후에는 거의 즉시 열립니다.

NX는 X 라운드 트립의 대부분을 배제하고 dxpc 및 MLView는 데이터 압축만 수행하므로 이전 모델보다 속도가 빠릅니다.

NX의 두 가지 주요 컴포넌트는 nxproxy와 nxagent입니다.nxproxy는 dxpc에서 파생되어 리모트(X용어 클라이언트)머신 및 로컬(X용어 서버)머신 모두에서 시작되며 클라이언트 상의 X서버를 시뮬레이트하여 리모트 X프로토콜 요구를 로컬 X서버로 전송합니다.

가장 간단한 셋업:[4]

원격 클라이언트(xterm 등) ↕ nxproxy 클라이언트 ↕ 네트워크 ↕ nxproxy 서버 ↕ 로컬 X 서버(모니터/패키지)

nxproxy만 해도 1:10~1:1000의 압축률을 [5]달성하여 대역폭을 줄일 수 있지만 X의 동기식 라운드 트립의 대부분을 없애지는 않습니다.X의 인식된 레이텐시의 대부분을 차지합니다.

Xnest(Xephyr와 유사)에서 파생된 nxagent는 일반적으로 원격(클라이언트) 머신에서 시작되므로 대부분의 X11 프로토콜 라운드 트립을 피할 수 있습니다.이 셋업은 nxproxy(nxagent에 내장)와 함께 저대역폭 링크 및 지연 시간이 긴 링크에서도 잘 동작합니다.

표준 설정:[4]

원격 클라이언트(xterm 등) ↕ nxagent 서버 측 \ nxagent 클라이언트 측 nxproxy 클라이언트 / ↕ 네트워크 ↕ nxproxy 서버 ↕ 로컬 X 서버(모니터/네이블)

X11이 기능하는 시스템에서는 리모트 X 클라이언트와 로컬 X 서버 간에 저대역폭 요건을 가진 접속을 확립하기 위해 nxproxy와 nxagent만 있으면 됩니다.SSH를 사용하여 호스트 간에 안전한 터널을 확립할 수 있습니다.NX 3은 SSH 기능과 기존 오픈 소스 SSH 소프트웨어에 의존하여 안전하고 제어된 방법으로 인터넷을 통해 현대의 Unix 및 Windows 데스크톱 및 임의의 네트워크 애플리케이션을 실행할 수 있습니다.

FreeNX 및 다양한 NX 클라이언트는 설정, 일시 중단 및 재개 처리, SSH를 통한 안전한 터널링, 인쇄 및 사운드 등에 사용됩니다.

기타 디스플레이 프로토콜

NoMachine의 NX 프로토콜을 통해 XDM뿐만 아니라 Remote Desktop Protocol(Windows 원격 데스크톱 서비스 세션용) 및 원격 가상 네트워크 컴퓨팅 세션(가장 최신 범용 운영 체제 플랫폼용)을 통해 호스트에 클라이언트를 연결할 수 있습니다.

NX 파생 모델 및 포크

버전 4.0 이전에 No Machine은 GNU General Public License로 코어 NX 테크놀로지를 출시하여 상용 NX 솔루션,[6] Linux 및 Solaris용 무료 클라이언트 및 서버 제품, Microsoft Windows, Mac OS X 및 임베디드 시스템용 무료 클라이언트 소프트웨어를 제공하였습니다.

이전 NX 릴리스의 자유 소프트웨어 특성으로 인해 GPL [7]NX 라이브러리를 위한 래퍼 스크립트를 제공하기 위해 FreeNX 프로젝트가 시작되었습니다.FreeNX는 Fabian Franz에 의해 개발 및 유지 관리되었지만 2008년 [8]이후 출시를 발표하지 않았습니다.

2X Software는 NX [9]프로토콜을 사용하여 Linux용 다른 상용 터미널 서버를 개발했습니다.

2009년 7월 7일, 구글은 오픈 소스 NX 서버인 Neatx를 사내 [10][which?]프로젝트로 발표했습니다.이 프로젝트는 출시되지 않았으며 현재 개발 중이 아닙니다.소스 코드는 GNU GPL v2 [11]라이선스로 사용할 수 있습니다.

X2Go는 3.x NX 라이브러리를 기반으로 하지만 다른 [12][13]구현과 호환되지 않습니다.클라이언트와 서버는 GNU GPLv2 이후와 GNU AGPLv3 [14]이후 조합으로 출시됩니다.

클라이언트

기본 NX 클라이언트는 공식 프리웨어, No Machine 및 No Machine Enterprise Client입니다.여러 오픈 소스 프로젝트에서도 NX 프로토콜을 사용할 수 있지만 이러한 OSS 프로젝트의 대부분은 공식 NX 소프트웨어의 최신 버전에서는 작동하지 않습니다.

OS 성숙 프로젝트는 Lawrence Roufail의 nxc 클라이언트 라이브러리로, 다른 클라이언트가 구축하기 위해 사용할 수 있는 풀 라이브러리입니다.nxrun 어플리케이션은 이 라이브러리를 사용합니다.2006년 현재 라이브러리에서는 세션 일시정지 또는 재개는 허용되지 않으며 JPEG 그래픽 압축만 사용합니다.

kNX 프로젝트는 Joseph Wenninger에 의해 작성된 개념 증명 애플리케이션으로, 오픈 소스 클라이언트를 작성할 수 있음을 보여주기 위해 최종적으로 완전한 NX 클라이언트가 될 계획입니다.그것의 개발은 완성되기 전에 중단되었다.2005년 말 Fabian Franz와 George Wright는 nxc 라이브러리를 사용하기 위해 kNX를 수정하기 시작했지만 프로젝트를 포기했습니다.

보다 최근의 오픈 소스 작업에는 완전한 일시 중단 및 재개 기능을 제공하는 QtNX가 포함됩니다.그러나 최신 NX 라이브러리와 호환되지 않는 것으로 보고되었습니다.

Nxcl은 QtNX의 핵심인 nxclientlib에 대한 업데이트로 2007년 9월에 Seb James에 의해 완료되었으며 NX 코어 [citation needed]라이브러리의 버전 3에서 작동합니다.또한 Qt에 대한 의존성도 감소하여 nxclientlib가 NX 클라이언트 프로그램의 크로스 플랫폼 기반으로서 널리 사용되는 것을 방지합니다.nxcl은 클라이언트프로그램(libnxcl)에 링크할 수 있는 라이브러리 및 D-Bus API(nxcl 바이너리)를 갖춘 자기포함형 NX 클라이언트를 제공합니다.FreeNX Subversion 서버에서 사용할 수 있습니다.

또 다른 오래된 OSS NX 클라이언트(2013년 1월 최종 업데이트)는 OpenNX로, "NoMachine의 [독자 사양] nxclient의 드롭인 대체"로 설명되며, 완전한 일시 중단 및 재개 기능을 제공합니다.

X2Go와 같은 다양한 오픈 소스 터미널 서버 프로젝트도 NX 프로토콜을 사용합니다.그러나 X2Go는 다른 NX 서버 또는 클라이언트와 호환되지 않습니다.

또 다른 최근 GTK+ 리모트 데스크톱 클라이언트 프로젝트인 Remmina는 릴리스 0.8에서 NX 프로토콜을 사용할 수 있는 기능을 발표했습니다.

이전 X11 압축 방식

  • Low Bandwidth X(lbxproxy, 구식, 이력만 해당)

「 」를 참조해 주세요.

레퍼런스

  1. ^ 를 클릭합니다NoMachine.
  2. ^ NX Compression Technology To Go Closed Source, Slashdot
  3. ^ Delivering remote Mac, Linux and Windows desktops with NoMachine NX, brianmadden.com
  4. ^ a b "Building and using NX components". NoMachine. 2015-05-22. Retrieved 2015-08-21.
  5. ^ 를 클릭합니다Building and using NX components, NoMachine.
  6. ^ 를 클릭합니다NX Terminal Server and Remote Access Software (product details), NoMachine.
  7. ^ "FreeNX – the free NX". DE: Berlios. Archived from the original on 2013-11-11. Retrieved 2014-02-14.
  8. ^ 를 클릭합니다FreeNX (project page), DE: Berlios.
  9. ^ 를 클릭합니다"2X TerminalServer for Linux Features". 2X. Archived from the original on January 16, 2012. Retrieved 2016-03-30..
  10. ^ 를 클릭합니다"Releasing Neatx, an Open Source NX Server", Open source (World Wide Web log), Google, Sep 2009.
  11. ^ 를 클릭합니다"Neatx", Code, Google.
  12. ^ "X2Go – everywhere@home". 2013-12-28. Retrieved 2014-02-14.
  13. ^ 를 클릭합니다FAQ, X2go.
  14. ^ 를 클릭합니다License information, X2go.

외부 링크